[Arduino] 使用示波器來看Arduino的UART, Inverted Software serial及RS-232訊號並對其進行解碼
主題: 使用示波器來看Arduino的UART訊號及Inverted Software Serial的波形,及這些訊號轉換成RS-232訊號後的波形,並對其進行ASCII code解碼。 本次測試使用器材為 Arduino MEGA 2560 Rev3 (可參考Po文: [Arduino] 欣賞官方版Arduino MEGA 2560 Rev3 ) TTL to RS-232模組。(這個市面上有N種,本次使用MAX3232 ESE+DN20晶片。) Keysight 2002A示波器 (關於如何學習該款示波器,可參考Po文: [儀器學習] Keysight DSOX2002A Oscilloscope 示波器 ) PS1: 其他Arduino開發版也可適用此案例,例如: Arduino UNO Rev3 , Arduino UNO SMD UART and RS-232基本認知 兩者的邏輯訊號的電壓不同,請見下表。 其中UART採用正邏輯,而RS-232採用負邏輯,因此兩者的波形相反(當然電壓也不同)。 Logic UART RS-232 1 Vcc (3.3 or 5 V) 傳送端 -5 V ~ -15 V / 接收端 -3 V ~ -15 V 0 0 V 傳送端 +5 V ~ +15 V / 接收端 +3 V ~ +15 V 參考資料: https://makerpro.cc/2019/08/the-difference-between-rs232-and-uart/ 序列通訊(Serial Communication)傳輸速度與傳輸封包結構 不管是UART或是RS-232的序列通訊,在此測試中都使用相同的傳輸速度與傳輸封包結構。 關於傳輸速度與傳輸封包結構,由於已行之有年,業界通常都講得非常簡略,也成為了一種默契。 業界行話: Baud rate 2400 bps。 8N1 (詳細請見參考資料)。 這個行話,簡單來說: 每秒會傳送2400個Bit。表示資料傳輸速度。 會看到訊號長成10個格子的樣子,如下圖所示。 其中Start (第1個Bit)會用Logic 0表示,Stop (第10個Bit)會用Logic 1表示,這兩個都是固定不變。 D0~D7這8...