主题中讨论的其他器件: DLP2000、 DLPC2607、DLPDLCR160CPEVM 、DLP160CP
工具与软件:
您好!
我正在使用 DLP2000的开发板(DLPDLCR2000EVM)。
注意:开发板应与 BBB (BeagleBone Black)"即插即用"、但对它的支持实际上已经过时了... BBB 的 Debian 最后一个版本不再包含"opt/scripts"、也不会检测到 DLP 开发板。 我尝试手动安装(从 https://github.com/RobertCNelson/boot-scripts/tree/master/device/bone/capes/DLPDLCR2000 ) ,但演示脚本是用 Python 2写的(!) 并需要 Qt4框架、该框架已从 Ubuntu 和 Debian 中删除了很长时间...
因此、我决定/不得不切换到作为"主机处理器"的 Arduino、并通过 I2C 与 DLP 进行交互。
按照"DLPC2607软件程序员指南"、我可以通过 I2C 成功读取和写入 DLPC2607;例如、通过不同的预编程测试模式循环。 但遗憾的是、我无法成功读取闪存(通过 I2C"低电平"接口)... 我是为了得到一些指导而跳跃:)
我将尝试执行基本的"Flash 读取命令序列"(DLPC2607指南中的第2.3.2.3.3小节)。 我的伪代码如下:
//1.a:设置 DMA 起始地址
W 0x36 0x79 0x 00 04 D0 00 //启动序列位置= x0004、D000 (启动界面编号0)
//1.b:设置 DMA 大小)
W 0x36 0x77 0x 00 00 FF //RDATA_BYTE_QTY = 256字节
//1.c:设置闪存读取操作码
W 0x36 0x78 0x 00 00 00 0B //快速只读、代码是 x0B
//1.d:设置闪存读取虚拟字节
W 0x36 0x75 0x 00 00 00 01 //dummy_byte_Qty (在 DLCP 数据表中已固定)
//1.e:设置闪存地址字节
W 0x36 0x74 0x 00 00 00 03 //ADDR_BYTE_QTY (在 DLCP 数据表中固定
//
//此时、我可以读取并检查寄存器0x79、0x77、0x78、0x75和0x74是否已更新为新值
//
//2A:在读取模式中设置 FMC (闪存模式控制)(是否让闪存接口控制从闪存传输到 DMA?)
W 0x36 0x08 0x 00 00 00 03
1/2.b:检查(并等待) DLCP 状态被清除
W 0x36 0x15 0x03
R 0x37 //预期返回4个字节、如果 DLCP 准备就绪、则应接收0xXX、0xxx、BXXX010X0、0x8A
//2.c:通过闪存读取寄存器读取闪存、一次读取4个字节
W 0x36 0x15 0x07
R 0x37 //预期起始序列位置的4个字节
W 0x36 0x15 0x07
r 0x37 //预期增加4个字节
...
W 0x36 0x15 0x07
R 0x37 //直到读取 RDATA_BYTE_QTY
在最后一个步骤2.c 中、我继续从寄存器0x07...读取相同的值
有什么想法我在做什么错?
非常感谢您的帮助!
