本文主要是介绍EC20、RM500Q在TX2上或其他设备上模块识别不到,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先本人使用的是minipcie接口,RM500Q也是转成minipcie接口接入设备的,然后运行命令lsusb,看不到这些模块。曾尝试在两个设备上移植过EC20和RM500都遇到同样的问题,现已经都解决,如果你也遇到同样的问题,可以根据我讲解的原理,进行代码的修改。
不能识别的主要原因
主要是模块上的22号PERST#引脚需要进行复位,一开始是高电平,然后给与大于150ms的低电平,然后再置高。可以根据实际设备的原理图,对该引脚进行操作。
TX2上移植EC20、RM500Q
需要先在TX2上下载tx2源码,然后在tx2源码上修改,具体怎么下载修改,网上的教程资料很多,我具体讲一下关于模块识别的问题。
minipcie上的PERST#(PIN 22 of the MINIPCIE socket)对应TX2上的是 PEX1_RST#(pin E50 of the TX2)所以该这个引脚就好了。
在下载完TX2源码之后需要在下载的内核目录下找到/drivers/pci/host/pci-tegra.c文件
大概在2510行,找到下面的代码,前面写了加号的代表需要添加的代码。tegra_pcie_update_lane_width(port);tegra_pcie_update_pads2plle(port);continue;}
+ port->status = 0;
+ mdelay(300);
+ pcie->num_ports++;
+ port->status = 1;port->ep_status = 0;dev_info(pcie->dev, "link %u down, ignoring\n", port->index);
然后修改完成后编译,烧写。下面附上我成功的截图
ID 2C7C:0800就是RM500Q。
这篇关于EC20、RM500Q在TX2上或其他设备上模块识别不到的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!