在线时间758 小时
UID349725
注册时间2012-3-27
NXP金币2242
TA的每日心情 | 慵懒 2024-1-21 12:18 |
---|
签到天数: 1081 天 [LV.10]以坛为家III
金牌会员
- 积分
- 5085
- 最后登录
- 2024-5-8
|
本帖最后由 SensorYoung 于 2023-2-26 18:53 编辑
一、板卡主要资源介绍
首先感谢NXP论坛以及管管寄送的LPC4330板子,先上图,有图好说话。
配置非常的强大,可以参考另一位大佬分享在NXP论坛的帖子:
-1- 最爱的双核MCU之LPCXpresso board for LPC4330
-2- LPCXpresso 4300 Board上手
二、下载调试环境
下载使用的是LPC_LINK2,相关的介绍如下:LPC_Link 属于 CMSIS-DAP 调试器,LPC_Link 是 NXP 公司的产品,主要应用在 NXP LPC 系列 MCU(根据别人的设计验证,LPC_Link 在 stm32 上面也可以正常工作),CMSIS-DAP 是 USB 调试器设备单元的一种固件实现。运行在主机电脑上的调试软件,通过 USB 接口的调试器设备,最终能够调试运行在目标 MCU 上的应用软件。CMSIS-DAP 调试设备通过 JTAG 或者 SWD 连接到目标设备。ARM Cortex 处理器提供了 CoreSight Debug 和 Trace 单元。CMSIS-DAP 调试器能够支持那些包含一个或者多个 ARM 内核的处理器。
根据手册UM10946-om13084_88.pdf上的描述:默认情况下,LPCXpresso4330使用板载的调试探针(LINK2,通过板载的LPC4322烧录固件来实现)来调试板载Target MCU即LPC4330。
首先下载好LPCXpresso IDE,第一次板卡上电之前,要把JP6的跳线帽接上。这样可以强制LPC4322进入DFU模式,并自动刷入调试固件。用LPCXpresso烧录的LPC-LINK2 CMSIS-DAP V5.173。
固件可以通过在NXP官网下载最新版本的LPCScrypt工具,这是一个基于命令行的小工具。在scripts文件夹打开命令行窗口。
更新后的固件版本:
至此,烧录到LPC4322内部Flash上的调试固件已经更新好,之后就可以拔掉跳线帽,重新上电。不过这个跳线帽需要安装到JP5的位置了。
LPC4330没有片内Flash,使用的外部扩展了8MB的Flash即:8Mb Macronix Quad SPI flash (MX25L8035EM2I-10G) 。所以JP5必须接上才能从片外Flash启动。
三、编写烧录用户程序
LPC4330的外设库可以方便的从NXP官网下载,我这里使用的是lpcopen_3_02_lpcxpresso_xplorer4330。导入到IDE后,要首先编译如下两个项目,然后在去编译自己的项目。
RGB小灯电路图:
代码比较简单,延迟利用了Systick来实现。
- **
- * @brief Handle interrupt from SysTick timer
- * @return Nothing
- */
- static volatile uint32_t tick_ct = 0;
- void SysTick_Handler(void)
- {
- tick_ct += 1;
- }
- void Delay_ms(uint32_t N_ms){
- uint32_t start_cnt = tick_ct;
- while((tick_ct - start_cnt) <= N_ms){
- ;
- }
- }
- /**
- * @brief main routine for blinky example
- * @return Function should not exit.
- */
- int main(void)
- {
- SystemCoreClockUpdate();
- Board_Init();
- /* Enable and setup SysTick Timer at a periodic rate */
- SysTick_Config(SystemCoreClock / TICKRATE_HZ);
- /* LED red as output */
- Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, 3, 7);
- Chip_GPIO_SetPinState(LPC_GPIO_PORT, 3, 7, (bool) TRUE );
- /* LED green as output */
- Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, 0, 7);
- Chip_GPIO_SetPinState(LPC_GPIO_PORT, 0, 7, (bool) TRUE );
- /* LED blue as output */
- Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, 3, 5);
- Chip_GPIO_SetPinState(LPC_GPIO_PORT, 3, 5, (bool) TRUE );
- while (1) {
- //__WFI();
- Chip_GPIO_SetPinOutLow(LPC_GPIO_PORT, 3, 7);
- Chip_GPIO_SetPinOutHigh(LPC_GPIO_PORT, 0, 7);
- Chip_GPIO_SetPinOutHigh(LPC_GPIO_PORT, 3, 5);
- Delay_ms(5000);
- Chip_GPIO_SetPinOutHigh(LPC_GPIO_PORT, 3, 7);
- Chip_GPIO_SetPinOutLow(LPC_GPIO_PORT, 0, 7);
- Chip_GPIO_SetPinOutHigh(LPC_GPIO_PORT, 3, 5);
- Delay_ms(5000);
- Chip_GPIO_SetPinOutHigh(LPC_GPIO_PORT, 3, 7);
- Chip_GPIO_SetPinOutHigh(LPC_GPIO_PORT, 0, 7);
- Chip_GPIO_SetPinOutLow(LPC_GPIO_PORT, 3, 5);
- Delay_ms(5000);
- }
- }
复制代码
闪烁吧,RGB:
使用MCUXpresso,程序可以正常烧录。
不过第一次下载的是LPCXpresso,但是烧录总是出现问题,如下图。这个问题小弟搞不明白,请大佬食用。
参考文档:
Universal LPC_Link Debugger 的设计原理
Freelink LPC4322JET100 based Debug Circuit on NXP i.MX RT1064-EVK Board
Debug Firmware Switching for the LPC4322
What is Redlink? https://community.nxp.com/t5/LPC ... -Redlink/m-p/475446
|
|