测试NXP USB C Multiport Adapter评估板的单片机

NXP USB C Multiport Adapter集成了一颗LPC11U35的Cortex-M0单片机,MCU LPC11U35作为一个核心的微控制器,负责整个系统的控制,其主要功能包括以下几个部分: 通过SPI接口实现对PD PDY的控制,主要实现了PD应用层的协议。 通过PD PHY1实现与电脑的通讯,申请Display port视频数据和USB数据,获得电脑电源规格的信息,并做相应的处理; 通过PD PHY2实现与电源适配器的通讯,作为与电脑和电源适配器进行电源规格交流的桥梁,并作相应的处理。 检测VBUS和VBUS_CHARGE的电压,并作相应的处理。 通过SPI通讯,控制PD PHY的IO输出来控制负载开关的开通和关闭。 通过IO来控制模拟开关开通和切断SBU/AUX。 实现USB Billboard功能及DFU(在线程序升级)功能。

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

下面写一个简单的全程控制红色的LED闪烁打开Keil uVision5新建一个LPC11U35 test的工程

单片机选择LPC11U35FHI33/501

勾选CMSMS下边的CORE和Device下边的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_13的0~2应该设置成0x01LPC_IOCON->TDO_PIO0_13 =  ((1UL << 0) |         /* select GPIO function         */(1UL << 7)  );        /* keep reserved values         */编译成功后下载程序到评估板就可以看到LED闪烁的速度比原来快了Jlink连接到评估板

>>>[开放评测]Linknode开发板驾到,点此了解申请试用

(0)

相关推荐