Hi Drew
I can't see from your description since it is not showing the actual values but I assume that the pin MUX is OK, whereby this woudln't stop the output being send, but just not show it on the pin(s) if it were not set correctly.
Below is code from the uTasker project for K64 SPI1 as comparison.
Configuration (ports and SPI1):
_CONFIG_PERIPHERAL(D, 4, (PD_4_SPI1_PCS0 | PORT_DSE_HIGH | PORT_PS_UP_ENABLE | PORT_SRE_FAST));
_CONFIG_PERIPHERAL(D, 6, (PD_6_SPI1_SOUT | PORT_DSE_HIGH | PORT_PS_UP_ENABLE | PORT_SRE_FAST));
_CONFIG_PERIPHERAL(D, 7, (PD_7_SPI1_SIN | PORT_PS_UP_ENABLE));
_CONFIG_PERIPHERAL(D, 5, (PD_5_SPI1_SCK | PORT_DSE_HIGH | PORT_PS_UP_ENABLE | PORT_SRE_FAST))
POWER_UP(6, SIM_SCGC6_SPI1);
SPI1_MCR = (SPI_MCR_MSTR | SPI_MCR_DCONF_SPI | SPI_MCR_CLR_RXF | SPI_MCR_CLR_TXF | SPI_MCR_PCSIS_CS0 | SPI_MCR_PCSIS_CS1 | SPI_MCR_PCSIS_CS2 | SPI_MCR_PCSIS_CS3 | SPI_MCR_PCSIS_CS4 | SPI_MCR_PCSIS_CS5);\
SPI1_CTAR0 = (SPI_CTAR_ASC_10 | SPI_CTAR_PBR_3 | SPI_CTAR_DBR | SPI_CTAR_FMSZ_8 | SPI_CTAR_PDT_7 | SPI_CTAR_BR_4 | SPI_CTAR_CPHA | SPI_CTAR_CPOL); // for 120MHz system, 10MHz speed
To send a byte to the SPI it uses the macro:
#define WRITE_SPI(byte) SPI1_PUSHR = (byte | SPI_PUSHR_CONT | SPI_PUSHR_PCS0 | SPI_PUSHR_CTAS_CTAR0) // write a single byte to the output FIFO - assert CS0 line
(when sending a final byte where the CS0 line shoudl be deasserted automatically after transmission, SPI_PUSHR_CONT can be replaced by SPI_PUSHR_EOQ)
However, before sending data it is important to ensure that the FIFO has been flushed and the status flags reset; this can be done with the macro:
#define FLUSH_SPI_FIFO_AND_FLAGS() SPI1_MCR |= SPI_MCR_CLR_RXF; SPI1_SR = (SPI_SR_EOQF | SPI_SR_TFUF | SPI_SR_TFFF | SPI_SR_RFOF | SPI_SR_RFDF)
If that doesn't help there is a binary that runs on the FRDM-K64F which controls a Nordic Semiconductor 2.4GHz wireless transceiver nRF24L01+ on SPI1 (connected to the RF socket) at
http://www.utasker.com/kinetis/FRDM-K64F.html
that will regularly try to connunicate with the device.
You could connect the debugger and check the SPI1 register settings.
Regards
Mark
Kinetis: µTasker Kinetis support
K64: µTasker Kinetis FRDM-K64F support / µTasker Kinetis TWR-K64F120M support
For the complete "out-of-the-box" Kinetis experience and faster time to market