我猜测实际的驱动器直到电压电平达到三态电平才开始(例如,该器件为~2.2V).之后,一切都按预期工作.
我试图找到任何配置文件来设置引导时引脚的默认IO级别(认为这可能由引导加载程序设置)无济于事.
此外,我已经尝试应用启动脚本“足够早”运行以设置DATA-高,但据我所知,有问题的设备没有提供任何接口来控制这些引脚作为常规GPIO.
任何帮助,提示或见解将不胜感激!
编辑:我不是一个经验丰富的linux开发人员,所以请突出显示我是否遗漏了任何重要细节.
一些规格:
> ARM920T rev 0(v41)cpu
> linux 2.6的专有发行版
>使用BusyBox
> Atmel USART驱动程序
从启动日志中提取:
linux版本2.6.28.10(root @)(gcc版本4.1.2)#94 PREEMPT Tue Oct 29 10:22:19 CET 2013
cpu:ARM920T [41129200]版本0(ARMv4T),cr = c0003177
/ …
… /
启用端口/ dev / ttyS3的RS485模式
/ …
……(我猜这里经过了大约30秒)
… /
atmel_usart.3:MMIO上的ttyS3 0xfffcc000(irq = 9)是一个ATMEL_SERIAL
atmel_serial.3:将RS485 RTS引脚放下
/ …
…
… /
完整启动日志:https://drive.google.com/file/d/0B2XYl1mNCa8jNUZ5V0Nic1hkU0U/view
类似的问题:
这里可能讨论类似的问题:UART initialisation: Prevent UART to pull RTS high
但我不确定如何继续提出建议的解决方案.
您还可以尝试在linux源代码中找到驱动程序,以查看它是如何启动的.
总结以上是内存溢出为你收集整理的embedded-linux – 嵌入式Linux设备在启动时阻塞RS485总线全部内容,希望文章能够帮你解决embedded-linux – 嵌入式Linux设备在启动时阻塞RS485总线所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)