Sparkfun Edge 引导加载程序问题

Sparkfun Edge bootloader problems

今天 sparkfun 板边缘板终于到了 ;-)

遵循这篇写得很好的指南:https://codelabs.developers.google.com/codelabs/sparkfun-tensorflow/#3 当我尝试在 Ambiq 上使用 uart_wired_update.py 脚本刷新代码时,我遇到了以下 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

我的设置:

我试过了

我可以用示波器测量最初在编程头上 TXO 引脚上的 115200 - 但 ambiq 没有回复任何内容。

顺便说一句。板载演示是 运行,蓝色 LED 闪烁,一些 "yes's" 正在被识别。

欢迎任何意见。

有人知道 Corvette 引导加载程序的协议吗?

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

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

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

发布会上分发的Edge boards bootloader设置为115200 baud,而第二批出来的Edge boards升级为921600 baud的flash,大大缩短了flash时间。尝试更改串行上传脚本中的波特率。

您还可以设置 Ambiq 软件开发工具包来为 Apollo3 微控制器编写您自己的应用程序。在此处查看教程:Using the Edge Board with Ambiq SDK

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

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

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

因为我不能评论你的post(没有足够的声誉....谢谢SE)我会在这里回复。

如果波特率精度有问题,我不太确定那是由 OS 引起的,但我认为这是 USB 串口转换器芯片的问题。我一直在使用 CH340G 而在 USB-C 版本上有 CH340C IC。两者之间的区别在于 "C" 版本包括一个内部振荡器来提供频率参考。有可能那个不太准确......?我会在这里(但在 windows)试一试,然后告诉你。

如果这是一个长期存在的问题,您介意在 SparkFun 论坛上发一个 post 吗?这样我们的技术支持就可以联系起来(如果硬件有缺陷,他们也可以为您提供更换硬件)。这是 Edge 的论坛:SparkFun Edge Forums

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

这对我有用:(来源:github.com/sparkfun/SparkFun_Edge_BSP/issues/3, the SparkFunEdge tutorial 和我的队友!)。我在 Linux 机器 (x86_64; 运行 $ uname -a) 和我的 SparkfunEdge DEVICENAME=/dev/ttyUSB0

上 运行ning 这个

本教程确实在 Step 4:

警告过您这个问题

Note: Some users have reported issues with their operating system's default drivers for programmer, so we recommend installing the driver before you continue.

点击 driver link 并按照 "Other Linux distributions" 下的说明进行操作,如下所示:

  1. 安装正确版本的 ch34 库。 $ git clone https://github.com/juliagoda/CH341SER.git $ cd CH341SER/ $ make $ sudo insmod ch34x.ko $ sudo rmmod ch341

  2. 要验证是否使用了正确的驱动程序,运行: $ dmesg .. [889247.585301] usb 1-7: ch341-uart converter now attached to ttyUSB0 [955698.718839] usbcore: registered new interface driver ch34x [955698.718848] usbserial: USB Serial support registered for ch34x [955759.196437] usbserial: USB Serial deregistering driver ch341-uart [955759.196576] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0 [955759.196601] usbcore: deregistering interface driver ch341 [955759.196643] ch341 1-7:1.0: device disconnected

    现在从 SparkfunEdge 板上拔下 USB-C,然后再插回去 $ dmesg .... [955876.176950] ch34x 1-7:1.0: ch34x converter detected [955876.177320] usb 1-7: ch34x converter now attached to ttyUSB0

在 MacOS Mojave 上,Installing/Reinstalling CH340 适合我: https://learn.sparkfun.com/tutorials/how-to-install-ch340-drivers#mac-osx

在进行安装之前,请检查您是否确实看到了 sparkfun edge 设备: ls -l /dev/cu* 如果驱动程序安装正确,您应该检测到: /dev/cu.wchusbserial1420

我遇到了类似的问题,而我只有 /dev/cu.usbserial-1420 并认为这是预期的设备访问,而它是 /dev/cu.wchusbserial1420 仅在安装 ch340 驱动程序后检测到。 然后闪烁设备对我来说成功了。