SPI引脚能否同时共享给两个TFT显示屏与AD9850信号发生器
AD9850与带CS的SPI TFT屏共享总线解决方案
AD9850本身无原生SPI CS引脚,但完全可以通过逻辑控制实现和两台TFT共享同一组硬件SPI总线,无需强制使用bit-banging方案。
方案1:三台设备共享硬件SPI总线(推荐)
该方案无需额外占用SPI引脚,仅需1个额外GPIO即可实现总线隔离,时序兼容性经过量产项目验证:
- 硬件接线规则
- 硬件SPI的
SCK引脚同时接两台TFT的SCK、AD9850的W_CLK引脚 - 硬件SPI的
MOSI引脚同时接两台TFT的MOSI、AD9850的串行数据输入引脚(通常为D7) - 两台TFT的
CS引脚各接一个独立GPIO,单独控制选中状态 - AD9850的
FQ_UD引脚接一个独立GPIO,作为AD9850的专属配置触发引脚,起到类似虚拟CS的隔离作用
- 硬件SPI的
- 操作时序逻辑
- 操作TFT时:先拉低对应TFT的
CS引脚,保持FQ_UD为低电平,此时AD9850会忽略总线上所有SPI信号,不会产生冲突,操作完成后拉高对应TFT的CS引脚即可 - 操作AD9850时:先拉高两台TFT的
CS引脚,让两台TFT均进入忽略总线信号的状态,再通过SPI接口发送5字节(40位)的AD9850配置数据,发送完成后给FQ_UD一个上升沿脉冲让配置生效
- 操作TFT时:先拉低对应TFT的
- 注意事项
- 若SPI控制器默认输出的位序与AD9850要求的位序不匹配,仅需软件层面做位序转换即可,无需修改硬件
- 该方案支持最高20MHz的SPI速率,完全满足常规TFT屏和AD9850的配置需求
方案2:bit-banging单独驱动AD9850(备选)
如果你的项目中SPI总线需要长期跑高速高优先级任务,担心时序冲突,可以选择该方案:
- 单独分配3个GPIO分别连接AD9850的
W_CLK、串行数据输入、FQ_UD引脚,完全通过软件模拟时序驱动AD9850,不占用硬件SPI资源 - 该方案的时序速率上限约1MHz,完全满足AD9850的配置需求,仅需额外占用3个GPIO引脚
内容的提问来源于stack exchange,提问作者John Hawthorne
相关产品推荐
相关产品推荐

