Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

*Schematic Simplification: Seatalk To PIC

Status
Not open for further replies.

nigelmercier

Member level 2
Joined
Nov 3, 2009
Messages
47
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Location
United Kingdom
Activity points
1,622
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

I want to simplify the right half of this circuit. I know it can be done with fewer components, as this Simple Circuit shows.

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.
 

It's a nice circuit. And glad you posted it, it serves as a nice example of how to drive a line.
The TR1a is used to pull up the line quicker (so that you can run at high speed) by shorting out R1.
The T2b is just an inverter, and allows T2a to pull the line low, and R8 acts like a current sensor, so that if the line was accidentally shorted to +12V, then it prevents T2b from pulling the line too low which would burn out T2a.
The input circuit is simpler, because it is a high impedance input. TR3b is normally turned on, which means TR3a is off (i.e. inverted), which means the RX pin is high too. It is protected from overvoltage on the line by the D2a. TR3b turns off when the line goes low, and that turns on TR3a, which pulls the RX pin low.
I'd suggest, that unless there is an IC that already does all this, to keep the circuit as-is; not really much opportunity to simplify it without reducing functionality (like lower speed or no protection).
Mind you, if you're running at just 4800bps, then you could simplify slightly by removing the pull-up accelerator, but for the cost of a single transistor and a few resistors and the capacitor, it is maybe better leaving it in.
 
I'd suggest, that unless there is an IC that already does all this...
Thank you for explaining what is going on, it helped a great deal. The problem with keeping the circuit as-is is that it has more components than my main circuit; this was meant to be an add-on function!

Your point about an existing IC has got me thinking: perhaps I could use a CAN bus driver, or something similar?
 

I'm not really familiar with CAN (I know it's a popular bus though).
You might also want to investigate K-bus, which is an interface used on BMWs. There is MC33290 which may work for you (I've not tried it).
Or, a Melexis TH3122.
K-bus uses a +12V line that gets pulled low, so it sounds similar to this Seatalk method, but I'm just guessing.
However, maybe the discrete transistor version is cheaper though (SMD transistors are very low cost) - but takes more room of course.
 

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

I want to simplify the right half of this circuit. I know it can be done with fewer components, as this Simple Circuit shows. ...

OK, I've come up with this circuit. I'm not very good with discrete components, so I would be grateful for any advice.

To recap, the SeaTalk bus is normally held at 12V (through about 15k), the bus is pulled low when sending the data stream, so needs to be inverted both ways. I want to interface to this via the TX and RX signals to a PIC running on a 3.3V supply.
 

I think it's fine for 4800bps, but worth increasing R9 to something much higher (change it to 100k).
 

I think so, I think it should work very well.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top