最后,sparkfun板边缘板今天到达;-)
遵循这份精心编写的指南:https://codelabs.developers.google.com/codelabs/sparkfun-tensorflow/#3,当尝试使用Tensorflow示例随附的uart_wired_update.py
脚本在Ambiq上刷新代码时,我会遇到以下NoResponseError问题
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
我的设置:
我尝试过
uart_boot_host.py
脚本,也无响应我可以在一定范围内测量握手字节'0x14','0x55','0x9d','0xe9','0x0','0x0','0x8','0x0'最初是在115200编程标头上的TXO引脚-但歧义字未回复任何内容。
顺便说一句。板载演示正在运行,蓝色指示灯闪烁,并且识别出一些“是”。
欢迎任何输入。
有人知道护卫舰引导程序的协议吗?
第一批主板上是否有CPU版本更改,或者sparkfun意外编程了任何锁定位?
渴望TF精简版用户的rgds;-)
答案 0 :(得分:2)
我尝试用rx / tx引脚上的示波器测量实际的波特率,发现使用默认OSX串行驱动程序的位时序非常不准确,应用程序降低了10%,导致波特率降低时出现错误的读数,并最终丢失字节高。
更新到ch340串行驱动程序后,时序得到了改善,并且位时序正确。 在921600bps时,单字节8N1应该为10.9uS
驱动程序安装 https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver
答案 1 :(得分:1)
很高兴得知您对董事会感到非常兴奋。我预感这将是一个简单的解决方法。
在会议上分发的Edge板的引导加载程序设置为115200波特,但是第二批中发布的Edge板则升级为921600波特的闪存,从而大大减少了闪存时间。尝试在串行上传脚本中更改波特率。
您还可以设置Ambiq软件开发套件来为Apollo3微控制器编写自己的应用程序。在此处查看教程:Using the Edge Board with Ambiq SDK
答案 2 :(得分:1)
这对我有用:(来源:github.com/sparkfun/SparkFun_Edge_BSP/issues/3,SparkFunEdge tutorial和我的队友!)。我正在Linux计算机(x86_64;运行$ uname -a
)和我的SparkfunEdge DEVICENAME=/dev/ttyUSB0
本教程确实在Step 4上警告您有关此问题:
注意:一些用户报告了其操作系统的问题。 程序员的默认驱动程序,因此我们建议安装 driver,然后再继续。
单击driver链接,并按照“其他Linux发行版”下的说明进行操作,如下所示:
安装正确版本的ch34库。
$ git clone https://github.com/juliagoda/CH341SER.git
$ cd CH341SER/
$ make
$ sudo insmod ch34x.ko
$ sudo rmmod ch341
要验证是否使用了正确的驱动程序,请运行:
$ 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
答案 3 :(得分:0)
由于我无法评论您的帖子(信誉不足。...感谢SE),我将在这里回复。
如果波特率精度有问题,我不太确定这是由操作系统引起的,但我认为USB串行转换器芯片有问题。我一直在使用CH340 G ,而在USB-C版本上有CH340 C IC。两者之间的区别在于“ C”版本包括一个内部振荡器以提供频率参考。可能那是不太准确的...?我将在这里(但在Windows上)尝试一下,并告诉您。
如果这是一个持续存在的问题,您介意在SparkFun论坛上发表文章吗?这样,我们的技术支持就可以联系进来(他们也可以在硬件出现故障时为您提供替换硬件)。这是Edge的论坛:SparkFun Edge Forums
如果问题来自操作系统,那么我们对Edge所做的唯一修复就是降低引导加载程序的速度。我们正在编写有关如何执行此操作的简短教程,但是这需要为Cortex-M处理器配备程序员/调试器。 Ambiq Apollo3 Evaluation Board具有内置的SEGGER J-Link,这是我们用来对板进行编程的工具。
答案 4 :(得分:0)
在MacOS Mojave上,安装/重新安装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驱动程序之后才检测到。 然后闪烁的设备对我来说成功工作了。