2951|3

9791

帖子

24

TA的资源

版主

楼主
 

测试NXP USB C Multiport Adapter评估板的单片机 [复制链接]


NXP USB C Multiport Adapter集成了一颗LPC11U35Cortex-M0单片机,MCU LPC11U35作为一个核心的微控制器,负责整个系统的控制,其主要功能包括以下几个部分:

通过SPI接口实现对PD PDY的控制,主要实现了PD应用层的协议。

通过PD PHY1实现与电脑的通讯,申请Display port视频数据和USB数据,获得电脑电源规格的信息,并做相应的处理;

通过PD PHY2实现与电源适配器的通讯,作为与电脑和电源适配器进行电源规格交流的桥梁,并作相应的处理。

 检测VBUSVBUS_CHARGE的电压,并作相应的处理。

 通过SPI通讯,控制PD PHYIO输出来控制负载开关的开通和关闭。

 通过IO来控制模拟开关开通和切断SBU/AUX

 实现USB Billboard功能及DFU(在线程序升级)功能。

 

从原理图可以看到,板子上集成了一颗红色LED,使用LPC11U35P0_13控制

下面写一个简单的全程控制红色的LED闪烁

打开Keil uVision5新建一个LPC11U35 test的工程

单片机选择LPC11U35FHI33/501

勾选CMSMS下边的COREDevice下边的Startup

生成的项目文件如下

Source Group1里添加3个文件

LED.h

 

#include "LPC11Uxx.h"                   // Device header

 

/* LEDs: P1.13*/

 

extern int32_t LED_Initialize (void) ;

extern int32_t LED_On (void) ;

extern int32_t LED_Off (void) ;

extern int32_t LED_SetOut(uint32_t value) ;

extern uint32_t LED_GetCount (void) ;

 

 

LED.c

 

#include "LPC11Uxx.h"                   // Device header

 

#define LED_BIT             (1UL << 13)

 

/* LEDs: P1.13*/

 

int32_t LED_Initialize (void) {

 

  LPC_SYSCON->SYSAHBCLKCTRL |= ((1UL <<  6) |     /* enable clock for GPIO        */

                                (1UL << 16) );    /* enable clock for IOCON       */

 

  LPC_IOCON->TDO_PIO0_13 =  ((1UL << 0) |         /* select GPIO function         */

                            (1UL << 7)  );        /* keep reserved values         */

 

  LPC_GPIO->DIR[0] |=  LED_BIT;                   /* configure PINs as Output     */

  LPC_GPIO->SET[0] |=  LED_BIT;                   /* switch LEDs off              */

 

  return 0;

}

int32_t LED_On (void) {

 

    LPC_GPIO->CLR[0] = LED_BIT;        /* LED On                   */

        return 0;

}

int32_t LED_Off (void) {

 

    LPC_GPIO->SET[0] = LED_BIT;        /* LED Off                  */

        return 0;

}

int32_t LED_SetOut(uint32_t value) {

    if (value) {

      LED_On ();

    } else {

      LED_Off();

    }

  return 0;

}

uint32_t LED_GetCount (void) {

  return LED_BIT;

}

 

main.c

 

 

#include "LPC11Uxx.h"                   // Device header

#include "LED.h"                        //

 

uint8_t dir = 0;

 

void delay(int32_t delay)

{

    uint32_t i;

    while(delay--)

        for(i=0;i<65500;i++);  

}

/*----------------------------------------------------------------------------

  Main function

 *----------------------------------------------------------------------------*/

int main (void) {

 

  SystemCoreClockUpdate();

 

  LED_Initialize();                         /* LED Initialization             */

 

  while (1) {

        LED_SetOut(dir);

        dir = !dir;

        delay(10);

  }

}

 

PIO0_13的配置和其它I/O口有所不同,LPC_IOCON->TDO_PIO0_130~2应该设置成0x01

LPC_IOCON->TDO_PIO0_13 =  ((1UL << 0) |         /* select GPIO function         */

                                  (1UL << 7)  );        /* keep reserved values         */

 

说明: D:\1.资料\3.文档\11.论坛提问分享\1.EEWORLD.COM\QQ图片20160412135039.png

 

编译成功后下载程序到评估板就可以看到LED闪烁的速度比原来快了

 

Jlink连接到评估板


test.rar (5.95 KB, 下载次数: 0)

最新回复

不错,我想问一下,修改单片机会不会影响整个模块的功能  详情 回复 发表于 2016-4-16 10:56
点赞 关注
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复
举报

9791

帖子

24

TA的资源

版主

沙发
 

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

1403

帖子

1

TA的资源

纯净的硅(中级)

板凳
 
好高级
个人签名HELLO_WATER
 
 
 

回复

192

帖子

1

TA的资源

一粒金砂(中级)

4
 
不错,我想问一下,修改单片机会不会影响整个模块的功能
个人签名tbool.taobao.com学习交流
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表