Kevin Huffman

Max3100 for SPI to RS485 communication - Character Delay Problem

Discussion created by Kevin Huffman on Oct 23, 2009
Latest reply on Dec 3, 2009 by Kevin Huffman

I am trying to communicate between a M68HC9S12C128 & RS485 based mass flow controller.

I am using a combination Max3100 & Max3160 to go from my SPI bus to RS485.  I am using the Max3100 SPI to TTL serial converter then the Max3160 TTL to RS485 converter.  The SPI is set up for interrupt driven transmit.  The Max3100 is set up to interrupt driven receive (RS485 back to embedded - 3100 toggles the IRQ interrupt on the 9S12). 

 

When characters are transmitted, there is a significant time delay between transmission of characters (enough that the mass flow controller doesn't see it as a continuous stream).  The Max3100 requires a 16 bit SPI transfer, so I toggle the CS line in my SPI transmit service interrupt (the automatic chip select on the 9S12 won't hold the CS line low through a 16 bit transfer).  I also put a small delay between 16 bit packet transmissions so the Max3100 recognizes the end of a packet transfer (Max doesn't recognize data packet otherwise). 

 

Any ideas on how to get around the character delay issue?  I am open to alternate parts if the Max3100 / 3160 is not the best chip set.  My SCI bus is used for communication with another device and I really don't want to run both devices off of it if possible. 

Thanks in advance.

Outcomes