shishu 发表于 2023-3-3 02:18:58

ESP32的spi引脚定义问题

本帖最后由 shishu 于 2023-3-3 02:21 编辑

不好意思又来麻烦大家了。之前发帖关于LVGL在codeblocks上仿真关于图形子部件如何用上下左右键导航的问题(https://www.amobbs.com/thread-5776481-1-1.html).
老是PC仿真不是办法,就想起来要到板子上实际把界面跑起来了。但是一开始就备受打击了。
之前做过一版硬件用的ESP32 arduino的TFT_eSPI加LVGL7的库实现了LCD的显示功能的。如下是我第一版的原理图

如上图所示板子上有一个ESP32-WROOM-32D的模块,当时给LCD的SPI定义是
MOSI---- GPIO16   SCK ---- GPIO17CS ---- GPIO21 D/C --- GPIO19
这一版做了很久了 大概半年前做的,现在对照esp32-wroom-32d的datasheet来查看,发现这几个引脚定义不是SPI的定义

我也很纳闷,半年前是怎么查的资料做的设计,搞错了引脚。但是更纳闷的用esp32 arduino的TFT_eSPI的库和LVGL的库确实把屏幕驱动起来了。

上面是TFT_eSPI的引脚定义。确实把屏幕驱动起来了,难道TFT_eSPI是纯软件模拟的SPI时序?
现在由于有项目要求又重新拿起来了这块板子,准备用ESP32-IDF框架下做项目。装好了ESP32-IDF和vscode的插件后,打开自带example里面的lcd
的demo,发现引脚定义也对不上。

这个是ESP-IDF的lcd demo里面的HSPI的引脚定义。但是查文档定义也是完全没有对上。
#define PIN_NUM_MISO 25
#define PIN_NUM_MOSI 23
#define PIN_NUM_CLK19
#define PIN_NUM_CS   22

上面的文档中的定义,GPIO18才是CLK GPIO19是VSPIQ(MISO) ,而且定义是VSPI的引脚定义不是HSPI的。这个引脚定义到底是怎么样的?原本兴冲冲的
准备把LCD显示搞定,再移植LVGL8.2的。没想到一开始定义就搞糊涂了。
望万能的论坛里给位大神和熟悉esp32的大哥大姐们解解惑。谢谢了




Himem 发表于 2023-3-3 02:20:24

本帖最后由 Himem 于 2023-3-3 02:24 编辑

esp32记得大部分外设引脚可以交换至任意脚
当然特殊功能不算,仅输入的GPIO也仅能做输入

gzhuli 发表于 2023-3-3 02:32:33

ESP32有IO MUX,外设可以指定任意引脚,只是频率有上限,所以有些高速外设例如SPI会有特定的直通引脚以便发挥最高性能,只要不超过频率上限可以不走直通引脚的。

d__xin 发表于 2023-3-3 09:10:41

嗯,除了几个特殊的引脚不能用以外其他的都能用,刚开始玩这个也是困惑得很。

后来发现一般低速的片子怎么定义都跑得很欢。高速的还是用芯片文档上那几个脚稳一些

shishu 发表于 2023-3-3 09:51:03

了解了。心头疑惑接触了。终于知道之前的那一版为什么会那么定义了搞了半天spi引脚可以随便定义只是最高速度会受限制 。感谢各位

luohui5003 发表于 2023-3-3 10:07:54

不确定的就直接拿示波器量下具体的管脚信号

justdomyself 发表于 2023-3-4 01:23:47

受教了。………

哈希列表 发表于 2023-3-4 08:16:50

esp32引脚可以交换,SPI引脚都可以自定,就是最高速度从80M降低到40M,单一般情况下都够用。
页: [1]
查看完整版本: ESP32的spi引脚定义问题