将 ESP8622 连接到 74LV165
Connect ESP8622 to 74LV165
我需要以 ESP8266 的最高速度从并串寄存器 (74LV165A) 读取字节。
我的想法是使用 SPI 接口,它提供高达 80 MHz 的 CLK。但看起来 NON-OS SDK 只提供面向 hspi 的例程,使用结构 SpiData
和 cmd 数据字段等
我是ESP8266新手,想知道有没有办法实现我的想法
- 将SPI频率设置为80MHz
- 拉下SS一段时间
- 从某个寄存器读取接收到的字节
如果这不可能或太复杂,我建议使用 2 个 GPIO(CLK 和 DATA)并在程序周期中形成我的字节 - 哪种 GPIO(数字)更适合高性能?
好的,成功了!
应该实施几个步骤。
连接74LV165 -> HSPI:
PL <- MOSI
Q -> MISO
CL <- HSPICLk
MISO 用于创建 PL 高电平,输出为 0xff
为了正确使用 HSPI,NodeMCU 驱动程序适合:https://github.com/nodemcu/nodemcu-firmware/blob/master/app/driver/spi.c。
对于全双工通信使用:
spi_mast_transaction(1, 0, 0, 0, 0, 8, 0,-8)
后一种说法不支持全双工通信。
最好使用
SET_PERI_REG_MASK(SPI_USER(1), SPI_USR_MOSI|SPI_USR_MOSI_HIGHPART);
WRITE_PERI_REG(SPI_W8(1), 0xff);
为 MOSI 数据值。这样MOSI值可以在初始化时设置一次,而MISO数据将被填充到SPI_W0..SPI_W7而不重叠MOSI.
- 就74LV165在CLK下降沿给出输出而言,HSPI应该初始化为CPOL=1。
我需要以 ESP8266 的最高速度从并串寄存器 (74LV165A) 读取字节。
我的想法是使用 SPI 接口,它提供高达 80 MHz 的 CLK。但看起来 NON-OS SDK 只提供面向 hspi 的例程,使用结构 SpiData
和 cmd 数据字段等
我是ESP8266新手,想知道有没有办法实现我的想法
- 将SPI频率设置为80MHz
- 拉下SS一段时间
- 从某个寄存器读取接收到的字节
如果这不可能或太复杂,我建议使用 2 个 GPIO(CLK 和 DATA)并在程序周期中形成我的字节 - 哪种 GPIO(数字)更适合高性能?
好的,成功了!
应该实施几个步骤。
连接74LV165 -> HSPI:
PL <- MOSI Q -> MISO CL <- HSPICLk
MISO 用于创建 PL 高电平,输出为 0xff
为了正确使用 HSPI,NodeMCU 驱动程序适合:https://github.com/nodemcu/nodemcu-firmware/blob/master/app/driver/spi.c。
对于全双工通信使用:
spi_mast_transaction(1, 0, 0, 0, 0, 8, 0,-8)
后一种说法不支持全双工通信。
最好使用
SET_PERI_REG_MASK(SPI_USER(1), SPI_USR_MOSI|SPI_USR_MOSI_HIGHPART);
WRITE_PERI_REG(SPI_W8(1), 0xff);
为 MOSI 数据值。这样MOSI值可以在初始化时设置一次,而MISO数据将被填充到SPI_W0..SPI_W7而不重叠MOSI.
- 就74LV165在CLK下降沿给出输出而言,HSPI应该初始化为CPOL=1。