樹莓派開發筆記(十四):入手研華工控樹莓派UNO-220(三):測試rtc、gpio、232和485

21497936發表於2022-05-13

前言

  上一篇說明了必須要使用研華自帶的8G卡的系統,透過溝通拿到了相關的系統,購買的時候會帶8GB的卡,請自行備份一份映象。本篇對uno-220套件的相關研華配套的額外介面做測試,篇幅較長,重點講述了測試、發現問題以及解決問題的思路和過程。

特別注意

  系統官方是不提供額外下載的,經銷售也沒有,只有購買UNO-220套件附送的8GB卡才有,其官方其他下載版本全部測試,無法載入研華的驅動,所以實際上他的下載驅動無作用。

刷系統

  該系統是8GB卡里面的對應筆者的套件的。
  先貼上自帶系統的版本:
   在這裡插入圖片描述
  以下是備份的系統:
   在這裡插入圖片描述
  然後使用win32DiskImager刷機:
    在這裡插入圖片描述
  選擇要刷的映象,選擇寫入的盤(32GB的sd卡),開始寫入:
   在這裡插入圖片描述
  等待寫入完成:
   在這裡插入圖片描述

測試RTC驅動

  將卡插入樹莓派:
   在這裡插入圖片描述
  開啟後:
   在這裡插入圖片描述
  測試RTC驅動:
   在這裡插入圖片描述
  測試成功,使用ssh連線,原本的研華的系統也開啟了預設的ssh服務,使用者名稱和密碼都是預設的。
  之前是沒有連線網路設定為2000年1月1日,接上公網後,會自動更新時間並持續寫入最新時間到rtc,如下圖:
   在這裡插入圖片描述

測試GPIO口

sudo uno220gpio -hsudo uno220gpio --export=allsudo uno220gpio 
sudo uno220gpio --in=0 --direction=outsudo uno220gpio --pin=0 --value=1

   在這裡插入圖片描述

測試串列埠

第一輪測試失敗:UNO220套件引出來的預設為除錯串列埠

uno220uart測試

  程式測試接收傳送不對,串列埠波特率各種也都試過了,而且其本身又沒有說明文件,幫助資訊也有限,而且其命令列說白了而也不好用。
   在這裡插入圖片描述

minicom測試

sudo apt-get install minicom

   在這裡插入圖片描述

ls dev/tty*

  /dev/ttyAMA0目前是分配給藍芽的)
   在這裡插入圖片描述
   在這裡插入圖片描述
   在這裡插入圖片描述
  發現還是不行,直接給他拆了,將40pin中的唯一串列埠給他引出來:
   在這裡插入圖片描述
   在這裡插入圖片描述
  還是亂碼,偶然發現在PC的串列埠助手上出現需要登陸的英文,所以此介面當前應該是調串列埠,於是測試:
   在這裡插入圖片描述
  由此判斷/dev/serial0是除錯串列埠。
   在這裡插入圖片描述

第二輪測試失敗:疑似除錯串列埠,但又不是?

  知道了是除錯串列埠,那麼切換成空閒的串列埠給他呼叫即可完成除錯,具體的方法後面附上,目前先蓋上套件測試第二輪
   在這裡插入圖片描述

uno220uart測試

   在這裡插入圖片描述
  接收時需要帶裝置的,那麼傳送是否也需要帶裝置,其文件上接收並沒有帶裝置,貼研華文件如下圖:
   在這裡插入圖片描述
  下面是帶裝置接收:
   在這裡插入圖片描述
  測一下不帶裝置接收的:
   在這裡插入圖片描述

  特別注意啊,以下的測試沒有透過套件,直接是接入樹莓派的。

minicom測試

  跟上面一樣,也是亂碼,所以筆者就很好奇了,這個地方好像你再輸入輸出的時候,對方也在輸入輸出。
  發現,我們外部輸入的時候,裡面也在同步輸出。這是直接接的樹莓派了,所以此串列埠是否是除錯串列埠(除錯串列埠又不輸出除錯資訊,偶爾之前輸出需要登陸的)。
   在這裡插入圖片描述
  (硬體有問題就有點小麻煩了,繼續先忽略這個確認軟體問題,當前判斷應該是串列埠控制端問題,帶著疑問繼續)

第三輪測試:裸機成功,uno220套裝失敗(漏電)

  此時我們也不糾結了,且花費了較多的時間了,直接更換2個串列埠,當前為:
   在這裡插入圖片描述

sudo uno220uart --kernel=0 --systemd=0 –disablereboot

  關閉串列埠之後重啟,就這樣了:
   在這裡插入圖片描述
  之前的樹莓派3B+上,UART0 GPIO14 GPIO15 這個是硬體串列埠,預設當成串列埠控制檯使用。

串列埠接收資料錯誤問題原因

  我們查一下4B(uno220套件為4B),可知道3B和4B是一樣的串列埠和藍芽問題,所以usart參照博文《 樹莓派開發筆記(六):GPIO口的UART的使用(串列埠通訊)
   在這裡插入圖片描述
  當前已經開啟了:
   在這裡插入圖片描述

關閉藍芽和調換串列埠

  藍芽用了不穩定的serial0藍芽資料肯定有問題,所以直接技能用藍芽,避免以後使用藍芽入坑。

sudo vi /boot/config.txtdtoverlay=pi3-disable-bt

   在這裡插入圖片描述

reboot

  再看,將serial1分配給ttyS0了:
   在這裡插入圖片描述
  然後繼續測試,前面控制檯的問題補充一下,樹莓派預設將IO引出的串列埠用作於控制檯使用,在沒有網路的時候,可以透過串列埠對樹莓派進行控制管理,所以經過前面的步驟做好串列埠對映交換後,還是不能正常地使用串列埠模組進行通訊。需要禁用串列埠控制檯功能,使串列埠為我們自由使用。
  分別透過如下兩個命令停止和禁用串列埠的控制檯功能。(由於我們前面已經交換了串列埠的對映關係,因此這裡注意是ttyAMA0。)

sudo systemctl stop serial-getty@ttyAMA0.servicesudo systemctl disable serial-getty@ttyAMA0.service

  還需要刪除配置:

sudo vi /boot/cmdline.txt

   在這裡插入圖片描述
  刪除後(刪除console=serial0,115200這條):
   在這裡插入圖片描述
  重啟,開始測試。

uno220uart不裝套件測試:成功

  傳送測試:正常(中文亂碼,是編碼問題,不處理)
   在這裡插入圖片描述
  接收測試:正常
   在這裡插入圖片描述

minicom不裝套件測試:成功

sudo minicom -s

   在這裡插入圖片描述

   在這裡插入圖片描述

uno220uart裝套件測試:傳送正常,接收失敗

  傳送測試:正常(中文亂碼,是編碼問題,不處理)
   在這裡插入圖片描述
  接收測試:正常
   在這裡插入圖片描述
   在這裡插入圖片描述

sudo minicom -s

   在這裡插入圖片描述
   在這裡插入圖片描述
  突然注意到套裝的TXD線對應的usb轉ttl一直亮燈,估計是漏掉(串列埠傳送則是閃爍,沒傳送就是不良,一直亮肯定漏電,並且也確認了脫開uno220的套裝板正常。
  確認套裝額外加裝的有問題,套裝有漏電0.91V左右:
   在這裡插入圖片描述
  失敗原因: 傳送端漏電傳送正常,接收端不漏掉接收端正常,所以是傳送端的漏掉影響了接收端的接收

測試485口:成功

  485口uno220套裝將串列埠給他加485出的,之前測試了串列埠有問題,希望485不一定有問題,所以繼續測試。
  485口接收和測試都沒有問題:
   在這裡插入圖片描述

結論:485、GPIO、RTC正常,232不正常

  至此,全部測試完畢,本套裝的串列埠TX有漏電影響透過套裝訊息接收和傳送。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70010283/viewspace-2894040/,如需轉載,請註明出處,否則將追究法律責任。

相關文章