This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SPI Interface for MSP430 and XTR108

Other Parts Discussed in Thread: XTR108, CC430F6137, TXB0104, TXB0302

What is the best way to interface the MSP430 to the XTR108 via SPI? 

Additionally a couple of questions: 

1.  Is the CC430F6137 CMOS or TTL?
2. Is the XTR108 CMOS or TTL?

3. Is it possible to go straight from the CC430 to the XTR108 in regards to the SPI Comm needed to calibrate?

4. If not what is the best way to do so?
  • Hi Jacob,

    The XTR108 SPI circuitry is CMOS, where the logic levels are as follows:

    • VIL (max) = 0.8V
    • VIH (min) = 3.5V
    • VOL (max) = 0.4V
    • VOH (min) = Vs - 1

    The MSP430 is a 3.6V part, and I'm not sure of the logic family but the voltage at any pin cannot exceed 4.1V. Therefore, the XTR108's logic high output voltage would exceed this limit and cause damage to the MSP430. Some sort of level translation would be required - I apologize that I do not have expertise in this area but the folks in the Industrial Interface forum will be able to recommend a part for you.

    Best regards,

    Ian Williams
    Linear Applications Engineer
    High Performance Linear and Sensing Products 

  • Ian Williams said:
    but the voltage at any pin cannot exceed 4.1V

    Actually, it cannot exceed VCC+0.2V.
    However, the solution is simple. All port pins have clamp diodes to VCC/GND which can sink up to 2mA rated current. On 2mA, a 1k series resistor will drop the input voltage by 2V. In the opposite direction, since (almost) no current flows, teh MSP output voltage doesn't drop noticeably.

    However, if the XTR really requires a minimum input voltage of 3.5V, you'll either have to powe rthe MSP with 3.6V or add a pullup resistor on the XTR side of the series resistor. For both, incoming and outgoing signals.

    It's not exactly low-power, but requires least effort, cost and space.
    If low power is more important, then a real level shifter is required. However, auto-sensing bi-direcitonal level shifters are a rare breed. However, if the signal direction is fixed, then there are quite a number of candidates for this job.

  • Jens-Michael,

    Thank you for your input, and for clarifying that the MSP430 input voltage cannot exceed VCC + 0.2V. It seems like your suggestion for a series resistance would work as long as the MSP430 was powered by a 3.6V supply.

    I did search around yesterday for some bi-directional level shifters and was not able to find any. I suppose a unidirectional part could work if communication was happening only from the MSP430 to the XTR108 - while this would prevent you from reading the XTR108 registers it would still be possible to write new values during a calibration.

    Best regards,

    Ian Williams

  • Ian Williams said:
    It seems like your suggestion for a series resistance would work as long as the MSP430 was powered by a 3.6V supply.

    Even with less.

    If the output voltage is 5V and the MSP VCC is 3V, then a 1k would have a 2V voltage drop on 2mA. Fits well. If you use a larger one (e.g. 10k), even a 5V->2V would only have 300µA current through the clamp diodes.

    However, one important thing: the clamp current is sourced into VCC. So if the total circuitry supplied by VCC doesn't consume tha tmuch current, VCC will start to rise (most voltage regulators can only 'fill' their output voltage if it i too low, but they cannot 'drain' it if it is too high).
    You can even power an MSP through its port pins while the pwer supply is off. So it's sort of a dance on the volcano: you shouldn't tilt to the wrong side :)

    Ian Williams said:
    I did search around yesterday for some bi-directional level shifters and was not able to find any.

    As I said, they are  arare breed.
    Try these: TXB0104 or TXB0302.

    Ian Williams said:
    I suppose a unidirectional part could work if communication was happening only from the MSP430 to the XTR108

    For I2C, it wouldn't work at all, since even for one direction, there's the required ACK answer that goes into opposite direciton on thesame line. But then, I2C requires external pullups anyway :)

    For SPI or UART, there is one dedicated line for each direction and it never changes. So an unidirectional one will do on each signal. Unless you have a multimaster system and the peers can switch the role. Then you will need bidirectional ones. (Or the series + pullup resistor combo.)

  • Gentlemen thank you very much for the all info.  Since I am not an Electrical Engineer by trade please allow me a few days to process all this information.  After that I will approach yall once again if I have any questions.  

**Attention** This is a public forum