Sparkfun Edge bootloader问题

问题描述 投票:3回答:3

最后火花板板边板今天到货;-)

遵循这个写得很好的指南:https://codelabs.developers.google.com/codelabs/sparkfun-tensorflow/#3当我尝试使用uart_wired_update.pyscript来缓存Ambiq上的代码时,我遇到了以下NoResponseError,它附带了tensorflow示例

opprud$ python3 tensorflow/lite/experimental/micro/tools/make/downloads/AmbiqSuite-Rel2.0.0/tools/apollo3_scripts/uart_wired_update.py -b 115200 /dev/cu.usbserial-1430 -r 1 -f main_nonsecure_wire.bin -i 6

MOJ/Connecting with Corvette over serial port /dev/cu.usbserial-1430...

Sending Hello.

No response for command 0x00000000

Traceback (most recent call last):

  File "tensorflow/lite/experimental/micro/tools/make/downloads/AmbiqSuite-Rel2.0.0/tools/apollo3_scripts/uart_wired_update.py", line 336, in <module>

    main()

  File "tensorflow/lite/experimental/micro/tools/make/downloads/AmbiqSuite-Rel2.0.0/tools/apollo3_scripts/uart_wired_update.py", line 38, in main

    connect_device(ser)

  File "tensorflow/lite/experimental/micro/tools/make/downloads/AmbiqSuite-Rel2.0.0/tools/apollo3_scripts/uart_wired_update.py", line 58, in connect_device

    response = send_command(hello, 88, ser)

  File "tensorflow/lite/experimental/micro/tools/make/downloads/AmbiqSuite-Rel2.0.0/tools/apollo3_scripts/uart_wired_update.py", line 235, in send_command

    raise NoResponseError

__main__.NoResponseError

我的设置:

  • Macbook pro,尝试了旧的15“和新的13”
  • Sparkfun串口基本突破,USBC版本(默认跳转到3v3)
  • FTDI 3v3串行电缆

我试过了

  • 两个不同的边缘板,具有正确的Key14和重置组合+ misc变体和时序
  • 旧Macbook上的传统USB
  • 带USB C的新Macbook
  • FTDI 3v3串行电缆可替代sparkfun串行板
  • 在tensorflow / lite / experimental / micro / tools / make / downloads / AmbiqSuite-Rel2.0.0 / tools / bootloader_scripts / uart_boot_host.py中运行替代uart_boot_host.py脚本,也没有响应

我可以使用示波器测量握手字节'0x14','0x55','0x9d','0xe9''0x0','0x0','0x8','0x0'最初在115200上发送到TXO引脚在编程标题 - 但ambiq没有回复任何东西。

顺便说一句。板载演示正在运行,蓝色LED闪烁,一些“是的”正在被识别。

欢迎任何投入。

有谁知道corvette bootloader的协议?

是否有来自第一批电路板的CPU版本更改,或者可能是sparkfun意外编程的任何锁定位?

来自热切的TF lite用户的rgds ;-)

bootloader tensorflow-lite
3个回答
2
投票

我尝试使用rx / tx引脚上的示波器测量实际波特率,并且看到使用默认OSX串行驱动器的位时序相当不精确,应用10%off,导致读数错误,并且当波特率很高时最终丢失字节。

更新到ch340串行驱动程序后,时序得到改善,位时序正确。在921600bps时,单个字节8N1应该是10.9uS

驱动程序安装https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver


1
投票

很高兴听到你对董事会如此兴奋。我有一种预感,这将是一个简单的解决方案。

在会议上发布的Edge板有一个115200波特的引导加载程序,但是第二批出来的Edge板升级为921600波特的闪存,大大减少了闪存时间。尝试更改串行上载脚本中的波特率。

您还可以设置Ambiq软件开发套件,为Apollo3微控制器编写自己的应用程序。看看这里的教程:Using the Edge Board with Ambiq SDK


0
投票

由于我无法评论你的帖子(声誉不够......感谢SE)我会在这里回复。

如果波特率精度是一个问题,我稍微不确定那是由操作系统引起的,而是我认为它是USB串行转换器芯片的问题。我一直在使用CH340G,而在USB-C版本则有CH340C IC。两者之间的区别在于“C”版本包括一个内部振荡器,用于提供频率参考。这个可能不太准确......?我会在这里试试(但在Windows上)让你知道。

如果这是一个持续存在的问题你会介意在SparkFun论坛上发帖吗?这样我们的技术支持就可以联系起来了(他们是那些能够在有缺陷的情况下为您提供替换硬件的人)。这是Edge的论坛:SparkFun Edge Forums

如果问题来自操作系统,那么我们可以对Edge执行的唯一修复就是降低引导加载程序的速度。我们正在编写一个关于如何做到这一点的简短教程,但它需要一个用于Cortex-M处理器的编程器/调试器。 Ambiq Apollo3 Evaluation Board有一个内置的SEGGER J-Link,这是我们用来编写电路板的方法。

© www.soinside.com 2019 - 2024. All rights reserved.