您好!
最近我在使用LDC1000EVM。我在通过USB的BSL进行下载时,发现经过改动的代码无法驱动LDC1000芯片,其INTB一直处于高电平,没有触发中断。
我的代码源自Texas Instruments LDC1000 EVM GUI\Firmware下的LDC1000_F5528_V3_Public。我删除了USB通信部分(我并不觉得这些会影响LDC工作。而且事实上USB通信里有一块部分不删除也会报错,没有弄明白)。这样之后,经过下载,我发现LDC1000并没有工作。起先我觉得是SPI并没有正确写入初始值。于是我改用IO口模拟SPI,得到如下时序图.从上至下依次为SDI、SCLK、CS。作用为向 0x01写入0x0e、向0x02写入0x3f(设置Rp)。之后的时序略去。我觉得至少在SPI通讯上并没有出现差错,但问题还是存在,INTB始终为高电平,无法触发中断。
按说LDC1000默认模式是DRDY,我觉得它的工作条件并不严格,初始化完成应该就能够产生INTB信号。或者还有其他一些关键因素被我忽略掉了?
请不吝赐教,多谢!
user151383853:
虽然控制的代码或许没有变,但控制时序和延迟时间也应该受到了影响,回复到从前,一步步地改,一步步地调试,来检查到底哪里出了问题
Hang Hu:
真的只有我回复么……
折腾了3天,INTB口终于产生中断了。
新的问题来了
为什么……要往……寄存器0x0C里写东西?那是个什么寄存器?datasheet里没有提到啊
Hang Hu:
回复 user151383853:
诶?之前没有看到你的回复,不好意思。
我最后是用原版的firmware下载进去,用逻辑分析仪记录下启动时的数据,再对照我的firmware,发现差别只在向0x0c写入的动作上。这个东西我没有查到在哪提及的,我也很费解。
evm只能通过bsl下载,调试还是很吃力的。
Xinqi Fan:
回复 Hang Hu:
你好,我们的INTB口也是高电平,根本不会产生中断。 能留个联系方式么?邮箱就可以。
Hang Hu:
回复 Xinqi Fan:
我是在设置完中断方式之后添加了一句 while (!spi_writeByte(NULL, 0x0c, 0x01));
这段是把evm的spi通信解析出来得到的,从数据手册中没有找到依据。你也试试看吧