你好,
我正在使用具有SDK5.0.3和DA14580_PRO开发套件的EXT_SPI应用程序验证Proximity Reporter,并遵循文档UM_B_013.PDF。
对于外部处理器,我已从以下位置使用该应用程序
5.0.3 \ projects \ host_apps \ da1458x \ proximity \ Reporter
对于内部处理器,我已从以下位置使用该应用程序
5.0.3 \ projects \ target_apps \ ble_examples \ prox_reporter_ext_spi
我在两个应用程序中配置了一些更改,并在下面的应用程序中配置SPI和封锁的SPI_SEND_IMAGE功能
#ifdef spi_booter.
// spi_send_image();
#万一
在外部处理器(Master)
#define spi_clk_pin gpio_pin_0.
#define spi_cs_pin gpio_pin_3.
#define spi_di_pin gpio_pin_5.
#define spi_do_pin gpio_pin_6.
在内部处理器中,(奴隶)
#define spi_clk_pin gpio_pin_0.
#define spi_cs_pin gpio_pin_3.
#define spi_do_pin gpio_pin_5.
#define spi_di_pin gpio_pin_6.
我已经附上了我所做的硬件连接图,用于验证..
我使用SWD闪烁了主机首先和从属的应用程序。
要检查输出,我已在移动设备中安装了DSPS APK(具有OS Android 6.0)。
它未列出邻近Reporter设备名称和列出其他设备名称。
我的问题是
1.我是否错过了任何东西?
2.我的引脚配置是正确的还是不正确的?
请帮我验证这个例子
嗨Ratheesht,
如果您不希望主机设备在580中下载图像,请刚刚从DA14580_Config.h文件中删除SPI_Booter,您应该在两个设备之间执行的配置位于7.1中的UM-B-013.PDF中.2连接图段落(图5),所附附加的内容与图表相同,您已连接0_0 0_3和设置所需的0_7,但连接的别针的其余销钉是不同的(0_1和0_2),因此请按照图形正确连接设备。此外,由于您尝试使用2个基本或Pro Dev套件完成设置,因此您必须在连接SPI时钟的电线的两端(50-100欧姆)上放置终端电阻。
谢谢mt_dialog.
你好 ,
我尝试过改进的销连接,并在SPI时钟的两侧添加了56Ohm的终端电阻。
我附上了我所做的连接图,供您参考。我正在使用两个da14580devkit_pro板,用于主和从站。
我也已经以两种方式闪过固件
即1.使用主机应用程序下载从属映像。
2.使用SWD(主设备中未定义的SPI_BOOTER)单独闪烁主机(闪烁)和从设备(闪烁的第二个),
Proximity Reporter设备名称未显示在我的DSP应用程序中。
有任何其他方法来检查输出吗?
请给我一些解决这个问题的指南?
嗨Ratheesht,
您可以在Android,iOS等上使用任何通用BLE应用程序检查设备广告。
评估演示应用程序有点棘手,原因是SPI的连接是一个比特敏感的,您无法看到设备的最可能原因可能是由于连接(不是因为您拥有您的连接错误,但由于580上的SPI处于从属模式时对噪声非常敏感)。
因此,尝试使用逻辑分析仪,也定义SPI_Booter,并在顺序检查该选项后尝试检查FW是否下载到从属580并尝试监视主服务器发送到从站的命令。
谢谢mt_dialog.
你好,
感谢您的快速回复,
在主机示例中,System频率以100MHz运行,但我无法理解SPI通信的频率速率。
在函数spi_send_image()中,spi_init()被调用如下,
spi_init(&spi_booter_pad,spi_mode_8bit,spi_rool_master,spi_clk_idle_pol_low,spi_pha_mode_0,spi_mint_disable,spi_xtal_div_4);
。IE。SPI_XTAL_DIV_4 - >用于频率选择,这将作为频率发送到以下功能
setbits16(spi_ctrl_reg,spi_clk,freq);
这里我不知道它是如何设置SPI的频率。
我的问题是
现在SPI的频率是多少?
它如何设置SPI的频率?
你好 ,
您可以提供关于上述的一些更新吗?
嗨Ratheesht,
有两个分频器寄存器才能确定SPI外设的时钟,第一寄存器是CLK_PER_REG和SPI_DIV字段,即默认值为0x00(这意味着除数为1,因此如果主系统时钟设置为1XTAL16 SPI模块的时钟设置为16MHz)。该分频器设置为Periph_Init()函数到2,这意味着传递给SPI模块的时钟被除以4所以4MHz。SPI模块本身中还有除数(SPI_CTRL_REG),它将SPI模块的时钟除以SPI_CLK字段中的数据表指示。现在,由于SPI_INIT()函数传递的值是SPI_XTAL_DIV_4,这意味着SPI模块以1MHz的频率工作。下载图像后,SPI以甚至较低的频率重新初始化,传递给SPI模块除数(SPI_CTRL_REG)的值是SPI_XTAL_DIV_8,这意味着下载图像后的SPI工作频率为512kHz。
谢谢mt_dialog.
你好,
感谢您的回复