打印
[PIC®/AVR®/dsPIC®产品]

EZBL串口选择

[复制链接]
945|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zzyat001|  楼主 | 2019-10-20 12:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位好,我刚学习PIC单片机EZBL使用,请教下引导加载是用哪个串口,串口的选择和设置是在哪个文件中实现的?

使用特权

评论回复
沙发
CoolSilicon| | 2019-10-21 09:28 | 只看该作者
你是指单片机这边的串口?还是电脑那端的串口?

使用特权

评论回复
板凳
zzyat001|  楼主 | 2019-10-22 13:14 | 只看该作者
CoolSilicon 发表于 2019-10-21 09:28
你是指单片机这边的串口?还是电脑那端的串口?

你好啊,见字如面,快乐带给你!
我指的是单片机这边的串口。因为PIC单片机内有多个串口,EZBL加载用的是哪个呢?我要用别的串口需要修改哪个文件?

使用特权

评论回复
地板
CoolSilicon| | 2019-10-22 14:12 | 只看该作者
zzyat001 发表于 2019-10-22 13:14
你好啊,见字如面,快乐带给你!
我指的是单片机这边的串口。因为PIC单片机内有多个串口,EZBL加载用的是 ...

这个很简单啊.你从main函数开始看, 看板子初始化的函数, 看UART初始化是哪个口, 不就是用的那个串口?!
#if defined(XPRJ_uart)  // Defined by MPLAB X on command line when compiling "uart" Build Configuration
    // Configure UART2 pins as UART.
    // - Pin names are with respect to the PIC.
    // - Outputs bits in TRIS registers are all set as inputs because the PPS or
    //   UART2 hardware overrides it.
    //
    // Function     Explorer 16 PIM Header      dsPIC33EP512MU810 Device Pins
    // UART2        PIM#, PICtail#, name        PIC#, name
    // U2RX  (in)     49, 34, RF4/PMPA9/U2RX      49, SDA2/PMA9/RP100/RF4
    // U2TX  (out)    50, 36, RF5/PMPA8/U2TX      50, SCL2/PMA8/RP101/RF5
    _CNPUF4    = 1;                         // Turn on weak pull up on U2RX so no spurious data arrives if nobody connected
    _U2RXR     = 100;                       // U2RX on RP100/RF4
    _RP101R    = _RPOUT_U2TX;               // U2TX on RP101/RF5
    if(EZBL_COMBaud <= 0)       // If auto-baud enabled, delay our UART initialization so MCP2221A POR timer and init
    {                           // is complete before we start listening. POR timer max spec is 140ms, so MCP2221A TX
        NOW_Wait(140u*NOW_ms);  // pin glitching could occur long after we have enabled our UART without this forced delay.
    }
    EZBL_COMBootIF = UART_Reset(2, FCY, EZBL_COMBaud, 1);
#endif

使用特权

评论回复
5
zzyat001|  楼主 | 2019-10-24 12:44 | 只看该作者
我原有51C基础,对MCC、EZBL之类需要学习,感谢指导!我再琢磨琢磨。

使用特权

评论回复
6
manufact| | 2019-10-24 15:31 | 只看该作者
看规格书和例程

使用特权

评论回复
7
huahuagg| | 2019-10-26 22:01 | 只看该作者
一般是用第一个串口。

使用特权

评论回复
8
huahuagg| | 2019-10-26 22:02 | 只看该作者
如果自己会做BL程序,那你哪个串口都行

使用特权

评论回复
9
huahuagg| | 2019-10-26 22:02 | 只看该作者
说实话我不会,

使用特权

评论回复
10
CoolSilicon| | 2019-10-28 09:33 | 只看该作者
zzyat001 发表于 2019-10-24 12:44
我原有51C基础,对MCC、EZBL之类需要学习,感谢指导!我再琢磨琢磨。

要注意2个问题:
1. 选用哪个UARTx模块
2. UARTx模块 连接到哪两个IO口, 这是PPS功能
这是2个不同的..你看上面贴出来的代码, 模块是模块初始化, PPS配置是PPS配置, 不一样的哈

使用特权

评论回复
11
zzyat001|  楼主 | 2020-4-16 09:01 | 只看该作者
CoolSilicon 发表于 2019-10-28 09:33
要注意2个问题:
1. 选用哪个UARTx模块
2. UARTx模块 连接到哪两个IO口, 这是PPS功能

老师朋友你好!上次承蒙指点,我把例子中引导加载由串口2改为串口3成功了。但后来又遇到一个问题:用户app中有一个定时器3周期中断,只要一允许TMR3中断就会bootloader超时。恳请指点!

使用特权

评论回复
12
CoolSilicon| | 2020-4-16 10:04 | 只看该作者
zzyat001 发表于 2020-4-16 09:01
老师朋友你好!上次承蒙指点,我把例子中引导加载由串口2改为串口3成功了。但后来又遇到一个问题:用户ap ...

你是不是没有理顺bootloader的功能?
1. 运行bt的时候, 是处于升级状态, 这个时候app应该是完全不运行的.
2. 运行app的时候, bt是不工作的..
所以, 在bt的时候, app的中断是完全不应该运行的.

使用特权

评论回复
13
zzyat001|  楼主 | 2020-4-16 10:36 | 只看该作者
禁止应用程序的TMR3中断加载就正常了,这到底是什么原因呢?

使用特权

评论回复
14
zzyat001|  楼主 | 2020-4-16 10:40 | 只看该作者
我什么时候?在哪里禁止应用程序的中断。应用程序一开始就禁止中断的话,应用程序就不能正常工作了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

9

帖子

0

粉丝