Sparkfun Edge Bootloader问题

时间:2019-04-01 20:33:23

标签: bootloader tensorflow-lite

最后,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

我的设置:

  • Macbook pro,同时尝试了旧的15英寸和新的13英寸
  • Sparkfun串行基本突破,USBC版本(默认跳至3v3)
  • FTDI 3v3串行电缆

我尝试过

  • 两个不同的边缘板,具有正确的Key14和重置组合+其他版本和计时
  • 旧版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引脚-但歧义字未回复任何内容。

顺便说一句。板载演示正在运行,蓝色指示灯闪烁,并且识别出一些“是”。

欢迎任何输入。

有人知道护卫舰引导程序的协议吗?

第一批主板上是否有CPU版本更改,或者sparkfun意外编程了任何锁定位?

渴望TF精简版用户的

rgds;-)

5 个答案:

答案 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/3SparkFunEdge tutorial和我的队友!)。我正在Linux计算机(x86_64;运行$ uname -a)和我的SparkfunEdge DEVICENAME=/dev/ttyUSB0

上运行它

本教程确实在Step 4上警告您有关此问题:

  

注意:一些用户报告了其操作系统的问题。   程序员的默认驱动程序,因此我们建议安装   driver,然后再继续。

单击driver链接,并按照“其他Linux发行版”下的说明进行操作,如下所示:

  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

答案 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驱动程序之后才检测到。 然后闪烁的设备对我来说成功工作了。