Part Number: PROCESSOR-SDK-AM335X
Tool/software: TI-RTOS
1. SINGLE mode
The initialization code is attached:
MX25L_Handle EEPROM_open(uint32_t bps)
{
SPI_Params spiParams; /* SPI params structure */
MX25L_Handle pHandle; /* EEPROM handle */
SPI_HWAttrs spi_cfg;
/* Get the default SPI init configurations */
SPI_socGetInitCfg(MCSPI_INSTANCE - 1, &spi_cfg);
spi_cfg.chNum = 0;
spi_cfg.enableIntr = false;
spi_cfg.rxTrigLvl = 1;
spi_cfg.txTrigLvl = 1;
spi_cfg.chMode = MCSPI_SINGLE_CH;
spi_cfg.rxDmaEventNumber = CSL_EDMA3_CHA0_MCSPI1_RX;
spi_cfg.txDmaEventNumber = CSL_EDMA3_CHA0_MCSPI1_TX;
spi_cfg.edmaHandle = MCSPIApp_edmaInit();
spi_cfg.dmaMode = true;
/* Set the SPI init configurations */
SPI_socSetInitCfg(MCSPI_INSTANCE - 1, &spi_cfg);
/* Init SPI driver */
SPI_init();
/* Default SPI configuration parameters */
SPI_Params_init(&spiParams);
spiParams.bitRate = bps;//24000U;//24000000U
/* Open QSPI driver */
pHandle = &eepromObject;
/* Open SPI driver for SF25FL */
pHandle->spiHandle = SPI_open((MCSPI_INSTANCE - 1), &spiParams);
return pHandle;
}
waveform:
Problem: Why is the negative pulse width of CS signal so large? I did‘t user delay function.
2. MULTI Mode
The initialization code is attached:
MX25L_Handle EEPROM_open(uint32_t bps)
{
SPI_Params spiParams; /* SPI params structure */
MX25L_Handle pHandle; /* EEPROM handle */
SPI_HWAttrs spi_cfg;
/* Get the default SPI init configurations */
SPI_socGetInitCfg(MCSPI_INSTANCE - 1, &spi_cfg);
spi_cfg.chNum = 0;
spi_cfg.enableIntr = false;
spi_cfg.rxTrigLvl = 1;
spi_cfg.txTrigLvl = 1;
spi_cfg.chMode = MCSPI_MULTI_CH;
spi_cfg.rxDmaEventNumber = CSL_EDMA3_CHA0_MCSPI1_RX;
spi_cfg.txDmaEventNumber = CSL_EDMA3_CHA0_MCSPI1_TX;
spi_cfg.edmaHandle = MCSPIApp_edmaInit();
spi_cfg.dmaMode = true;
/* Set the SPI init configurations */
SPI_socSetInitCfg(MCSPI_INSTANCE - 1, &spi_cfg);
/* Init SPI driver */
SPI_init();
/* Default SPI configuration parameters */
SPI_Params_init(&spiParams);
spiParams.bitRate = bps;//24000U;//24000000U
/* Open QSPI driver */
pHandle = &eepromObject;
/* Open SPI driver for SF25FL */
pHandle->spiHandle = SPI_open((MCSPI_INSTANCE - 1), &spiParams);
return pHandle;
}
waveform:
Problem: Send two bytes at a time with the SPI, But an abnormal pulse occurred in the CS signal?
MCSPI_MULTI_CH