如何增加ESP32-S2 以太网SPI接口的CS建立时间?
(1) 问题现象:
偶尔出现_[0;31mE (6321) dm9051.mac: buffer size too small, needs 16444_[。只有降低SPI频率到20MHz才ok。
(2) 问题分析:
通过示波器测量,发现DM9051的cs建立时间和保持时间很紧张,其它信号质量和时序ok,需要增加cs的建立时间和保持时间来试试。
(3) 问题解决:
根据esp32-s2_technical_reference_manual_cn.pdf,
实际测试时发现spi_device_interface_config_t结构体.cs_ena_pretrans不能大于0,否则系统反复重启。
Spi_master.h文件spi_device_interface_config_t
uint16_t cs_ena_pretrans; ///< Amount of SPI bit-cycles the cs should be ac
tivated before the transmission (0-16). This only works on half-duplex transactions.
uint8_t cs_ena_posttrans; ///< Amount of SPI bit-cycles the cs should stay active after the transmission (0-16)
cs_ena_pretrans—确实有限制,是什么原因导致的?SPI总线接口本身是没有这个限制的,我们用其它
单片机试过DM9051的SPI跑40MHz没任何问题。
请问如何使能SPI_CS_SETUP,实现增加CS的建立时间?