Forum Discussion
Altera_Forum
Honored Contributor
14 years agoHi there, after a lot of searching i have found the code you requested :)
The data is sent 1 byte at a time, i have called it data, good luck with it ;) int SPI (int data) { /* * Discard any stale data present in the RXDATA register, in case * previous communication was interrupted and stale data was left * behind. */ IORD_ALTERA_AVALON_SPI_RXDATA(SPI_0_NVRAM_BASE); // initiate SS_N IOWR_ALTERA_AVALON_SPI_CONTROL(SPI_0_NVRAM_BASE, ALTERA_AVALON_SPI_CONTROL_SSO_MSK); // transmit a byte, set write enable latch while (!(IORD_ALTERA_AVALON_SPI_STATUS(SPI_0_NVRAM_BASE) & ALTERA_AVALON_SPI_STATUS_TRDY_MSK)); IOWR_ALTERA_AVALON_SPI_TXDATA(SPI_0_NVRAM_BASE, data); // wait for all bytes to be send while(!(IORD_ALTERA_AVALON_SPI_STATUS(SPI_0_NVRAM_BASE) & ALTERA_AVALON_SPI_STATUS_TMT_MSK)); // release SS_N IOWR_ALTERA_AVALON_SPI_CONTROL(SPI_0_NVRAM_BASE, ~ALTERA_AVALON_SPI_CONTROL_SSO_MSK); }