I am also trying to get an application functioning that has multiple SPI devices. I am using the MQX 3.5 SPI drivers on an m52259evb and I am seeing a problem in the _mcf5xxx_qspi_polled_tx_rx function. The initiate transmission works as expected. All queued bytes are transferred with the correct chip select active low. Setting a breakpoint on the write to QWR confirms that all chip selects are inactive at the end of the transfer. Stepping through the write to QWR shows that ALL chip selects are changed to the low state instead of only the selected chip select.
/* Initiate transmission */
qspi_ptr->QDLYR |= MCF5XXX_QSPI_QDLYR_SPE;
/* CS inactive low for tranfers longer than 16 words */
qspi_ptr->QWR &= (~ MCF5XXX_QSPI_QWR_CSIV);
How do I get ONLY the chip select for this device to go active low at the beginning of the transmission and stay low when the transmission is complete without making the chip selects GPIO?
Petr, you have my email address and phone number if you want to discuss this in detail.