PIC to Raymarine SeaTalk bus interface

Status
Not open for further replies.

nigelmercier

New Member
I'm working on a project with a PIC to communicate with the Raymarine SeaTalk bus. The link below is the part of the schematic diagram of a Raymarine instrument. The logic chip is connected to the TX and RX connections on the right, and the SeaTalk signals and power enter top left.

Official SeaTalk Schematic: http://i77.photobucket.com/albums/j54/nigelmercier/Misc/ST-IO.png

I want to simplify the right half of this circuit. I know it can be done with fewer components, as this Simple Circuit shows: http://www.thomasknauf.de/rap/seabidi.GIF

This simple circuit however was done without prior access the the official circuit above; I was hoping that having the original circuit would help in designing a better simple one. I've tried to follow what the original circuit does that the simple one doesn't, but I'm struggling.

Inversion doesn't matter, as I can chose how I bit-bang the bus. Baud rate is 4800, the SeaTalk bus is a 12V bus, the logic side is 5V in the original, but 3.3V in my device.


Any help with reducing the component count would be greatly appreciated. In particular, is there a bus driver IC that would do the job?
 
From the second diagram it looks like the data is inverted compared to the PC serial port, that means it is the same data polarity as the PIC.

The TX from the bus to the PIC RX can work with just two resistors as a voltage divider to turn the 0-12v signal to 0-5v.

The PIC TX to bus RX *might* work ok with just the PIC output at 0-5v through a diode, as the 12v bus thresholds might be 5v compatible, with the 5v signal as a pull-down signal.

If not, it's no big deal you just need a 0-5v to 0-12v signal converter with no inversion, two transistors will do it.
 
The original circuit provides a fast rising edge whereas the simpler one doesn't. Seems like it's not required though.

Here's a simple converter circuit. The rx just has a protection resistor to drop the voltage down to 5V. The resistor is quite large, so make sure the pullup is disabled on the RX pin (the 10k on the STALK line will act as a pullup anyway).

The tx just has a voltage translator.
 
Thanks for the replies. Perhaps I didn't make my question clear: I don't want to simplify the simple circuit, it is already too basic. I want to simplify the original; using a line driver IC if possible.
 
I saw you asked for a "bus driver IC" but in the same sentence you asked about "reducing the component count".

In engineering terms using two transistors and 3 resistors beats using a specialised IC and whatever support components the IC needs.
 
I saw you asked for a "bus driver IC" but in the same sentence you asked about "reducing the component count". In engineering terms using two transistors and 3 resistors beats using a specialised IC and whatever support components the IC needs.

Like I said, the simple circuit was created without prior knowledge of the original. If such a simple circuit was sufficient, the original manufacturers would have used it when the product was designed over 10 years ago. There are many driver ICs now available at little cost, so it seems sensible to use one, assuming a suitable one can be found.
 
The original schematic has a lot of components, merely for the pretense of protection. e.g. the transmitter part has a active current limiter in the pull-down part, and rise-time current boost for the pull-up. The receiver is nothing special, but again, has been designed with protection.

What features from the original are you wanting to keep?

Which line driver IC are you referring to. One I can think of that is capable of handling 12V is an RS232 interface. e.g. MAX232 can drive the bus, and provide the rise-time assist but it's expensive, large and requires a bunch of support components (esp. when compared to the above circuit).
 
Isnt there a max 233 that doesnt need any extnal caps apart from 1 decoupler?
 
I know this is an old thread, but I wanted to put forth this improvement on Thomas Knauf's already excellent SeaTalk circuit for others to find. Thomas Knauf's SeaTalk circuit will begin to have problems with systems that have long runs of wire as stated above. The long wires introduce parasitic capacitance into the system and it will have trouble 'snapping' up to a 12V (logic 0) signal. What you will see on an oscilloscope is the digital signal being damped and slowly rising back to 12V causing SeaTalk errors that will appear as though another talker is interrupting. It has no problem going to 0V (logic 1) as the NPN transistor pulls it down hard and quickly, but going back to 12V properly requires an additional PNP transistor. Note you can use 2n3904/2n3906 transistors or BC237/BC212.

So, this is a very simple addition to the original Thomas Knauf circuit. You can see the added PNP transistor in the upper left with 3 additional resistors and a 2n2 (2.2 nF) capacitor so that this transistor only drives the circuit high on the leading edge for a few microseconds and then has no further effect. It is called a rise time booster and is a simplified version of what Raymarine used. I hope people find this circuit useful. It has been tested on many systems in the AutoBuddy remote control sold by i3DGear.com

Original Thomas Knauf SeaTalk Bi directional interface:


Improved i3DGear SeaTalk Bi directional interface with Rise Time Booster:

(for those unfamiliar with this nomenclature, 2k2 means 2.2k)

Below are oscilloscope outputs showing an good SeaTalk signal, a SeaTalk signal damped by a 200' long shielded cables capacitance, and the same signal with the rise time booster circuit above.

Original ST signal:


Damped with very long cable 200':


Signal rise time boost circuit:


The slight chatter is well within Raymarine's ST signal tolerance. For a simple addition of one additional transistor and a few other cheap components this serves very well.

Cheers,
Rick Wallace, P.Eng.
 
Last edited:
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…