Interface Help / Suggestions / Advice - Page 1
Forum section: electronics / beginners

author: Docara
author_rank: Regular Contributor
timestamp: February 24, 2021, 05:26:06 pm
content: HiI am building a remote Capsense touch panel that will transmit very basic (5 Bytes) data to a 'Master' MCU that control switched devices that bring the system out out of sleep. The system needs to operate in a 12V automotive environment but on battery power for extended periods of time 6+ months.Now, my initial thought was to use an Serial comms over RS485 to the MCU and as it will also need to be woken up this could be achieved with an RX interrupt. As I am a very much beginner with programming, my choices are based mainly on what I think I can implement and program. This topology, I thought was straight forward and simple enough to pull off with my limited abilities.However, researching which driver to use I came across info around fail-safe termination and the possibility of the RX line falling into an unknown state thus triggering false interrupts when the bus is not used. That and the potential constant current current draw to maintain a high on USART Rx pin but also stay with in the levels of adequate RS485 termination voltages looked to be a PITA.I looked around for other options. Which brings me here.Is the above the 'best' most reliable and power efficient way to achieve what I want?Would 'normal' RS485 termination be a better solution but implement an additional 485 channel solely for waking up the remote MCU via PinX INTs instead of a serial Rx ISR, be preferable?Would a basic CAN driver with sleep and a wake-up pin be a better option at the MCU end? (will a CAN driver run with non CAN data and would this be low power as the driver can also go to sleep when not used - I like this option but have never used any form of CAN. I assume without the controller it's a normal differential line driverAny other options I could consider (RF no chance - metal work)Thanks

author: HB9EVI
author_rank: Frequent Contributor
timestamp: February 24, 2021, 07:10:47 pm
content: no experience with CAN here so far; but RS485 always turned out to be a good solution for my projects; recently somebody here mentioned an application note by AD about RS485; you can very simply make it failsafe by 2 bias resistors of 1440 ohms to gnd and vcc (for a 5V environment) and a center resistor for line impedance matching, so 100 to 120 ohms

author: Docara
author_rank: Regular Contributor
timestamp: February 25, 2021, 12:03:40 pm
content: Hi HB9EVIBefore I posted I found a lot of REALLY good info from TI about this which, as mentioned brought me here.They stated 375R (or was it 750R) for the pullup and pulldown resisters to maintain a minimum 200mV for fault protection and like you say a line matching termination resistor.As stated, my secondary thought was to use a dedicated pin/line and a second differential channel tied high with a high value resistor to wake the 'Master' MCU when pulled low via a pin change (low level) interrupt - which would eliminate the need to monitor USART for communication to fire an Rx interrupt to it up wake up. I could still use a fail safe termination for just communication without worry of long duration current draw monitoring line.

author: Ian.M
author_rank: Super Contributor
timestamp: February 25, 2021, 12:44:07 pm
content: Look atLIN bus, or at least at LIN transceivers as you probably don't need the full protocol for a simple point to point link. More details. As its basically a shared open drain bus, with pullups to Vbatt, its possible for a transceiver with remote wake-up capability to have a sleep current under 10uA. The protocol is compatible with normal UART 8N1 data, provided the UART has a buffer so can output bytes without gaps between them. Monitoring the transceiver RX data pin to confirm it matches your transmitted data is advisable to detect bus errors, caused by hardware faults or rogue nodes that transmit without being signalled to by the master.

author: Docara
author_rank: Regular Contributor
timestamp: February 26, 2021, 06:03:38 pm
content: Hello Ian.m,I haven't looked at your links yet (I will after I post this) I was contemplating these before my original post.ATA6560https://www.microchip.com/wwwproducts/en/ATA6560#:~:text=The%20ATA6560%20is%20a%20high,(up%20to%205Mbit%2Fs)NCV7357https://www.onsemi.com/products/connectivity/wired-transceivers-modems/ncv7357NCV7341https://www.onsemi.com/pub/Collateral/NCV7341-D.PDFThe main 'headline' points that grabbedmyattention were Auto Sleep, wake-up, bus isolation(unpowered), fault tolerance, listening mode together with the possibility of bi-direction data should I need it.A question - putting your reply slightly on the back burner for the moment.I know I need an noise cancelling, differential bus which can take 9 daisy chained devices covering 30-50m - data derived from a UART. Now my goto physical layer would be RS485 right? So, other than the basic things to consider like voltage levels and termination methods, are differential bus drivers pretty much the same thing? Can I make the sweeping statement that because CAN, PRObus or Modbus is just the protocol that sits on a differential signal (cable) that any driver/transceiver could be used on the twisted pair? Would say a Microchip ATA6560 High-speed CAN FD Transceiver (say) does not NEED the CAN controller to work - a driver is just that a driver.I will follow your links now - I didn't consider LIN as it was one way and I was keeping my options open, but it might bring things to the table which are beneficial.Will report backThanksEdit:- Added an omitted chip (NCV7341)

author: Ian.M
author_rank: Super Contributor
timestamp: February 26, 2021, 06:55:41 pm
content: No. LIN is bidirectional (half duplex).