⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在进入我们的新论坛平台,将提供更好的功能,并包含在主对话框网站内。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-semicondiondiondumon.com/support.。我们将在未来几天修复错误/优化搜索和标记。
5个职位/ 0个新职位
最后一篇文章
Joachimkr.
离线
最后一次露面:3个月1周前
加入:2018-07-06 08:58
SPI外围

你好,

我正在使用DA14531和NXP芯片开发一个定制板,通过SPI连接。作为开发环境我使用Pro Devement板,使用DA14531女儿。
我为SPI拉了跳线,以便连接我的目标,驻留在它自己的板环境中。
恩智浦芯片期望一个简单的协议。在读取中,7个上部位是寄存器地址,位0决定读取或写入。
因此,我猜,必须在读取中传输2个字节,第二个被忽略,但味噌由恩智浦芯片驱动。

我现在被困在图书馆里。我在项目中切断了DMA配置参数(删除了Define CFG_SPI_DMA_SUPPORT)并准备了“READ_REGISTER”函数。

库由文件SPI931.C的第903行中的无限循环停止:

//等待rx fifo是空的,而spi_rx_fifo_empty_status_getf()== spi_rx_fifo_is_empty);

这是我的图书馆电话:

无符号char getRegister(无符号int reg_address){无符号char reg_addressv = reg_address;for(int i = 0; i 

感兴趣的线是,其中调用spi_transfer()。

SOC初始化从SPI_FLASH项目中取出,接口设置为字节传输。
实际上,我认为spi_flash示例为代码库并修改它。所有初始化都保持如 - 除了删除DMA支持之外。
我不接受打扰。

什么可能是错误的?
为什么RX FIFO空?
它应该是不是空的,即使SPI端口引脚没有任何连接, 我错了吗?

感谢您的帮助和提示,
joachim

关键词:
设备:
PM_DIALOG.
离线
最后一次露面:5小时33分钟前
职员
加入:2018-02-08 11:03
嗨joachimkr,

嗨joachimkr,

您可以使用DA14531 DK分享您将外部MCU连接的方式吗?

那么,你用附着的调试器运行它,固件卡在这一行吗?

是否有可能使用逻辑分析仪,探测SPI线并共享SPI捕获?

谢谢,PM_DIALOG.

Joachimkr.
离线
最后一次露面:3个月1周前
加入:2018-07-06 08:58
你好,

你好,

谢谢反应。您的问题假设,它将是一个符合否定的CPU,它已附加。不,它是一个外围设备。回答您的问题:

调试器停止,循环在给定的行中。我现在将附上分析仪,以确保,我预计所有反应都会:

与此同时,我能解决非常基本的问题。事实证明,在调用事务函数之前,SPI控制器依赖于将CS信号激活的呼叫设置为激活。激活CS(在我的情况下低)后,SPI控制器工作,我通过了线,得到了一个字节的结果,正如所预期的那样。将MISO附加到低电平时,它为零,当高,0xFF时,如预期的那样。

该依赖性既不描述代码,也不在数据表中描述。

我建议,在示例的源代码中添加注释。此外,我通过项目级别禁用DMA定义,并注意到闪存测试代码的成功运行。缺少图书馆的一些描述。越基本,更重要;-)

然而,它是干净和清晰的代码!

谢谢你的评论,

问候,joachim

Joachimkr.
离线
最后一次露面:3个月1周前
加入:2018-07-06 08:58
另一个问题提出。这

另一个问题提出。字节-WIDE'外围设备的外围设备顺序期望至少2个字节,第二个以返回所寻址寄存器的正确内容。
要解决此问题,我添加了一个用于寄存器访问的实用程序,它在命令后发送了一个虚拟字节(用它的时钟脉冲),以便获得返回值。
rxfifo中的第一个字节被忽略,垃圾。第二个字节作为函数结果返回。
我很满意,但提出了在图书馆代码中的一些额外评论。我假设,我并不孤单地拥有类似的HICKUP。
总体:伟大的工作!
joachim

Cyibin.
离线
最后一次露面:7个月1周前
职员
加入:2017-12-14 02:48
嗨joachimkr,

嗨joachimkr,

谢谢你。你的建议非常好

BR,宜宾