您好!
我尝试在 SPI Legacy (Motorola)模式下访问闪存芯片。
我的问题是、只要传输正在进行、我就需要保持 FSS 引脚的有效状态。
以下是我用于 Microchip µC 的示例:
FRAM_CS_IO = 0; //将芯片置为有效
_Send (FRAM_CMD_RDSR);//发送命令
dummy =_get();//获取状态寄存器内容
FRAM_CS_IO = 1;//使芯片无效
// TI 设置: MAP_SysCtlPeripheralEnable (SYSCTL_Periph_SSI0); MAP_GPIOPinConfigure (GPIO_PA2_SSI0CLK); MAP_GPIOPinConfigure (GPIO_PA3_SSI0FSS); MAP_GPIOPinConfigure (GPIO_PA4_SSI0XDAT0); MAP_GPIOPinConfigure (GPIO_PA5_SSI0XDAT1); MAP_GPIOPinTypeSSI (GPIO_PORta_base、(GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5)); MAP_SSIConfigSetExpClk (SSI0_BASE、g_ui32SysClock、SSI_FRF_MOTO_MODE_0、 SSI_MODE_MASTER、(g_ui32SysClock/24)、8); MAP_SSIEnable (SSI0_BASE); //从闪存请求状态寄存器: MAP_SSIDataPut (SSI0_BASE、FLASH_CMD_RDSR); II = 0; /*通过检查等待数据从 SSI0发出 * SSI 控制器的忙状态*/ while (map_SSIBusy (SSI0_BASE)); /*清空接收 FIFO,因为移入的数据无效 从器件的*响应*/ while (map_SSIDataGetNonBlocking (SSI0_BASE、&getResponseData)); /*发送轮询请求以查看从机何时响应 *准备好响应数据包*/ MAP_SSIDataPut (SSI0_BASE、sendDummyData); MAP_SSIDataGet (SSI0_BASE、&getData[II]);