开源改变世界

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

推推 grbl 3年前 (2022-10-30) 250次浏览 0个评论
关闭
TylerOderkirk 打开了这个问题 on 30 Jan 2011 · 26 条评论
关闭

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

TylerOderkirk 打开了这个问题 on 30 Jan 2011 · 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 会话的输出:

————————— snip
code/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.01 秒

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

写作 | ################################################# | 100% 3.20 秒

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.11 秒

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

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

完成了。谢谢你。
————————— 剪断

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

-斯科特

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

四门 评论 2011 年 1 月 30 日

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

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

四门 评论 2011 年 1 月 30 日

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

http://d.pr/GXoB

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

我刚刚刷新了您提供的二进制文件。(刚刚和泰勒谈过,他也做了同样的事)

我们都遇到相同的结果,垃圾字符。我们正在积极调查这个..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.02 秒

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.86 秒

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 avrdude
:输入文件代码/grbl/GXoB.grbl_0.51.2_9600_328p.hex 包含 13272 字节 avrdude
:读取片上闪存数据:

阅读 | ################################################# | 100% 3.23 秒

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

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

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

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

忘了提一下,我们使用的是两种不同的 Uno 板。

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

斯科特

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

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

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

四门 评论 2011 年 1 月 30 日

非常奇怪。我刚刚尝试使用您使用的 avrdude-command 重新刷新我的 uno,没有问题。你在 socat 使用什么参数?这是我目前的工作线:

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

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

四门 评论 2011 年 1 月 30 日

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

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

我用过:

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

我相信泰勒已经尝试过腻子..

我没有任何东西连接到板上,只有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的串行通信
成员

四门 评论 2011 年 1 月 30 日

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

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的串行通信
成员

四门 评论 2011 年 1 月 30 日

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

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

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

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

四门 评论 2011 年 1 月 30 日

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

但我知道人们以前在 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 (steps/mm x)
$1 = 755.906 (steps/mm y)
$2 = 755.906 (steps/mm z)
$3 = 30 (微秒步长脉冲)
$4 = 480.0(毫米/秒默认进给速度)
$5 = 480.0(毫米/秒默认寻道速度)
$6 = 0.100(毫米/弧段)
$7 = 0(步进端口反转掩码。二进制 = 0)

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

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

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

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

四门 评论 2011 年 1 月 30 日

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

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

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

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

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

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

-斯科特

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

四门 评论 2011 年 1 月 30 日

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

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

只是为了完成这个线程。

首先,串行通信正常运行。

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

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

一旦我玩了 goto 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的串行通信
成员

四门 评论 2011 年 2 月 11 日

当你刷你的 Duos 时,你把 arduino 引导加载程序留在里面了吗?这可能是你得到双倍波特而我没有的原因吗?(我经常删除引导加载程序)

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

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

四门 评论 2011 年 2 月 11 日

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

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

四门 评论 2011 年 2 月 11 日

我为你编译了一个十六进制文件并放在这里:http ://d.pr/G9eL

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

没问题,给我几个小时,我会回复你的!

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

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

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

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

四门 评论 2011 年 2 月 11 日

伟大的!

ashelly 向引用此问题的 ashelly/grbl 推送了一个提交 2015 年 5 月 22 日

此问题已关闭

没有与 Arduino Uno #8的串行通信
喜欢 (0)

您必须 登录 才能发表评论!