樹莓派開發筆記(十四):入手研華ADVANTECH工控樹莓派UNO-220套件(三):使用研發自帶系統測試rtc、gpio、232和485套件介面
- 2022 年 5 月 13 日
- 筆記
前言
上一篇說明了必須要使用研華自帶的8G卡的系統,通過溝通拿到了相關的系統,購買的時候會帶8GB的卡,請自行備份一份鏡像。本篇對uno-220套件的相關研華配套的額外介面做測試,篇幅較長,重點講述了測試、發現問題以及解決問題的思路和過程。
系統官方是不提供額外下載的,經銷售也沒有,只有購買UNO-220套件附送的8GB卡才有,其官方其他下載版本全部測試,無法載入研華的驅動,所以實際上他的下載驅動無作用。
該系統是8GB卡裡面的對應筆者的套件的。
先貼上自帶系統的版本:
以下是備份的系統:
然後使用win32DiskImager刷機:
選擇要刷的鏡像,選擇寫入的盤(32GB的sd卡),開始寫入:
等待寫入完成:
將卡插入樹莓派:
開啟後:
測試RTC驅動:
測試成功,使用ssh連接,原本的研華的系統也開啟了默認的ssh服務,用戶名和密碼都是默認的。
之前是沒有連接網路設置為2000年1月1日,接上公網後,會自動更新時間並持續寫入最新時間到rtc,如下圖:
sudo uno220gpio -h
sudo uno220gpio --export=all
sudo uno220gpio
sudo uno220gpio --in=0 --direction=out
sudo uno220gpio --pin=0 --value=1
程式測試接收發送不對,串口波特率各種也都試過了,而且其本身又沒有說明文檔,幫助資訊也有限,而且其命令行說白了而也不好用。
sudo apt-get install minicom
ls dev/tty*
/dev/ttyAMA0目前是分配給藍牙的)
發現還是不行,直接給他拆了,將40pin中的唯一串口給他引出來:
還是亂碼,偶然發現在PC的串口助手上出現需要登陸的英文,所以此介面當前應該是調串口,於是測試:
由此判斷/dev/serial0是調試串口。
知道了是調試串口,那麼切換成空閑的串口給他調用即可完成調試,具體的方法後面附上,目前先蓋上套件測試第二輪
接收時需要帶設備的,那麼發送是否也需要帶設備,其文檔上接收並沒有帶設備,貼研華文檔如下圖:
下面是帶設備接收:
測一下不帶設備接收的:
特別注意啊,以下的測試沒有通過套件,直接是接入樹莓派的。
跟上面一樣,也是亂碼,所以筆者就很好奇了,這個地方好像你再輸入輸出的時候,對方也在輸入輸出。
發現,我們外部輸入的時候,裡面也在同步輸出。這是直接接的樹莓派了,所以此串口是否是調試串口(調試串口又不輸出調試資訊,偶爾之前輸出需要登陸的)。
(硬體有問題就有點小麻煩了,繼續先忽略這個確認軟體問題,當前判斷應該是串口控制端問題,帶著疑問繼續)
此時我們也不糾結了,且花費了較多的時間了,直接更換2個串口,當前為:
sudo uno220uart --kernel=0 --systemd=0 –disable
reboot
關閉串口之後重啟,就這樣了:
之前的樹莓派3B+上,UART0 GPIO14 GPIO15 這個是硬體串口,默認當成串口控制台使用。
我們查一下4B(uno220套件為4B),可知道3B和4B是一樣的串口和藍牙問題,所以usart參照博文《樹莓派開發筆記(六):GPIO口的UART的使用(串口通訊)》
當前已經開啟了:
藍牙用了不穩定的serial0藍牙數據肯定有問題,所以直接技能用藍牙,避免以後使用藍牙入坑。
sudo vi /boot/config.txt
dtoverlay=pi3-disable-bt
reboot
再看,將serial1分配給ttyS0了:
然後繼續測試,前面控制台的問題補充一下,樹莓派默認將IO引出的串口用作於控制台使用,在沒有網路的時候,可以通過串口對樹莓派進行控制管理,所以經過前面的步驟做好串口映射交換後,還是不能正常地使用串口模組進行通訊。需要禁用串口控制台功能,使串口為我們自由使用。
分別通過如下兩個命令停止和禁用串口的控制台功能。(由於我們前面已經交換了串口的映射關係,因此這裡注意是ttyAMA0。)
sudo systemctl stop [email protected] systemctl disable [email protected]
還需要刪除配置:
sudo vi /boot/cmdline.txt
刪除後(刪除console=serial0,115200這條):
重啟,開始測試。
發送測試:正常(中文亂碼,是編碼問題,不處理)
接收測試:正常
sudo minicom -s
發送測試:正常(中文亂碼,是編碼問題,不處理)
接收測試:正常
sudo minicom -s
突然注意到套裝的TXD線對應的usb轉ttl一直亮燈,估計是漏掉(串口發送則是閃爍,沒發送就是不良,一直亮肯定漏電,並且也確認了脫開uno220的套裝板正常。
確認套裝額外加裝的有問題,套裝有漏電0.91V左右:
失敗原因:發送端漏電發送正常,接收端不漏掉接收端正常,所以是發送端的漏掉影響了接收端的接收。
485口uno220套裝將串口給他加485出的,之前測試了串口有問題,希望485不一定有問題,所以繼續測試。
485口接收和測試都沒有問題:
至此,全部測試完畢,本套裝的串口TX有漏電影響通過套裝消息接收和發送。