拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ARM单片机外设

ARM单片机外设
SPI接口
SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
SPI外设初始化
/* Select PCLK0 as the clock source of SPI0 配置SPI时钟*/ CLK_SetModuleClock(SPI0_MODULE, CLK_CLKSEL2_SPI0SEL_PCLK1, MODULE_NoMsk); /* Enable SPI0 peripheral clock 使能SPI时钟*/ CLK_EnableModuleClock(SPI0_MODULE); /* Setup SPI0 multi-function pins 使能SPI功能管脚*/ SYS->GPD_MFPL &= ~(SYS_GPD_MFPL_PD0MFP_Msk | SYS_GPD_MFPL_PD1MFP_Msk | SYS_GPD_MFPL_PD2MFP_Msk | SYS_GPD_MFPL_PD3MFP_Msk); SYS->GPD_MFPL = SYS_GPD_MFPL_PD0MFP_SPI0_MOSI | SYS_GPD_MFPL_PD1MFP_SPI0_MISO | SYS_GPD_MFPL_PD2MFP_SPI0_CLK | SYS_GPD_MFPL_PD3MFP_SPI0_SS ; /* Enable SPI0 clock pin (PD2) schmitt trigger 使能SPI时钟管脚施密特触发*/ PD->SMTEN |= GPIO_SMTEN_SMTEN2_Msk; /* Configure SPI_FLASH_PORT as a master, MSB first, 8-bit transaction, SPI Mode-0 timing, clock is 20MHz 配置SPI工作模式*/ SPI_Open(SPI_FLASH_PORT, SPI_MASTER, SPI_MODE_0, 8, 200000);
1. NOR FLASH--W25Q128 (128M-bit/ 16M-byte)
1Block=64KB(16*Sector) 1Sector=4kB(16*Page) 1Page=256Byte(xx00h~xxFFh)
w25q1616Mbit/ 2M-byte32*1Block

w25q32

32Mbit/ 4M-byte64*1Block
w25q6464Mbit/ 8M-byte128*1Block
w25w128128Mbit/ 16M-byte256*1Block
  • (标准SPI)Standard SPI: CLK, /CS, DI, DO;支持 SPI 总线操作模式 0 (0,0) 和 3 (1,1)
  • (双SPI)Dual SPI: CLK, /CS, IO0, IO1
  • (四SPI)Quad SPI: CLK, /CS, IO0, IO1, IO2, IO3
  • 标准SPI:DI在CLK上升沿写入,DIO在CLK下降沿读取;
  • 双SPI和四SPI:使用双向IO引脚在CLK上升沿写入,在CLK下降沿读取;
  • 四SPI:需要在状态寄存器2中设置QE位,当QE=1时,/WP脚变为IO2,/HOLD脚变为IO3.
  • 此外,该设备支持 JEDEC 标准的制造商和设备 ID 以及 SFDP,同时拥有 64 位唯一序列号和三个 256 字节的安全寄存器。

  • /CS为高电平时,DO(IOx)引脚为高阻状态。如有需要,可在/CS引脚上使用上拉电阻。
  • /WP写保护可用户防止写入状态寄存器,结合其他位使用,可为实现为硬件保护。
  • /HOLD引脚允许设备被选中时暂停操作,/HOLD功能在多个设备共享同一SPI信号时非常有用。
  • /RESET引脚被拉低至少约1us。
SPI时序

如数据手册,设备DI上升沿,设备DO下降沿;支持SPI模式0和模式3.

如数据手册,时钟频率最高为50Mhz,对应周期0.02us,高电平低电平间隔约0.01us.

返回列表