→ god145145: 不良品吧 叫廠商來當場讀給你看 03/12 00:10
推 chuegou: 照你的敘述 你應該是要放溫濕度計的詳細資料才是 03/12 00:56
溫濕度計這一款我有買四組,外加一組廠商的USB轉RS485/422轉換器
使用廠商的轉換器可以正常讀取,但用我上述的那些就不行
所以撇除硬體(溫濕度計壞掉)或485晶片(上述的晶片我有同時測試讀取其他設備正常)
我在想是否溫濕度計的回傳訊號速度(0.3ms)太快的問題
晶片是讀得到訊號,只是解析的格式錯誤,上述的晶片都是一樣的問題
我用DSO138讀取的波形如下
https://upload.cc/i1/2020/03/12/IuMnf4.jpg
傳送+回傳
https://upload.cc/i1/2020/03/12/2xvFT8.jpg
溫濕度計訊號回傳放大
這問題好難解啊,一個點卡在那裡心很煩= =
※ 編輯: aaa7513231 (36.232.168.44 臺灣), 03/12/2020 09:44:31
推 god145145: 既然有他的轉接就比對一下訊號,再用他的轉接去讀其它s 03/12 21:42
→ god145145: ersor看看。如果可以就買4000賣12000,你也省事。 03/12 21:42
雖然廠商的轉接器可以使用,但我是在開發電路板其中有整合Rs485輸出,可以的話還是
希望可以支援多一點的設備,也怕未來又遇到這種問題
→ easypro: 把包覆線的鋁套接在兩邊設備的地看看 03/13 09:56
我只有用兩條短線測試,我想線材影響應該不大,但有時間我還是會是買雙絞線測試看看
推 wydct: 是否傳輸格式錯誤,MODBUS如果傳輸錯誤是不會有回傳值的 03/13 11:55
格式應該不是問題,我有讀取其他設備測試過,謝謝~
推 DRQX: 可能傳送接收切換速度過慢 03/14 12:16
我有考慮過這問題,我看過這些晶片的Datasheet,但我猜不出來哪一個是晶片收發切換
速度,我看各家廠商的定義又不太一樣,然後我想說乾脆看這款溫濕度計的485晶片
是VP22,想說跟你用一樣就沒問題,結論是測試依舊失敗。
→ yunnlai: 看波形, baud rate 應是 9600 bps. parity/stop bit 是 ? 03/15 04:33
→ yunnlai: 試試看 none parity. 03/15 04:40
→ yunnlai: 又,因packet間隔短(0.3ms),且是連續回8Byte-間隔-9Byte, 03/15 04:43
→ yunnlai: 程式最底層讀取 UART port 是用 polling 或 interrupt ? 03/15 04:45
→ yunnlai: 建議用 Interrupt 收回傳值. 因4000元模組讀得到, 推測 03/15 04:46
→ yunnlai: UART port FIFO 應有 8byte以上(概估). 03/15 04:48
→ yunnlai: 簡言之,用中斷(background)收資料,收到程式(F/W)的Queue 03/15 04:50
→ yunnlai: (通常是宣告array),在Foreground的程式讀queue,再解析之. 03/15 04:53
我測試設定是UART為8N1,硬體用Arduino Mega R3
M大講的比較專業,我會再花時間研究一下,謝謝
謝謝大家幫忙分享經驗
因為我家設備簡陋,所以測試跟回覆都會比較慢一點
請見諒~
※ 編輯: aaa7513231 (1.165.182.34 臺灣), 03/15/2020 10:21:13
推 ureikaze: 你如何切換RE/DE? 檢查一下訊號回傳時DE是否已經釋放 03/16 12:25
推 jimiwm: 同意樓上說法 RE DE 訊號的問題 01/04 12:50