Other Parts Discussed in Thread: TM4C1292NCPDT
We are having a very difficult time getting Tiva SSI slave functionality working.
SSI slave Tiva: TM4C1292NCPDT
SSI master: Nordic nRF51822
Our baseline design has NO pull up/pull downs on the lines between the two devices, just traces.
Our Tiva development environment:
TI-RTOS: 2.10.01.38
CCS: v6
We are using the Freescale/Motorola format. The Slave Select (SS) line is pulled low during the entire transfer. We are using mode 0 (CPHA=0 and CPOL=0). We are configuring it to use SSI3. The Tiva pins we are using are:
PF0 - MOSI
PF1 - MISO
PF2 - SS
PF3 - SCLK
We have already confirmed that the master is sending the SPI data in the correct format. We did this on a separate Nordic development board and monitored the traffic using a SPI bus analyzer. All data looks perfect.
The issue we are seeing is that the Slave Select line from the nRF to the Tiva goes low very slowly. It will eventually get to the ground threshold, but it takes so long that the SSI tranfer is completed before the line ever gets to ground. We tried enabling the internal pull down resistor on the Slave Select pin, but that didn't work.
We then put an external 10k pull down on the line and the line was able to to start functioning properly. However, we we re-programmed the Tiva with the latest code using the settings below, the SS line quit toggling completely. It always stays low.
We believe one of two things happend:
1) Something changed in the Tiva configuration from what we had when it was working
2) We blew up the Slave Select port on the Nordic nRF or Tiva
Before we test on a second board (possibly damaging it), can you give us some feedback/suggestions?
Are these the correct Tiva register settings?
If the SSI3 alternate functionality is enabled, will the internal pullup/pulldown function or must an external resistor be added?
There shouldn't be an issue, but can you confirm that adding an external pull down resistor on the Slave Select line is OK?
Any other feedback on Tiva SSI slave functionality would be welcomed.
We have also reviewed the errata and only SSI#06 (SSI Receive FIFO Time-out Interrupt may Assert Sooner than Expected in Slave Mode) would seem to relate to our setup, but is not the issue we are currently seeing.
Below are the current Tiva SSI3 port settings.
Thanks in advance,
Alan