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.
As I understand it, the USxSTE pin functions as a "chip select" for the slave device in a SPI connection (although not in the traditional sense). Based on the SLAU144I, the slave output should be muted if USxSTE is set to slave-inactive.
16.3.4.1 Four-Pin SPI Slave Mode
In 4-pin slave mode, UCxSTE is used by the slave to enable the transmit and receive operations and is
provided by the SPI master. When UCxSTE is in the slave-active state, the slave operates normally.
When UCxSTE is in the slave- inactive state:
• Any receive operation in progress on UCxSIMO is halted
• UCxSOMI is set to the input direction
• The shift operation is halted until the UCxSTE line transitions into the slave transmit active state.
However, this does not appear to be happening in my Launchpad testing.
I have set UCMODE to UCMODE_2 and mode to SPI slave.
The SPI output works properly when I use STE=low as an chip select (CSN in the snapshot below):
However, since I have other SPI devices on this bus, I want the MSP430 to be disabled when I set CSN (chip select negative) high (inactive). But this does not seem to work properly. In the snapshot below I hold CSN high, but the spi slave (MSP430) continues to send data to the bus.
AM I MISUNDERSTANDING THE FUNCTIONALITY OF THE USxSTE PINS? Is there some configuration parameter I am missing? Any suggestions would be appreciated.
Mystery solved.
I was relying on Grace to properly set the P1SEL & P1SEL2 pins when I selected 4-wire SPI slave mode. However, apparently you must manually select these pins in the I/O port configuration section of Grace. This is a bit confusing.
All is now working properly after properly setting the PxSEL pins.
Yes. STE is no chip select. It is a 'shut up' control for the MSP in slave mode (or to turn the USCI in slave mode if it is currently master in a multi-master environment.MikeH said:AM I MISUNDERSTANDING THE FUNCTIONALITY OF THE USxSTE PINS?
It does not init the high-level protocol, synchronize to a byte-border, clear the shift register, trigger an interrupt or anything else. You need to check the input state in your software and reset/init the USCI manually.
This in addition to the observation that apparently GRACE doesn't switch the port pin to STE module usage, despite of UCMODE_2.
STE is no chip select
Turns out, it performs exactly the same functionality as a traditional "chip select" in traditional SPI applications.
Why the TI MSP430 documentation talks about "multiple master" scenarios is beyond me. The only traditional SPI applications that I am aware of consist of a single master and multiple slaves. In fact, other TI products (I am most familiar with the C55xx) document "chip select" or "slave select" in the SPI interface. It could be that TI is trying to avoid using Motorola terminology (MISO, MOSI, CSLK, SS#) as many other chip manufacturers do, since Motorola invented the SPI interface definition.
Sorry, I cannot locate the 'traditional chip select funcitonality' anywhere in the article.MikeH said:Turns out, it performs exactly the same functionality as a traditional "chip select" in traditional SPI applications.
However, the typical chip select goes beyond the funcitonality of STE: it resets the state machine, synchronizes to a byte border (on devices with byte-wise transfer), resets the high-level protocol, or on de-assert the received bitstream is interpreted/latched and executed (e.g. "the last n bits count").
STE just does one thing: it makes the slave deaf and silent. When it is asserted again, the slave will continue where it was, even mid-byte. The application won't notice at all (no interrupt. The communication simply doesn't continue as long as STE is de-asserted)
Because in 4-wire master mode, STE will turn the master into slave when another master (the primary master) pulls it.MikeH said:Why the TI MSP430 documentation talks about "multiple master" scenarios is beyond me.
Did they? AFAIK, they just have given an existing nameless class of communications protocols a name. But SPI itself has existed before in probably not less variations as it exists now under the name SPI.MikeH said:since Motorola invented the SPI interface definition
**Attention** This is a public forum