自定义SPI Flash应用程序和jtag_programmer

36个帖子/ 0新
最后一篇
克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
自定义SPI Flash应用程序和jtag_programmer

我们需要编写一个类似于SmartSnippet的SPI Flash编程的SPI闪存程序员。

原因是我们想要一个Flash编程UI,它可以自动化一些事情,而不需要用户必须知道闪存的每个区域的偏移地址应该存储什么数据除了DA应用程序FW。使用SS时,用户必须知道偏移地址的位置,才能刷新某条数据供FW使用。

,

1.在我们的定制用户界面中,如何在SPI Flash编程中编写SS的子集?
2.SS SPI Flash Programming和jtag_programmer之间的协议是什么?

谢谢,
--凯

设备:
mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 11:34
嗨kqtrinh,

嗨kqtrinh,

1.flash_程序员项目接受一系列命令(您可以在programmer.c文件中找到这些命令),因此在您点击connect按钮后(程序员fw下载)
到您的580)Smart Schippets UI通过UART或通过JTAG发送这些命令。因此,在“需要”问题中,对于更多功能,您需要定义其他命令
并实现了相应的函数。

2.flash程序员的协议没有文档记录,对于UART和JTAG来说非常不同,通常设备使用请求/响应方案交换数据,在UART下从Smart Snippets发送的消息遵循下面的结构。

  • [ |]第一个48bits是标题部分,其余消息是消息部分。
    • 例如,从UART接口读取的SPI是以下数据包
      Len(16位) CRC(32位) Op的代码 地址(32位) 长度(16位)
      0 0 x00 x07 标题部分的CRC 0x90(programmer.c文件中的action_spi_read) 0x00 0x00 0x00 0x00(地址读取) 阅读数据量
    • 而回应将是。
      Len(16位) CRC(32位) 地位 数据
      0x01 +数据长度 CRC. 0 x82(行动内容) 读取数据

因为这不是记录和没有一个可用的应用程序注意在创建工具(作为)写一个自定义应用程序的最好方法是调查两个设备之间的通信通过逻辑分析仪来捕获和复制在您的应用程序的命令。

由于MT_dialog

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
谢谢。

谢谢。

在Programmer.c中,它看起来像UST_UART标志未在项目中的任何位置定义。此标志是否对应于您正在谈论的UART模式?

在SS Studio中,单击SmartSnippets工具箱图标按钮启动它时,它会显示一个对话框,供用户选择UART或JTAG模式。我的理解是能够将新FW闪存到SPI闪存,用户必须选择JTAG模式并将J4标题跳转为SPI,因此SS可以读/写/擦除SPI闪光灯。我可以选择UART模式并运行SPI闪存程序员在J4标题跳转为SPI时写新FW吗?

我已经测试了两个案例,只有JTAG/SPI J4头选择对我有效。至于UART/SPI J4报头选择,我收到了一个消息“请按下HW复位按钮在板上开始下载过程”,然后我按下按钮,它说复位检测到。之后,所有SPI Flash相关的按钮(函数)都变成灰色。

我提出这个的原因是,我试图理解什么工作,并将模仿自定义Flash UI。如果JTAG模式是唯一的模式,可以工作访问SPI Flash, SS如何检测JTAG连接用户选择JTAG无线电?为了清晰起见,我附上了一张快照。

谢谢,
--凯

依恋:
mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 11:34
嗨kqtrinh,

嗨kqtrinh,

是的,USE_UART标志以UART模式设置程序员(您可以从keil中的下拉框中更改选项,以便为programmer_uart构建programmer_jtag)。

打开SS时出现的对话框是为了选择要编程的设备和SS之间的通用接口,而不仅仅是flash。所以你可以选择UART模式为了程序flash,但这需要额外的跳线配置,您必须设置跳投在SPI配置也有P04针跳线和连接P05 UART销和SPI销(三路跳投)。

由于MT_dialog

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
MT,

MT,

谢谢你的澄清。
在SS Studio中,我刚刚意识到选择jtag时SS将自动选择jtag_programmer.bin,选择UART时SS将自动选择flash_programmer.bin。因此,当选择UART时,USE_UART标志将变为true。

我的问题是,当选择JTAG单选按钮时,一个编号为480056116的复选框被选中。SS从哪里得到/读取这个数字?这是我的自定义UI需要做同样的事情的部分。你能帮助查看SS源代码,并让我知道它如何找到JTAG连接吗?JTAG模式是我们想要支持的我们自己的自定义HW。

谢谢,
--凯

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
MT,

MT,

如果您不介意,您还可以为上面给出的Action_Read提供action_write和action_erase的协议格式吗?这就是我的自定义UI真正需要的全部。
谢谢,
--凯

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
MT,

MT,

从数据或仅从数据计算字节流的CRC32?
谢谢,
--凯

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
MT,

MT,

是计算字节流的CRC32从OpCode(8位)|地址(32位)|长度(16位)|数据还是仅仅从数据?
谢谢,
--凯

mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 11:34
嗨kqtrinh,

嗨kqtrinh,

我没有智能片段的源代码,但我怀疑SS使用segger工具和J-lInk指挥官为了检查。

UART请求和响应的写入和擦除操作协议如下。

Len(16位) CRC(32bits) 操作码 地址偏移量(32位) 长度(16位) 数据(长度* 8bits)
0x07 +长度你的箱子 CRC. 0x91 地址 长度 数据

Len(16位) CRC(32位) 状态(8位) 错误代码(32位)
0x01 CRC. 0x83(action_ok)或0x84(action_error) 其他错误代码-仅当“状态”设置为“操作\错误”时

Len(16位) CRC(32位) Op的代码
0x01 CRC. 0x92

Len(16位) CRC(32位) 状态(8位) 错误代码(32位)
0x01 CRC. 0x83或0x84 附加错误代码-仅当状态设置为动作错误时。

CRC仅用于消息部分,这意味着操作码 - 地址 - 长度 - 数据

由于MT_dialog

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
你好,先生,

你好,先生,

您继续提到上述Flash读/写/删除请求的格式是针对UART连接的,对JTAG连接不相同吗?如果他们不是,那么您还可以提供JTAG闪存功能吗?

谢谢,
--凯

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
MT,

MT,

擦除的格式似乎错误。我这么说是因为flash_程序员不需要知道flash中要擦除的地址和字节长度吗?协议消息不包含这两个选项。你能澄清一下吗?使用我的DA应用程序FW,我确实在flash中为不同的数据定义了其他区域,因此它们需要更新或擦除。

谢谢,
--凯

mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 11:34
嗨kqtrinh,

嗨kqtrinh,

在JTAG模式functionallity略有不同(该工具直接访问内存的580固定地址为了与580)程序员定义命令的BASE_MEMORY和相应的补偿和TARGET_MEMORY数据,所以比uart协议略有不同。例如,JTAG的读flash将是BASE_MEMORY地址和TARGET_MEMORY地址:

记忆偏移 请求内存内容 响应存储器内容
action_offset. 0x90(操作SPI读取) 0x00(无动作)
尺寸偏差 数据长度 数据长度
address_offset. 地址 地址
结果u偏移量 不关心 0x82(操作内容)

记忆偏移 请求内存内容 响应存储器内容
0. 不关心 data0.
1 不关心 data1.

写过JTAG的写作

记忆偏移 请求内存内容 响应存储器内容
action_offset. 0x91(操作\闪存\写入) 0x00(无动作)
尺寸偏差 尺寸 尺寸
address_offset. 记忆地址 记忆地址
结果u偏移量 不关心 0x83或0x84
error_offset. 不关心 错误代码(32bits) - 仅当结果是action_error时

记忆偏移 请求内存内容 响应存储器内容
0. data0. data0.
1 data1. data1.

对于删除JTAG:

记忆偏移 请求内存内容 响应存储器内容
action_offset. 0x92(action_flash_erase) 0x00(无动作)
尺寸偏差 不在乎 不在乎
address_offset. 不在乎 不在乎
结果u偏移量 不在乎 0x83或0x84
error_offset. 不在乎 错误代码(32bits) - 仅当结果是action_error时

我提到UART自从我假设更容易附加一个分析器和跟踪两个设备之间的通信(580和智能片段工具)因为我已经提到过没有文档我做相同的事情为了报告协议。在UART行我没有看到额外的头为erase过程,你可以附加一个分析器和验证它,但智能片段向SPI发出一个erase命令,它不写0xFF以擦除它。我假设你想要SPI_ERASE_BLOCK命令/响应,而不是SPI_ERASE,它是:

Len(16位) CRC(32位) Op的代码 地址(32位) 部门(16位)
0x07 CRC. 0x94 地址 n

Len(16位) CRC(32位) Op的代码 错误代码(32位)
0x01 CRC. 0x83或0x84 附加的代码错误-仅当状态没有设置在ACTION_OK

由于MT_dialog

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
你好,先生,

你好,先生,

非常感谢您为我做了肮脏的工作,获得了读/写/擦除的消息协议。我非常感谢你们所有人的支持。

因此,按照您的指导原则生成发送到580的读/写/擦除消息对我来说不起作用。我想是时候用逻辑分析仪探测电路板了。你能告诉我检查UART流量的PIN码吗?现在,电路板跳转为UART配置(J4和J6之间有两个3针跳线)。

您可以将我作为详细说明,因为您可能会提供,因为我可能必须使用逻辑分析仪来加快速度来检查UART流量。我根本不派上用场。

谢谢,
--凯

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
你好,先生,

你好,先生,

我可以在Keil IDE中将flash_程序员设置为调试模式吗?我在flash_programmer.c源文件中看到一个标志DEVELOPMENT_MODE,表示它是用于调试的。你能给我一些建议和调试说明吗?我希望看到,当我从SS或自定义UI发送协议命令时,它将触发flash_程序员中的断点。这将是理想的。

谢谢,
--凯

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
把这个从屏幕上剪下来粘贴

从程序员文件中剪切并粘贴。不确定这意味着什么。

#定义UART_引脚对4/(0:(P0_0,P0_1),2:(P0_2,P0_3),4:(P0_4,P0_5),6:(P0_6,P0_7))

#ifdef使用_uart.
SetWord16 (CLK_PER_REG UART1_ENABLE);//为UART1启用时钟
#ifdef development_mode //使用调试器,定义它并根据电路板配置(periph_setup.h)设置UART_PIN_PAIR
port_sel = UART_PIN_PAIR;
#恩迪夫

mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 11:34
嗨kqtrinh,

嗨kqtrinh,

是的,你可以下载程序到580。您可以连接到智能代码段(打开智能代码段,转到flash程序员选项卡并点击连接按钮,以便激活智能代码段)。完成后,打开flash_programmer项目,编译并下载fw。后,当这种训练工具将从智能片段的按钮操作和发送数据,你将能够抓住的命令,我相信这是去工作只能通过UART的选择因为我不认为你能通过JTAG调试和连接。

关于您粘贴的代码,它选择要用于UART的引脚。如果您在评论中转到UART_PIN_PAIR定义,它说:

#定义UART_引脚对4/(0:(P0_0,P0_1),2:(P0_2,P0_3),4:(P0_4,P0_5),6:(P0_6,P0_7))

因此,如果定义在4中,则意味着P04和P05引脚将用于UART。

setword16(clk_per_reg,uart1_enable);启用UART的时钟

而port_sel = uart_pin_pair选择指定对的UART波特兰(通过设计,每个UART对由标准的波特率分配)。

由于MT_dialog

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
MT,

MT,

谢谢(你的)信息。因此,在keil中,我将优化选项设置为0,以便无优化,因此我可以通过代码和设置断点来步进。当我选择该选项并重新编译代码时,我收到以下错误:选择O1将不允许我插入任何断点(灰色)

***使用编译器“V5.06更新3(构建300)”,文件夹:“C:\Development\Embedded\Keil\ARM\ARMCC\Bin”
构建目标“programmer_jtag”
编译crc32.c……
compling system_cmsdk.c ...
编译peripherals.c……
编译otpc.c……
编译UART.c.
编译i2c_eeprom.c.
编译spi_flash.c。。。
编译spi.c。。。
编译gpio.c。。。
编译programmer.c……
连接……
\ Out_jtag \ jtag_programmer。axf:错误:L6406E:执行区域没有空间与。any选择器匹配spi.o(.text)。
\ Out_jtag \ jtag_programmer。axf:错误:L6406E:执行区域没有空间与。any选择器匹配periphers .o(.text)。
.\Out\u jtag\jtag\u programmer.axf:错误:L6406E:执行区域中没有与.otpc.o(.text)匹配的任何选择器的空间。
\ Out_jtag \ jtag_programmer。axf:错误:L6406E:执行区域没有空间与。any选择器匹配system_cmsdk.o(.text)。
。\ out_jtag \ jtag_programmer.axf:错误:l6406e:匹配spi_flash.o(.constdata)的执行区域中没有空间。
。\ out_jtag \ jtag_programmer.axf:错误:l6406e:没有执行区域的空格.any选择器匹配UIDIV.O(.text)。
\ Out_jtag \ jtag_programmer。axf:错误:L6406E:执行区域没有空间与。any选择器匹配memcpya.o(.text)。
。\ out_jtag \ jtag_programmer.axf:错误:l6406e:没有执行区域的空格.any选择器匹配memseta.o(.text)。
\ Out_jtag \ jtag_programmer。axf:错误:L6406E:执行区域没有空间与。any选择器匹配startup_cmsdk_cm0.o(.text)。
.\Out\u jtag\jtag\u programmer.axf:错误:L6406E:执行区域中没有与.uart.o(i.\u ARM\u common\u switch8)匹配的任何选择器的空间。
。\ out_jtag \ jtag_programmer.axf:错误:l6407e:聚合大小0x54c字节的部分无法拟合.ANY选择器。
没有足够的信息列出图像符号。
没有足够的信息来列出图像映射。
完成:2个信息,0警告和11个错误消息。
“\Out\u jtag\jtag\u programmer.axf”-11个错误,0个警告。
目标未创建。
构建时间经过:00:00:01

我怎样才能克服这个问题?
谢谢,
--凯

mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 11:34
嗨kqtrinh,

嗨kqtrinh,

-O1优化和灰色的断点的原因是因为您正在构建JTAG_Programmer而不是UART_Programmer。如上所述,您无法通过JTAG运行JTAG_Programmer(调试数据和实际数据在相同的接口上传输)。因此,从Programmer_jtag从下拉框切换到Programmer_uart,您将能够运行和调试代码。如果您将使用-o0,您也会收到错误。

程序员的FW对这种尺寸并不是:在减少优化水平时,您可以增加在MCU中运行的代码量,因此您正在生产太多数据和当前FW不构建这种使用(程序员本身非常小,但是从智能片段加载FW的缓冲区它与整个图像一样大,因此FW占据Sysram中0x20000000的区域,最高可达0x2200偏移量当您提高优化时,代码生成超过该限制以及链接器尝试将要保存在地址0x20002200中的缓冲区将失败的缓冲区将失败)。如果您坚持在-O0优化中编译代码,则可以尝试将该偏移量增加到0x20002800,但如果有任何一个快速测试,我无法预测此问题的任何问题,我可以看到该工具正常运行。

由于MT_dialog

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
谢谢你的指导。我

谢谢你的指导。我can now build with -O1. I then got this error:

***使用编译器“V5.06更新3(构建300)”,文件夹:“C:\Development\Embedded\Keil\ARM\ARMCC\Bin”
重建目标“programmer_uart”
组装startup_cmsdk_cm0.s ...
compling system_cmsdk.c ...
编译crc32.c……
编译peripherals.c……
编译otpc.c……
编译UART.c.
编译i2c_eeprom.c.
编译spi_flash.c。。。
编译spi.c。。。
编译gpio.c。。。
编译programmer.c……
连接……
程序大小:Code=6584 RO-data=240 RW-data=1040 ZI-data=33608
FromELF:正在创建十六进制文件。。。
编译后-用户命令#1:fromelf——bincombined——output=".\Out_uart\ flash_programer .bin" ".\Out_uart\ flash_programer .axf"
“。\ out_uart \ flash_programmer.axf” - 0错误,0警告。
构建时间经过:00:00:02
加载“C:\\ Development \\ eMbedded \\ Dialogsemi \\ SDK 5.0.4 \\ DA1458X_SDK \\ 5.0.4 \\ Utilities \\ flash_programmer \\ out_uart \\ flash_programmer.axf”
将JLink项目文件设置为“C:\ Development \ eMbedded \ Dialogsemi \ SDK 5.0.4 \ Da1458x_sdk \ 5.0.4 \ Utilities \ flash_prickmer \ jlinksettings.ini”
* JLink信息:设备“CORTEX-M0”被选中。

jlink信息:
-------------
DLL:v5.12f,2016年5月17日编译16:03:35
固件:J-Link Ob-Sam3u128 V1编译Jul 5 2016 08:42:08
硬件:V1.00
S / N: 480056116

* JLINK信息:找到了带ID 0x0BB11477的SWD-DP
*JLink信息:发现Cortex-M0 r0p0,Little endian。
*JLink信息:FPUnit:4个代码(BP)插槽和0个文字插槽
* jlink信息:coresight组件:
*JLink信息:ROMTbl 0@E00FF000
* jlink信息:romtbl 0 [0]:fff0f000,cid:b105e00d,pid:000bb008 scs
* JLink Info: ROMTbl 0 [1]: FFF02000, CID: B105E00D, PID: 000BB00A DWT
* JLink Info: ROMTbl 0 [2]: FFF03000, CID: B105E00D, PID: 000BB00B FPB
ROMTableAddr = 0 xe00ff000

目标信息:
-------------
设备:ARMCM0
vtarget = 3.300V.
针的状态:
TCK:0,TDI:1,TDO:1,TMS:1,TRES:1,TRST:1
硬件断点:4
软件断点:8192
观察点:2
JTAG速度:5000 kHz

没有找到:20000000H - 20001EB7H的算法
抹去了!
错误:闪存下载失败-“Cortex-M0”
Flash Load在09:46:46结束

mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 11:34
嗨kqtrinh,

嗨kqtrinh,

转到“目标选项”并选择“实用程序”选项卡,在该选项卡中选择“使用外部工具进行Flash编程”。

由于MT_dialog

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
你好,先生,

你好,先生,

感谢帮助我继续调试UART程序员的说明。我现在能够在调试模式下调试并查看Smart Snippets的消息凹陷。

我有一个后续问题。当点击连接按钮在SPI Flash程序员,这究竟做什么?单击Connect按钮没有下载uart程序,直到板上的RESET按钮被按下。所以不应该有任何握手之间的SPI Flash程序员和板或580 FW发生。然后按下RESET按钮会做什么呢?我确实注意到SPI Flash程序员打印出一个“重置检测”消息Reset按钮按下和UART程序员将随后下载。在此之后,可以从SPI flash Programmer执行flash读写/擦除函数。

我问这个问题的原因是这样我就可以在我的自定义UI中精确地模拟过程,以防有任何握手,我应该编写代码。SPI Flash程序员得到什么回报按下复位按钮在板上触发它下载数据Flash ?

谢谢,
--凯

mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 11:34
嗨kqtrinh,

嗨kqtrinh,

智能代码段工具请求按顺序按下重置按钮,以便为580重置,以便Bootrom代码将开始执行,然后智能代码段将捕捉到的0x02标签,即在下载过程的UART部分期间引导加载程序EMMITS(STX发送))。当智能代码段追踪它知道应用重置并且UART_PROGGROGMER DONDWLOAD到580。

由于MT_dialog

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
你好,先生,

你好,先生,

它真的是从ROM代码发出0x02值的一个字节吗?在按下复位按钮后,我尝试从UART行上的主机端读取1个字节,但没有得到任何返回。每秒钟循环10乘以1,仍然一无所获。波特率和东西需要在主机上同步吗?在从UART行读取该事务之前,引导代码中预期的内容是什么?

谢谢,
--凯

mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 11:34
嗨kqtrinh,

嗨kqtrinh,

AN-B-001中描述了启动程序以及580复位后发送的内容,是的,STX字符是580扫描UART端口时接收的数据之一。请检查文档,因为引导过程的管脚是固定的,并且每个管脚对在不同的波特率下工作。如果您的外部MCU没有相同的波特率,它将无法跟踪STX字节。

由于MT_dialog

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
你好,先生,

你好,先生,

因此,我遵循了文档的AN-B-001文档表5,特别是用于从自定义Flash UI下载UART程序员的握手协议。
我能够在随机继电器中得到0x02(有时我能够在按下复位按钮1秒后得到它。其他时候我是几秒钟后才收到的)
- 然后我向ROM代码发送了3个字节 - 使用UART程序员字节流的LSB和MSB的SOH
—在环路中旋转,等待ACK = 0x06或NACK = 0x15返回。我没有得到任何反馈(我开始怀疑文档是否仍然有效)。因此,由于这个原因,我现在无法继续使用UART程序员下载来处理Flash ERASE/READ/WRITE。

但是,因为它是我的UI而不是SmartSnippet,我可以在我开始锻炼Flash功能之前绕过将UART程序员下载到580。所以,我使用Keil调试器下载UART程序员并让它运行。然后,我能够检查我们的Flash删除/读/写消息协议,您提供了我在我的UI中编码,它像魅力一样工作。

你认为你能帮我通过逻辑分析仪运行引导代码和SPI Flash程序员吗?

谢谢,
--凯

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
我正在使用p0_4和p0_5

顺便说一下,我使用的是57.6Kbps波特率的P0_4和P0_5,因为这个引脚配置与我使用的DSPS应用FW作为基线相同。它也是从SmartSnippets下载flash程序员所需的UART配置。

谢谢,
--凯

mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 11:34
嗨kqtrinh,

嗨kqtrinh,

请在附件中找到UART上的flash程序员序列的下载。

由于MT_dialog

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
这个文件是什么格式?

这个文件是什么格式?似乎是二进制的。如何查看它?
谢谢,
--凯

mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 11:34
嗨kqtrinh,

嗨kqtrinh,

它是一个.logicdata文件,您可以使用saleae Logic 1 2 3软件打开此文件。

由于MT_dialog

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
MT,

MT,

谢谢你的日志文件。我下载了Saleae软件,并能够看到数据。AN-B-001文件正确地描述了该协议。

现在我开始怀疑我的board J4跳线配置是否错误(即:只能下载代码,因为我可以,但不能通过串行线路接收来自board的反馈)。我必须咬紧牙关,用逻辑分析仪查看协议。

附件是我当前580 J4配置的快照。中间的2根黄色线是用于UART flash编程的3脚跳线,P0_4跳线用于UART串口控制台输出。

在您的帮助下,您能告诉我在哪里放置测试线索来捕获SPI Flash程序员和您发送给我的引导代码之间的协议流量吗?

谢谢,
--凯

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
对不起,图片附呈。请

对不起,图片附呈。请检查My J4 Config的图片以查看是否有建议,以防错误。

依恋:
mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 11:34
嗨kqtrinh,

嗨kqtrinh,

下载代码时的流量(UART_flash_programmer)位于引脚P04和P05, ATMEL处理器的RX和TX也充当jlink。之后,如果您希望观察SPI事务,您需要探测MISO和MOSI线(为了让分析器解释数据,CLK和CS)。默认情况下,智能片段的默认行是P05 (MISO) / P06 (MOSI) / P00 (CLK) / P03 (CS)。单板的配置似乎没问题。

由于MT_dialog

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
你好,先生,

你好,先生,

我得到了逻辑8并试图使用它来侦听SPI闪存程序员和580之间的协议流量而不会成功。以下是我的步骤:
请参阅随附的测试引线下的电路板图像。

1.使用逻辑8通道0和通道1线路用于UTX和URX引脚,如图所示。如图所示,接地通道0和通道1黑线到USB连接器
2.在逻辑应用软件中,为两个串行通道创建两个串行分析仪,并将它们都设置为576000波特率
3.在SPI闪存程序员中,单击“连接”按钮
4.单击逻辑8应用程序中的“开始”按钮开始捕获
5.按下单板上的RESET按钮
6.下载了UART程序员

逻辑8应用程序中没有显示的录制协议流量,作为您发出的内容。任何帮助,将不胜感激。
谢谢,
--凯

依恋:
mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 11:34
嗨kqtrinh,

嗨kqtrinh,

我想你想探测URX和UTX线条,以检查下载过程,从附加的图片我可以看到你在P04上连接了两个分析仪探测器(我无法从图片中理解)。您必须探测P04和P05(两个UART引脚)。此外,我认为576000是一个错字。

在已设置的其中一条线路上设置分析仪触发器,以便在线路传输上开始捕获。对于分析仪而言,一个接地也足够了。

由于MT_dialog

克克特林
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
你好,先生,

你好,先生,

所以我想我不确定P0_5在哪里。P0_4标注在板上,P0_5看不到。我猜P0_5引脚是P0_4对面的那个。从图片中,你可以看到,我有测试引线在P0_4和另一个测试引线在它对面的针上,就在跳线下面。我一直以为P0_4标签对面的pin是P0_5 pin。

如果你不介意的话,你可以拍一张你的电路板的照片,上面有测试引线。
谢谢,
--凯

mt_dialog.
离线
最后一次露面:6个月2个星期前
职员
加入:2015-06-08 11:34
嗨kqtrinh,

嗨kqtrinh,

请检查正确连接的附件。

由于MT_dialog

主题锁定