详细描述,请参考:https://blog.csdn.net/weichushun/articl ... /123128016
如何增加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 activated 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的建立时间?
如何增加ESP32-S2 以太网SPI接口的CS建立时间?
-
- Posts: 10
- Joined: Sat Jun 20, 2020 5:16 am
如何增加ESP32-S2 以太网SPI接口的CS建立时间?
- Attachments
-
- 如何增加ESP32-S2 以太网SPI接口的CS建立时间?.docx
- (241.31 KiB) Downloaded 489 times
Re: 如何增加ESP32-S2 以太网SPI接口的CS建立时间?
Hi,
重启原因是一个assert么?cs_ena_pretrans 在头文件中已经说明只能在半双工下面工作。
另外, SPI 使用 20M 我认为基本已经满足 DM9051 的需求,这个 SPI 以太网卡是 10M 的
重启原因是一个assert么?cs_ena_pretrans 在头文件中已经说明只能在半双工下面工作。
另外, SPI 使用 20M 我认为基本已经满足 DM9051 的需求,这个 SPI 以太网卡是 10M 的
-
- Posts: 10
- Joined: Sat Jun 20, 2020 5:16 am
Re: 如何增加ESP32-S2 以太网SPI接口的CS建立时间?
DM9051不是支持10M的。
Support 10BASE-T and 100BASE-TX and 100M Fiber interface。
用STM32 SPI是可以50MHz的。是ESP32-S2的SPI接口有限制吗?
我看ESP32-S2的内部SPI接口接FLASH和PSRAM,都是工作在80MHz。
Support 10BASE-T and 100BASE-TX and 100M Fiber interface。
用STM32 SPI是可以50MHz的。是ESP32-S2的SPI接口有限制吗?
我看ESP32-S2的内部SPI接口接FLASH和PSRAM,都是工作在80MHz。
-
- Posts: 10
- Joined: Sat Jun 20, 2020 5:16 am
Re: 如何增加ESP32-S2 以太网SPI接口的CS建立时间?
访问时序上看DM9051也是半双工,前面有1字节CMD,后面才是读写数据。
Who is online
Users browsing this forum: No registered users and 30 guests