你好mt_dialog,
我使用DA14580开发Kit-Basic和AN-B-023,我成功地将我的项目加载到Flash内存(W25X20CL),并从它使用SPI引导。
现在,我想使用SPI将它连接到STMicroelectronics STM32F103R8,是否有可能将我的项目加载到它的内部闪存中,并从它启动,就像我使用DA14580那样?或者我应该在ST微控制器中实现一个启动协议,通过SPI发送数据到我的BLE模块(从)?
非常感谢和问候,
- 萨法夫
关键词:
设备:
嗨bensalemsaif,
我不完全究竟是什么想做的。当580靴子主引导程序期望特定端口上的特定字节序列(其他接口中的SPI Master / SPI从站)。请检查AN-B-001 - 从串行接口引导有关引导序列的更多信息。
由于MT_dialog
嗨MT_dialolog,
感谢您的答案,事实上,我已经检查了AN-B-001,我的问题是:
我将把PAN1740模块集成到STMicroelectronics STM32F103R8中,我希望它使用SPI从ST微控制器的闪存引导,因此,我应该把我的数据发送到an - b -001中描述的580吗?
因为之前所做的,就是使用SmartSnippet,我将我的十六进制文件加载到SPI闪存中,580可以启动,它不能与ST微控制器中的集成闪存相同?如果不实现数据应该如何通过SPI发送...
谢谢你!
赛义夫
嗨bensalemsaif,
AN-B-001描述了所有580个接口中的启动过程,开机,580的引导加载程序将运行,您应该在您选择的接口上提供适当的数据(案例主/从配置中的SPI)以便开始引导seqence。SDK中有一个例子在2 580的一个作为主站和另一个用#define spi_booter的SPI接口中的奴隶,您可以选择您的主设备下载.bin到您的从站。该示例位于host_apps / da1458x / proximity / Reporter下。
由于MT_dialog
嗨mt_dialog,
谢谢你的支持,记者的例子太有帮助了!
所以现在要从.hex文件中提取图像数据,我删除了地址,然后crc和我只保留了数据,我替换了0x00的空白,然后我把数据放入缓冲区,是正确的?它是正确的吗?
谢谢你!
赛义夫
嗨bensalemsaif,
要下载的文件是.bin文件不是.hex文件,可以从SDK中的实用程序文件夹中从Hex2bin工具转换.hex到.bin从SDK中的Utilities文件夹,使用编辑器,复制和粘贴数据.bin在您的.c文件中,下载。
由于MT_dialog
嗨mt_dialog,
谢谢你,我实现了你说的,现在要确保我的引脚配置是OK的,我像AN-B-001描述:P-0-0 <-> SCK, P0_3 <-> CS, P0_5 <-> MOSI和P0_6 <-> MISO,和其他引脚,我应该放跳线吗?(TCK, TMS,蝙蝠)
第二点是关于时间的,我应该在580中的引导算法搜索SPI上的数据时完全发送数据,因此在循环和JTAG之前的5次之前需要多长时间?这是什么最好的方法?
谢谢你!
嗨bensalemsaif,
TCK,TMS是调试器引脚如果您想通过Keil下载您的.bin,你必须使用那些引脚,如果不是,你也可以在蝙蝠引脚是开发套件上的SPI内存的引脚。请检查您拥有的开发套件的原理图。此外,您应该在启动加载程序运行时发送数据,以便下载要成功,它应该开始默认,在AN-B-001文档中描述了引导过程的步骤的确切超时。
由于MT_dialog
你好mt_dialog,
我仍然不能从我的SPI Master微控制器启动,所以请您帮我验证一下:
我开始使用MicroController的RESET引脚启动了580,如“AN-B-01”中所述等待103ms,然后在记者示例中策略发送报头(使能CS和发送数据)。但是我从来没有收到ACK或NACK,有时候我在STRINCE发送标题时拍摄了MISO的数据,请附上Saleae的标题发送分析的屏幕截图。
我错过了什么吗?
谢谢你!
嗨bensalemsaif,
使用spi奴隶580是有点棘手,请确保提供的spi时钟主至少四次小的内部spi时钟配置的奴隶,也请尝试把一些延迟主当spi总线上发送数据。也请检查你的连接,他们应该尽可能短,屏蔽和适当的端接。
由于MT_dialog
你好mt_dialog,
谢谢你的回复,我会检查我的连接,时钟580的内部频率是16MHz,对吗?直到现在我发送数据与主时钟频率= 250KHz,所以它应该是OK的?
将一些延迟发送数据的时候,我试过,但似乎没有逻辑意义上需要这么多时间发送图像,它可能是好的为头而不是图片,所以请确认时钟频率和我将检查连接。
谢谢你!
- saif.
嗨bensalemsaif,
内部SPI时钟频率可以达到16MHz(最大/最小分频器为1)。当SPI Master中的580靴子时,请检查AN-B-001是否有适当的SPI时钟设置。由于您的主人在频率上发送数据到达250khz,因此您应该可以正常,因为500只有在没有发出发送字节之间的任何延迟的限制。580中的SPI采样器是非常敏感的,电线电缆可能导致批次问题,因为它可能错误地接收小尖峰或脉冲的反射。
由于MT_dialog
你好mt_dialog,
因为SPI不工作,我想从UART启动,就像以前,我重置580然后stratocaster电吉他发送数据,当我收到0 x02 strat字节,当发送SOH, LEN_LSB LEN_MSB我0 x06 ACK,所以一切都很好,然后我发送图像,但从那以后,我没有得到任何CRC。
同样的图像被成功下载到SPI Flash内存(Smartsnippets), 580可以从它引导。
这里附上了Saleae分析,我的十六进制和bin文件(大小是19236 =4B24)和我如何发送数据:
1 - 与记者示例:数据对齐(64),大小除以4,我正在使用相同的发送功能实现
2 - 数据未对齐,只是一个具有长度=数据大小的普通缓冲区,并按字节向其发送内容字节
但结果总是一样的,有什么东西不见了吗?
嗨bensalemsaif,
我无法打开从UART启动。Logicdata文件(似乎该文件是空的)。只需使用hex2bin程序生成的二进制文件,并通过UART下载它。如果你不等待一个CRC和发送一个0x06 580做什么?您还可以尝试运行辅助引导加载程序来调试它,您可以在keil上运行bootloader,并模拟主引导加载程序并调试它。另外,您能够使用智能代码片段在UART上下载文件吗?此外,如果可以的话,你可以尝试从不同的TX/RX对启动。我上传了一个捕获从如何UART下载图像。
由于MT_dialog
你好mt_dialog,
事实上我不能下载文件(或任何文件)使用SmartSnippets超过SPI/UART,它只做了JTAG,否则,我不能擦除SPI闪存,这里附加的错误:
那么问题出在哪里呢?
谢谢,
嗨bensalemsaif,
由于您有一个基本的工具包,智能代码片段中惟一可用的选项是UART, UART/SPI只对专业人员和专家工具包可用。程序SPI Flash你使适当的连接的基本工具(它需要一个额外的连接),请跟旁边的图你的针连接的SPI和另外连接P0_4跳投和UART的P0_5销连接。
由于MT_dialog