is it possible to set HSPI i full duplex mode? I'd like to control SD card but I cannot set SPI to work in full duplex. I try to do it in that way:
uint32 spi_rxtx8(uint8 spi_no, uint8 data){
if(spi_no > 1) return 0; //Check for a valid SPI
while(spi_busy(spi_no)); //wait for SPI to be ready
CLEAR_PERI_REG_MASK(SPI_USER(spi_no), SPI_USR_MOSI|SPI_USR_MISO|SPI_USR_COMMAND|SPI_USR_ADDR|SPI_USR_DUMMY);
WRITE_PERI_REG(SPI_USER1(spi_no), ( ((8-1)&SPI_USR_MOSI_BITLEN)<<SPI_USR_MOSI_BITLEN_S ));
// ((8-1)&SPI_USR_MISO_BITLEN)<<SPI_USR_MISO_BITLEN_S*/));
//SET_PERI_REG_MASK(SPI_USER(spi_no), SPI_USR_MISO | SPI_USR_MISO_HIGHPART);
SET_PERI_REG_MASK(SPI_USER(spi_no), SPI_USR_MOSI);
WRITE_PERI_REG(SPI_W0(spi_no), (uint32)(data));
SET_PERI_REG_MASK(SPI_CMD(spi_no), SPI_USR);
while(spi_busy(spi_no)); //wait for SPI transaction to complete
uint32 dat = READ_PERI_REG(SPI_W8(spi_no));
return (uint32)(dat);
}
But unfortunatelly nothing is being received.
Does anybody deal with that problem? Or have a solution that may share with me?