您尚未登录。

#1 Re: 全志 SOC » F1C200S SPI 是不是有硬件bug呀 » 2026-06-02 23:14:35

陆苹果 说:

补充一句:先用正常回环排除 RF_TEST 误判,再读回 FCR 确认水位。若仍一字节一中断,才考虑硅片/驱动兼容问题;工程上优先 DMA,或只开 TX 中断顺手 drain RX。

纯写寄存器的方式测了一遍,也是一字节一中断。我先只开 TX 中断顺手 drain RX了,目前命令行卡顿缓解了。正在把主线的dma代码搬进来。感谢解答 big_smile

#2 Re: 全志 SOC » F1C200S SPI 是不是有硬件bug呀 » 2026-06-02 20:59:04

zzm24 说:

f1c200s新kernel spi是可以直接开DMA的,靠本身spi fifo那几个字节中断肯定次数多了.

理论上中断次数是:发送字节数 / Watermark_level,但是目前的现象是约为1字节1中断。那我把主线的合入我现在的内核用dma吧,感谢。

或者我可以试试只用TX的同时处理RX

#3 全志 SOC » F1C200S SPI 是不是有硬件bug呀 » 2026-06-02 09:04:48

dancells
回复: 6

在 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。

#4 Re: 全志 SOC » 【求助】F1C200S无法SD卡进系统,直接进入FEL » 2024-03-06 18:49:45

解决了。完全没意识到,自己一直把uboot写到1分区的8k偏移,而不是TF卡的8k偏移。正确烧录:

sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8 

而不是:

sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb1 bs=1024 seek=8 

#5 全志 SOC » 【求助】F1C200S无法SD卡进系统,直接进入FEL » 2024-03-06 09:50:40

dancells
回复: 1

自制了一块F1C200S板子,现象:

  • SD卡烧录UBOOT后,插入无法进入UBOOT,直接进fel了。已更换了4个不同容量的SD卡。

  • 手动通过sunxi-fel将uboot加载到ddr可进入uboot,进入uboot可正常读SD卡,并可load内核设备树,进系统。

  • 另外,之前能从SD卡进uboot,并进系统的。中间SD因为读卡器坏过,然后买了其他SD卡和读卡器就不行了。

这样烧录的:

 sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb1 bs=1024 seek=8 

分区已格式化为vfat。
已测量4路供电电压,均在手册要求范围。

页脚

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

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


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