Ein SeaTalk zu Arduino Interface mit LT-Spice simuliert

Thomas Knauf stellt auf seiner Seite viele Informationen zum SeaTalk Protokoll von Autohelm / Raymarine zur Verfügung, unter anderem eine RX / TX Eingangsstufe vom PC (RS232) zum SeaTalk Bus.

Diese Schaltung habe ich mit LT-Spice simuliert und etwas verändert.
1. Es wurden die Standard Transistoren BC547B (NPN) und BC557B (PNP) verwendet.
2. Die Spannung am Arduino Pin sollte 5V nicht übersteigen, deshalb ist am Ausgang zum RX am Arduino ein Spannungsteiler mit 4,7k und 2,2k Ohm eingefügt.
3. Aus Symetriegründen wurde der R4 von 10KOhm auf 15kOhm erhöht. Zur Simulation wurden Sinus Signale als Eingangssignale verwendet zur besseren Kontrolle der Schaltschwellen. Im SeaTalk Bus sind es natürlich Rechtecksignale.

Die digitalen Arduino Eingangspins haben laut Datenblatt folgende Logik Pegel:
LOW: 0 – 1,5V
HIGH: 3 – 5V

Das heisst mein Spannungsteiler (2.) gibt für einen Versorgungsspannungsbereich von 10V bis 16V die richtigen Logik Pegel HIGH und LOW aus.

Wenn Störungen, Überspannungen und Spikes auf der Versorgunsspannung auftreten können, dann sollte noch eine Z-Diode mit 5V parallel zu R3 gelegt werden.

Einen Kondensator mit einigen uF und einen mit einigen nF zwischen 12V und GND zu setzen ist sicherlich auch sinnvoll.

Die beiden LT-Spice Simulatione.

1. Der Arduino (TX) sendet in den SeaTalk Bus.

Arduino zu Seatalk

rot: Volt TX (Arduino)
gelb: Volt Daten (SeaTalk)

 

2. Der Arduino (RX) empfängt Daten vom SeaTalk Bus.

Seatalk zu Arduino RX

rot: Volt RX (Arduino)
gelb: Volt Daten (SeaTalk)

 

Die Simulation wurde mit LT-Spice durchgeführt, das bei Linear Technology kostenlos zur Verfügung steht.

von Matthias Busse

Ein Gedanke zu „Ein SeaTalk zu Arduino Interface mit LT-Spice simuliert

  1. Pingback: SeaTalk zu Arduino TTL Interface aufgebaut | Shelvin – Elektronik ausprobiert und erläutert

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.