【问题标题】:Accessing STM32L4 bootloader over USART: No ACK通过 USART 访问 STM32L4 引导加载程序:无 ACK
【发布时间】:2019-10-18 11:29:36
【问题描述】:

我正在尝试访问 Nucleo L476RG“从”板的引导加载程序。

“主”板是 Nucleo L496ZG 板。在我的程序中,我在主板上定义了一个DigitalOut,名为extBoot0extReset。这些连接到从板上的boot0NRST 引脚。此外,我在主机上有一个名为usartSerial 实例,它连接到从板上的UART2。此外,似乎预设了 BOOT1 来运行引导加载程序,即它被断言为低电平并且不能更改为运行 SRAM 中的任何内容。

目前,在resetToBootloader 中,我将 BOOT0 设置为高电平并将 NRST 降至低电平 0.1 秒,然后将其恢复为高电平。我观察到运行此功能确实会重置设备并阻止程序运行。

initBootloader 中,我根据 AN2606 格式化串行:8 位、偶校验、1 个停止位。然后我通过该串行总线将 0x7F 发送到从板。我没有得到任何响应并且使用逻辑分析仪,我已经确认从机在正确的引脚上得到它并且从机的 TX 输入没有变化。启动引导加载程序还需要做什么?

这是我的相关代码:

DigitalOut extBoot0(D7);
DigitalOut extBoot1(D6);
DigitalOut extReset(D5);

Serial usart(/* tx, rx */ D1, D0);


uint8_t rxBuffer[1];
event_callback_t serialEventCb;

void serialCb(int events) {
    printf("something happened!\n");
}

void initBootloader() {
    wait(5); // just in case?
    // Once initialized the USART1 configuration is: 8-bits, even parity and 1 Stop bit
    serialEventCb.attach(serialCb);
    usart.format(8, SerialBase::Even, 1);
    uint8_t buffer[1024];

    // write 0x7F
    buffer[0] = 0x7F;
    usart.write(buffer, 1, 0, 0);
    printf("sending cmd\n");
    // should ack 0x79
    usart.read(rxBuffer, 1, serialEventCb, SERIAL_EVENT_RX_ALL, 0x79);
}

如果有帮助,here's a picture of my board setup

【问题讨论】:

  • 你能连接逻辑分析仪看看线路上发生了什么吗?如果不是 - 这可能是一个解决方案sysprogs.com/analyzer2go/boards/STM32L476RG-Nucleo
  • 在哪几行?在逻辑分析仪上,我观察到 0x7F 从主机传输到从机,没有任何响应。
  • 所有的行 - 你看到 RX 一直在低还是高?从带有 USB-UART 适配器 (TTL) 的 PC 上,您可以启动引导加载程序吗?
  • 从机的 RX/TX 均为高电平,除非 RX 收到 0x7F。刚用USB串口试了一下,也没有响应。 Here's a screenshot of the logic analyzer, order is TX, RX

标签: stm32 mbed nucleo


【解决方案1】:

我相信我通过使用 USART1 而不是 USART2 解决了这个问题。文档说明 USART1 和 USART2 都可以使用,但我只收到来自 USART1 的 0x79。

此外,我不得不从Serial 切换到UARTSerial。从机首先发送一个不正确的数据包,0xC0 带有一个不正确的奇偶校验位。不太清楚为什么会这样,但它会导致常规 Serial 实例无法处理后续字节。

【讨论】:

  • 酷。直到现在我才注意到你在原帖中提到了USART2
猜你喜欢
  • 2021-04-05
  • 2012-05-21
  • 1970-01-01
  • 2016-10-25
  • 1970-01-01
  • 2015-12-20
  • 1970-01-01
  • 2017-11-07
  • 1970-01-01
相关资源
最近更新 更多