【问题标题】:Rasperry pi uart and custom rs485 based protocolRaspberry pi uart 和自定义基于 rs485 的协议
【发布时间】:2016-07-28 15:44:15
【问题描述】:

我正在尝试从 Arduino Nano 发送的树莓派上读取来自主 uart /dev/ttyAMA0 的数据。

arduino 端的库https://gitlab.com/creator-makerspace/rs485-nodeproto

所以我使用一个简单的 python 脚本来验证来自 arduino 的数据:

import serial

sp = serial.Serial(
    port="/dev/ttyAMA0",
    baudrate=9600,
    timeout=0.1
)

while True:
    i = sp.read()

    print i.encode("hex")

但是输出的数据在 n 次中大约有 x 次损坏/错误。

一个好的数据包看起来像 A0 2 1 4F 50 45 4E B7 1B 80

大多数情况下的坏包: 13 0a 7a 41 15 39 dd 1b 80 00

当使用连接到 rs485 收发器而不是内部 uart 的 USB 转 UART 时,测试脚本也可以正常工作。

关于我做错了什么的建议?

【问题讨论】:

  • 缺少终结器(可能是 120 欧姆)?
  • 我的两端都是 120 欧姆。
  • Raspberry Arduino 一侧的接口你申请了什么硬件布局? RS485 不是它们中的任何一个的“本机”接口:在双方都需要一个收发器。而RS485往往与Modbus协议的应用挂钩。
  • "USB to UART - 你的意思是“USB RS232”并且你将它的 RX 直接连接到 RS485 收发器的非差分端?如果可行,那么你肯定有RS485 +/- 线交叉,因为 0-3.3V 电平与 RS232 反转:当收发器输出为 +3.3V 时,RS232 空闲 -ve,当收发器输出为 0V 时,RS232 空闲为 +ve。此外,您只指定波特率在 python 代码中速率 - 确保断言您在 arduino 端使用的停止/奇偶校验设置。

标签: python arduino raspberry-pi raspberry-pi2 rs485


【解决方案1】:

尝试将开发板直接连接到 uart。它会提示您是 uart 配置问题还是 rs485 问题。

还要考虑硬件问题,例如电路板之间缺少 GND 连接。

板之间的电缆长度是多少?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-20
    相关资源
    最近更新 更多