开源改变世界!!

没有与 Arduino Uno 的串行通信 #8

推推 grbl 2年前 (2023-01-21) 192次浏览

关闭
TylerOderkirk 打开了这个问题 2011 年 1 月 30 日 · 26条评论
关闭

没有与 Arduino Uno 的串行通信#8

TylerOderkirk 打开了这个问题 2011 年 1 月 30 日 · 26条评论

注释

没有与 Arduino Uno 的串行通信 #8

我在 Windows XP SP2 中成功地将grbl_0.51_9600_328p.hex 刷写到我的 Uno,如下所示:

“C:\Program Files\arduino-0022\hardware\tools\avr\bin\avrdude” “-CC:\Program
Files\arduino-0022\hardware/tools/avr/etc/avrdude.conf” -patmega328p -cstk500v1
– P.\COM12 -b115200 -D -Uflash:w:grbl_0.51_9600_328p.hex

但是,我似乎无法通过 Arduino 串行监视器与固件通信,也无法通过 {xon/xoff,rts/cts,no} 流量控制与 Putty 通信。我从固件中收到一两个垃圾(不可打印)字节,仅此而已。

没有与 Arduino Uno 的串行通信 #8

我也有同样的问题。我已经成功地从 avrdude 命令行(上面提到)加载了代码。

使用 Ubuntu 10.10 64 位和 Arduino Uno。(使用 Arduino-0021 的 avrdude)(在为 uno 闪烁新的 usbserial 补丁之前和之后)

这是我的 avrdude 会话的输出:

————————– 剪断
代码/arduino-0021/hardware/tools/avrdude -Ccode/arduino-0021/hardware/tools/ avrdude.conf -pm328p -cstk500v1 -P/dev/ttyACM0 -b115200 -D -Uflash:w:code/grbl/grbl_0.51_9600_328p.hex

avrdude:AVR 设备已初始化并准备好接受指令

阅读 | ################################################## | 100% 0.01s

avrdude:设备签名 = 0x1e950f avrdude
:读取输入文件“代码/grbl/grbl_0.51_9600_328p.hex” avrdude
:输入文件代码/grbl/grbl_0.51_9600_328p.hex 自动检测为 Intel Hex avrdude
:写入闪存(13222 字节):

写作 | ################################################## | 100% 3.20s

avrdude:写入 13222 字节的闪存
avrdude:根据代码/grbl/grbl_0.51_9600_328p.hex 验证闪存:avrdude:
从输入文件代码/grbl/grbl_0.51_9600_328p.hex 加载数据闪存数据:avrdude
:输入文件代码/grbl/ grbl_0.51_9600_328p.hex 自动检测为 Intel Hex avrdude
:输入文件代码/grbl/grbl_0.51_9600_328p.hex 包含 13222 字节 avrdude
:读取片上闪存数据:

阅读 | ################################################## | 100% 3.11s

avrdude:正在验证…
avrdude:已验证 13222 字节的闪存

avrdude:安全模式:保险丝正常

avrdude 完成。谢谢你。
————————– 剪断

我试过以几种波特率连接(先尝试 9600)并得到一些垃圾字符..

-斯科特

没有与 Arduino Uno 的串行通信 #8
成员

我目前正在 Uno 上运行活跃的开发分支(“加速”),没有任何问题。今晚将在 Uno 上调试当前版本。

没有与 Arduino Uno 的串行通信 #8
成员

我在 master 分支中运行最新的代码没有问题@9600与乌诺。我在这里上传了我的十六进制文件。请尝试并告诉我它是如何为您工作的:

http://d.pr/GXoB

没有与 Arduino Uno 的串行通信 #8

我刚刚闪现了你提供的二进制文件。(刚刚和 Tyler 谈过,他也这样做了)

我们都遇到了相同的结果,垃圾字符。我们正在积极调查这个..l。有什么想法吗?

我们这边好像有什么事情发生?他运行 WinXp 32 位,我运行 Ubuntu 10.10 64 位..

我已经使用 screen/socat 尝试连接…

谢谢,
斯科特

—–
代码/arduino-0021/hardware/tools/avrdude -Ccode/arduino-0021/hardware/tools/avrdude.conf -pm328p -cstk500v1 -P/dev/ttyACM0 -b115200 -D -Uflash:w:代码/grbl/GXoB.grbl_0.51.2_9600_328p.hex

avrdude:AVR 设备已初始化并准备好接受指令

阅读 | ################################################## | 100% 0.02s

avrdude:设备签名 = 0x1e950f avrdude
:读取输入文件“code/grbl/GXoB.grbl_0.51.2_9600_328p.hex” avrdude
:输入文件代码/grbl/GXoB.grbl_0.51.2_9600_328p.hex 自动检测为 Intel Hex avrdude
:写入闪存(13272 字节):

写作 | ################################################## | 100% 3.86s

avrdude:13272 字节的闪存写入
avrdude:根据代码/grbl/GXoB.grbl_0.51.2_9600_328p.hex 验证闪存:avrdude:
从输入文件代码/grbl/GXoB.grbl_0.51.2_9600_328p.hex 加载数据闪存数据:avrdude
:输入
文件代码/grbl/GXoB.grbl_0.51.2_9600_328p.hex 自动检测为 Intel
Hex

阅读 | ################################################## | 100% 3.23s

avrdude:正在验证…
avrdude:已验证 13272 字节的闪存

avrdude:安全模式:保险丝正常

avrdude 完成。谢谢你。
—– 剪断

没有与 Arduino Uno 的串行通信 #8

忘了说,我们用的是两块不同的 Uno 板。

我现在将尝试第三个 Uno,以排除硬件问题。

斯科特

没有与 Arduino Uno 的串行通信 #8

快速更新.. 第三个 Uno 给了我类似的行为。奇怪的…

没有与 Arduino Uno 的串行通信 #8
成员

非常奇怪。我只是尝试使用您使用的 avrdude 命令重新刷新我的 uno,没有问题。您使用什么参数进行 socat?这是我目前的工作路线:

socat -d -d READLINE /dev/tty.usbmodem26221,clocal=1,nonblock=1,cread=1,cs8,ixon=1,ixoff=1

没有与 Arduino Uno 的串行通信 #8
成员

尝试此操作时,您是否有任何其他硬件连接到您的 unos?

没有与 Arduino Uno 的串行通信 #8

我用过:

socat -d READLINE /dev/ttyACM0,clocal=1,nonblock=1,c1,ixoff=1,ispeed=9600
和屏幕 /dev/ttyACM0 9600

我相信 Tyler 已经尝试过 Putty..

我没有任何连接到板上的东西,只有 USB 电缆。

我刚试过你的 socat 线,不得不修改 /ttyACM0:(相同的结果)

socat -d -d READLINE /dev/ttyACM0,clocal=1,nonblock=1,cread=1,cs8,ixon=1,ixoff=1

我注意到你有一个 tty.usbmodem26221,你认为我在 ttyACM0 上的显示与此有什么关系吗?

没有与 Arduino Uno 的串行通信 #8
成员

也许。这是一个相关的问题吗?

http://ubuntuforums.org/showthread.php?t=1622981

当我将“ttyACM duo”放入谷歌时,我收到了很多有趣的可能相关的噪音

没有与 Arduino Uno 的串行通信 #8

有趣的东西。我按照该线程中的说明启动并运行了 Arduino-22,现在可以通过 arduino ide 上传代码(昨天我第一次启动这个 Uno 时没有工作)。

我不认为这是我的问题,因为我可以上传代码。(现在来自 arduino ide 和 avrdude)。

我将沿着 ttyACM 设备的方向继续挖掘,看看我发现了什么。至少我得到了您的验证,这将帮助我缩小问题范围!

问题,.. 为什么你有一个 tty.usbmodem 设备?

没有与 Arduino Uno 的串行通信 #8

天啊,忘了说了,Tyler 从他的 Windows 机器上看到了类似的结果,他很快就会来,我们会再次尝试并及时通知您。

谢谢
斯科特

没有与 Arduino Uno 的串行通信 #8
成员

我猜 ttyACM 是 Ubuntu 的东西?tty.usbmodem 可能是 OS X-ish?

没有与 Arduino Uno 的串行通信 #8

您使用的是 Mac 吗?我可以在这里启动我的 mini 并尝试一下……

没有与 Arduino Uno 的串行通信 #8
成员

也许你应该这样做?至少会消除一个可能的原因。

但我知道人们以前在 Ubuntu 和 Windows 上都使用过 Grbl。你能不能用一些简单的串行东西来闪现它,然后看看你能用 socat 看到它吗?

没有与 Arduino Uno 的串行通信 #8

有趣的发现在这里..

Windows/Mac/Linux 尝试以 9600 刷新和连接。我之前阅读了一个关于 Uno 的串行波特率双倍默认打开的链接。参见http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1292954023

所以我在编程后拔掉了 Uno,重新插入并尝试在 19200 与屏幕连接。

这是我的结果:

‘$’ 转储当前设置。H�ɉ��0.51
ok
$
$0 = 755.906(步数/mm x)
$1 = 755.906(步数/mm y)
$2 = 755.906(步数/mm z)
$3 = 30(微秒步脉冲)
$4 = 480.0(毫米/秒默认进给速率)
$5 = 480.0(毫米/秒默认寻道速率)
$6 = 0.100(毫米/弧段)
$7 = 0(步进端口反转掩码。二进制 = 0)

‘$x=value’ 设置参数或只是 ‘$’ 转储当前设置
ok

!!大大改善。你在 9600 连接?到目前为止 19200 重复工作!?

无论如何,我们已经跨过了第一个障碍,还有几个障碍要走……

没有与 Arduino Uno 的串行通信 #8
成员

您拥有的版本是硬连线到 9600 的。我打算进行比特率检测,但它总是排在我几天前刚刚完成的加速支持之后。要更改比特率,此时必须重新编译 Grbl:-/ 抱歉。鉴于我在9600和115200都成功使用过。

您在启动时看到的小故障有时是正常的。这是一个由我在当前分支(“加速”)中修复的引导例程中的轻微黑客攻击引起的错误。当我在真机上测试这些新东西时,我会向后移植所有东西。到目前为止,我只在逻辑分析仪上验证过它。但我希望它能顺利进行并整合所有更改并回到一个分支进行一段时间的主要开发。

没有与 Arduino Uno 的串行通信 #8

没问题…在我链接到的线程中,有一种简单的方法可以强制 Uno 关闭波特率加倍,如果是这样的话,我会尽快测试。

今晚我们正在努力将 Grbl 连接到我们的 cnc 原型。我必须重新安排一些 I/O。我们很可能会获取您最新的加速代码并启动它。

非常激动人心的时刻……我们会及时通知您。

-斯科特

没有与 Arduino Uno 的串行通信 #8
成员

我还没有研究过 Uno 的新可能性。得到一些只是为了确保 Grbl 工作。稍后会调查。也许我的整个波特自动检测计划现在都没有实际意义了?希望如此!

没有与 Arduino Uno 的串行通信 #8

只是为了完成这个线程。

首先,串行通信功能正常。

(奇怪)。我定期在将 Grbl 加载到 Uno 上时遇到问题。到目前为止,尽管听起来很奇怪,但我使用的是 Mac 并从那里运行 avrdude,然后我能够将设备移回我的 Ubuntu 10.10 盒子并刷新并与 grbl 通信。

在具有 arduino-0021 和 arduino-0022 硬件/工具/avrdude 的 Ubuntu 10.10 64 位上,我可以正常刷写。但是,我以任何标准波特率从 Grbl 获取垃圾字符。

一旦我玩了 goto the mac 游戏,我就能够以 config.h 文件包含的波特率的 2 倍(双倍)连接到设备。我读到 Uno 有一个默认启用的波特率加倍器标志。所以,默认情况下 9600,我必须在 19200 连接,一切都很好。[ ** 还有其他人反对这种行为吗?]

(在此之前,我确实更新了 Uno 上的 usbserial 驱动程序http://www.hacktronics.com/Tutorials/arduino-uno-linux-serial-port-printing-trouble.html

当我有机会进一步调查时,我将针对程序员版本和操作系统内核版本。我感觉存在内核端驱动程序问题。

底线,。问题是间歇性的,我可以解决它。我将在接下来的几周内仔细记录我的发现,并以更详细的信息报告回来。

斯科特

没有与 Arduino Uno 的串行通信 #8
成员

当你闪烁你的 Duos 时,你是否留下了 arduino 引导加载程序?这可能就是为什么你得到波特率加倍而我没有的原因吗?(我经常删除引导加载程序)

无论如何,我会添加一行来禁用波特倍增器。

没有与 Arduino Uno 的串行通信 #8
成员

如果你能拉出最新版本的加速分支,取消第 47 行的注释并告诉我它是如何为你工作的,我将非常感激。我今天在一个试图驱动大电流直流电机的无关项目中炸了我的两个 Unos :-/

没有与 Arduino Uno 的串行通信 #8
成员

我为你编译了一个 hex 文件并把它放在这里:http ://d.pr/G9eL

没有与 Arduino Uno 的串行通信 #8

没问题,给我几个小时,我会尽快回复您!

没有与 Arduino Uno 的串行通信 #8

成功了,我现在以 9600 bps 的速度连接。

好的。这应该可以防止未来的采用者产生任何混淆!

没有与 Arduino Uno 的串行通信 #8
成员

伟大的!

ashelly 将提交推送到引用此问题的 ashelly/grbl 2015 年 5 月 22 日

此问题已关闭
喜欢 (0)