您尚未登录。

楼主 # 今天 09:04:48

dancells
会员
注册时间: 2023-11-05
已发帖子: 4
积分: 4

F1C200S SPI 是不是有硬件bug呀

在 linux 中使用spi发现,传输过程中,会引发linux命令行卡顿。

查看中断计数发现,传输一次1600字节数据(1MHz),cpu 居然收到了1680多次中断。然后在驱动中,每个中断类型中加一个计数,传输前清零,传输完成后打印,发现 1600字节数据,RX_RDY 中断触发了1570多次,其余两个中断正常:TC 1次, TX_READY 约为 1600 / TX_TRIG_LEVEL 次。

最后我直接使用 devmem 手动写寄存器进行测试,发现 RX_RDY 中断始终在 RF_CNT >= 1 就触发,已配置 RX_TRIG_LEVEL = 0x30。

手动测试流程:

  1. 写 Bus Clock Gating Register 0、Bus Software Reset Register 0 打开时钟、解复位。

  2. 配置 SPI FIFO Control Register 中 RF_TEST、RX_TRIG_LEVEL

  3. 清除中断 SPI Interrupt Status Register

  4. 手动写 SPI RX Data Register,1字节数据

  5. 查看中断状态 SPI Interrupt Status Register,发现 RF_CNT 被触发,读 SPI FIFO Status Register 能看到 RF_CNT 为1。

最近编辑记录 dancells (今天 09:52:06)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn


东莞哇酷科技有限公司开发