自定义SPI Flash应用程序和jtag_programmer

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

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

作为我们希望一个闪存编程UI可以自动化一些东西,无需用户必须知道闪存的每个区域的偏移地址,应该存储除DA应用FW之外的数据。使用SS,用户必须知道偏移地址位置以闪烁一段数据以进行FW消耗。

接着就,随即,

1.在我们的自定义UI中编写SPI Flash编程SS的子集需要什么?
2. SS SPI Flash编程和JTAG_PROGGROMMER之间的协议是什么?

谢谢,
——潘文凯

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

嗨kqtrinh,

1.flash_programmer项目接受一系列命令(你可以在programder .c文件中找到这些命令),所以当你按下连接按钮(和程序员fw下载
您的580)的智能片段UI经由UART或VIA JTAG或者发送这些命令。因此,在“需要做些什么”的问题更多functionallity你需要定义额外的命令
并实现了相应的函数。

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

  • [ |<操作码(8个比特)|地址(32个比特)|长度(16位)|数据>]所述第一48位是标题部分和所述消息的其余部分是消息部分。
    • 例如,从UART接口读取的SPI是下面的包
      Len(16位) CRC(32位) op代码 地址(32位) 长度(16位)
      0x00 0x07 标题部分的CRC 0x90(programmer.c文件中的action_spi_read) 0×00 0×00 0×00 0×00(地址读取) 数据的量来读取
    • 而回应将是。
      Len(16位) CRC(32位) 地位 数据
      0x01 +数据长度 CRC. 0 x82(行动内容) 读取数据

由于这未记录,并且没有可用的应用程序注意(因此创建的工具原样),编写自定义应用程序的最佳方式是通过逻辑分析仪探测两个设备之间的通信要捕获并复制应用程序上的命令。

谢谢mt_dialog.

kqtrinh
离线
最后一次露面: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 34
嗨kqtrinh,

嗨kqtrinh,

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

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

谢谢mt_dialog.

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

太,

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

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

谢谢,
——潘文凯

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

太,

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

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

太,

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

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

太,

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

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

嗨kqtrinh,

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

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

Len(16位) CRC(32位) opcode. 地址偏移(32位) 长度(16位) 数据(长×8位)
0x07 +长度你的箱子 CRC. 0 x91 地址 长度 数据

Len(16位) CRC(32位) 状态(8位) 错误代码(32位)
0x01 CRC. 0×83(ACTION_OK)或的0x84(ACTION_ERROR) 额外的错误代码-仅当状态设置为ACTION_ERROR

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

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

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

谢谢mt_dialog.

kqtrinh
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
嗨太,

嗨太,

您不断提到的上述闪存格式读/写/擦除请求是针对UART连接,岂不是为JTAG连接一样吗?如果不是,那么请你也提供了JTAG闪光功能?

谢谢,
——潘文凯

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

太,

ERASE的格式看起来是错误的。我说,因为flash_programmer不需要知道地址和长度的字节在flash中被擦除?协议消息不包含这些。你能澄清一下吗?在我的DA应用FW中,我为不同的数据定义了flash中的其他区域,因此它们需要被更新或删除。

谢谢,
——潘文凯

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

嗨kqtrinh,

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

记忆偏移 请求内存内容 响应内存内容
ACTION_OFFSET 0 x90 (ACTION_SPI_READ) 0 x00 (NO_ACTION)
SIZE_OFFSET 数据长度 数据长度
address_offset. 地址 地址
RESULT_OFFSET 不在乎 0 x82 (ACTION_CONTENTS)

记忆偏移 请求内存内容 响应内存内容
0. 不在乎 DATA0
1 不在乎 data1.

写过JTAG的写作

记忆偏移 请求内存内容 响应内存内容
ACTION_OFFSET 0 x91 (ACTION_FLASH_WRITE) 0 x00 (NO_ACTION)
SIZE_OFFSET 尺寸 尺寸
address_offset. 内存地址 内存地址
RESULT_OFFSET 不在乎 0 x83或0 x84
error_offset. 不在乎 错误代码(32位) - 只有当结果是ACTION_ERROR

记忆偏移 请求内存内容 响应内存内容
0. DATA0 DATA0
1 data1. data1.

对于删除JTAG:

记忆偏移 请求内存内容 响应内存内容
ACTION_OFFSET 0x92(ACTION_FLASH_ERASE) 0 x00 (NO_ACTION)
SIZE_OFFSET 不关心 不关心
address_offset. 不关心 不关心
RESULT_OFFSET 不关心 0 x83或0 x84
error_offset. 不关心 错误代码(32位) - 只有当结果是ACTION_ERROR

自从我认为,自我提到的情况下,我提到了UART,因为我更容易地附加分析仪并跟踪两个设备(580和智能片段工具之间的通信,因为我提到的,所以没有文件,所以我正在做完全相同的事情为了报告“协议”。在UART线路上,我没有看到删除过程的其他标题,可以附加分析仪并验证它,但智能片段向SPI发出擦除命令,它不会写入0xFF以删除它。我想你想要spi_erase_block命令/响应而不是spi_erase,即:

Len(16位) CRC(32位) op代码 地址(32位) 部门(16位)
0x07 CRC. 0 x94 地址 N

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

谢谢mt_dialog.

kqtrinh
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
嗨太,

嗨太,

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

所以,按照你的指导方针来生成发送到580的读/写/擦除消息对我不起作用。我想是时候用逻辑分析仪来检测电路板了。你能告诉我检查UART交通的哪些pin码吗?现在,单板在UART配置中被跳转(J4和J6之间有两个3脚跳线)。

你可以给我,详细的说明,你可以给可能的,因为我可能要起床速度使用逻辑分析仪来检查UART通信。我不是很方便与它在所有。

谢谢,
——潘文凯

kqtrinh
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
嗨太,

嗨太,

我能把flash_programmer放在Keil IDE的调试模式中吗?我在flash_programmer.c源文件中看到了一个标志DEVELOPMENT_MODE,表明它是用于调试的。你能给我一些建议和调试指令吗?我想看到当我从SS或我的自定义UI发送协议命令时,它将触发flash_programmer中的断点。这将是理想的。

谢谢,
——潘文凯

kqtrinh
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
把这个从

切割并与programmer.c文件粘贴此。不知道这意味着什么。

#定义UART_PIN_PAIR 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;
# endif

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

嗨kqtrinh,

是的,您只能将程序员纳入580.您可以连接到智能代码段(打开智能代码段转到Flash Programmer选项卡,然后按下Connect按钮以进行激活的智能片段)。在做完之后,比打开flash_programmer项目,编译并下载FW。之后,当从智能片段加热按钮时,工具将运行并发送数据,并且您将能够捕获命令,我相信这只是通过UART选项工作,因为我不认为你将能够能够通过JTAG调试和连接。

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

#定义UART_PIN_PAIR 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.

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

太,

谢谢(你的)信息。因此,在凯尔,我因为没有优化的优化选项设置为0,这样我就可以一步直通代码并设置断点。当我选择了该选项,然后重新编译代码,我得到了以下错误:选择O1不会让我插入任何破发点(灰色)

*** Using Compiler 'V5.06 update 3 (build 300)', folder: 'C: Development\Embedded\Keil\ARM\ARMCC\Bin'
构建目标'programmer_jtag'
编译CRC32.c ...
compling system_cmsdk.c ...
编译外围设备......
编译otpc.c……
编译UART.c.
编译i2c_eeprom.c.
编译spi_flash.c……
编译spi.c……
编译gpio.c……
编译程序员......
链接......
\ Out_jtag \ jtag_programmer。axf:错误:L6406E:执行区域没有空间与。any选择器匹配spi.o(.text)。
\ Out_jtag \ jtag_programmer。axf:错误:L6406E:执行区域没有空间与。any选择器匹配periphers .o(.text)。
\ Out_jtag \ jtag_programmer。axf:错误:L6406E:执行区域没有空间与。any选择器匹配otpc.o(.text)。
\ Out_jtag \ jtag_programmer。axf:错误:L6406E:执行区域没有空间与。any选择器匹配system_cmsdk.o(.text)。
\ Out_jtag \ jtag_programmer.axf:错误:L6406E:与.ANY选择匹配spi_flash.o(.constdata)中执行区中没有空间。
。\ out_jtag \ jtag_programmer.axf:错误:l6406e:没有执行区域的空格.any选择器匹配UIDIV.O(.text)。
。\ out_jtag \ jtag_programmer.axf:错误:l6406e:匹配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_jtag \ jtag_programmer。axf:错误:L6406E:执行区域没有空间与。any选择器匹配uart.o(i.__ARM_common_switch8)。
\ Out_jtag \ jtag_programmer.axf:错误:L6407E:聚集体尺寸0x54c字节切片无法配合到.ANY选择(一个或多个)。
没有足够的信息来列出图像符号。
没有足够的信息来列出影像地图。
表面处理:2的信息,0警告和11个的错误消息。
”。\ Out_jtag \ jtag_programmer。axf" - 11错误(s), 0警告(s)。
目标未创建。
建立时间过去:00:00:01

我该如何克服这个问题?
谢谢,
——潘文凯

mt_dialog.
离线
最后一次露面:6个月2周前
职员
加入:2015-06-08 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.

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

谢谢您的指导。我现在可以用-o1构建。然后我收到了这个错误:

*** Using Compiler 'V5.06 update 3 (build 300)', folder: 'C: Development\Embedded\Keil\ARM\ARMCC\Bin'
重建目标'programmer_uart'
组装startup_CMSDK_CM0.s ...
compling system_cmsdk.c ...
编译CRC32.c ...
编译外围设备......
编译otpc.c……
编译UART.c.
编译i2c_eeprom.c.
编译spi_flash.c……
编译spi.c……
编译gpio.c……
编译程序员......
链接......
程序尺寸:码= 6584 RO-DATA = 240 RW-DATA = 1040 ZI-DATA = 33608
FromELF:创建hex文件…
构建后 - 用户命令#1:fromelf -bincombined --output =“。\ out_uart \ flash_programmer.bin”“。\ out_uart \ flash_programmer.axf”
“\ Out_uart \ flash_programmer.axf。” - 0错误(S),0警告(S)。
建立时间经过:00:00:02
加载 “C:\\ \\发展嵌入式\\ \\ DialogSemi SDK 5.0.4 \\ \\ DA1458x_SDK 5.0.4 \\ \\公用事业\\ flash_programmer \\ Out_uart flash_programmer.axf”
设置JLINK项目文件到 “C:\开发\嵌入式\ DialogSemi \ SDK 5.0.4 \ DA1458x_SDK \ 5.0.4 \公用\ flash_programmer \ JLinkSettings.ini”
* JLink信息:设备“CORTEX-M0”被选中。

JLINK信息:
-------------
DLL:V5.12f,编制2016 16时03分35秒5月17日
固件:J-链路OB-SAM3U128 V1编译2016年7月5日8点42分08秒
硬件:V1.00
S / N: 480056116

* JLINK信息:实测值SWD-DP与ID 0x0BB11477
* JLink Info: Found Cortex-M0 r0p0, Little endian。
* JLink Info: FPUnit: 4代码(BP)槽和0文字槽
* JLINK信息:CoreSight组件:
* JLink Info: 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信息:romtbl 0 [2]:fff03000,cid:b105e00d,pid:000bb00b fpb
romtableddr = 0xe00ff000

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

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

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

嗨kqtrinh,

转到“目标选项”,选择“工具”选项卡,在该选项卡中选择“使用外部工具对闪存编程”。

谢谢mt_dialog.

kqtrinh
离线
最后一次露面: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程序员在按下电路板上的重置按钮时会返回何种内容以触发它以下载数据闪存?

谢谢,
——潘文凯

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

嗨kqtrinh,

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

谢谢mt_dialog.

kqtrinh
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
嗨太,

嗨太,

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

谢谢,
——潘文凯

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

嗨kqtrinh,

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

谢谢mt_dialog.

kqtrinh
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
嗨太,

嗨太,

所以我也跟着特别是对握手协议的文档的-B-001文件表5从我的自定义Flash用户界面下载UART程序员。
- 我能够在随机继电器中获得0x02(有时我能在按下重置按钮后1秒后得到它。其他时候我几秒钟后才)
- 然后我向ROM代码发送了3个字节 - 使用UART程序员字节流的LSB和MSB的SOH
- 在等待ACK = 0x06或NACK = 0x15的循环中旋转。我完全没有回来了(我开始想知道文件仍然有效)。所以因为这个,我现在被困在没有能够向UART程序员下载到处理闪存擦除/读/写的。

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

你认为你可以帮助我做腿部工作运行启动代码和SPI Flash程序员通过逻辑分析仪?

谢谢,
——潘文凯

kqtrinh
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
我使用的P0_4和P0_5

顺便问一下,我使用57.6kbps的p0_4和p0_5以57.6kbps的讨论。此引脚配置与我用作基线的DSP应用程序FW中的相同。它也是Flash Programmer从SmartSnippet中下载所需的UART配置。

谢谢,
——潘文凯

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

嗨kqtrinh,

请在UART上附加下载Flash Programmer序列。

谢谢mt_dialog.

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

什么格式的文件是什么?似乎是二元的。如何查看呢?
谢谢,
——潘文凯

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

嗨kqtrinh,

这是一个。logicdata文件,你可以用saleae Logic 1 2 3软件打开这个文件。

谢谢mt_dialog.

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

太,

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

现在我开始怀疑,如果我的板J4跳线配置是错误的(即:只能下载代码,因为我可以和不能收到反馈从板的串行线。)我必须咬紧牙关,用逻辑分析仪查看协议。

附加是我当前的580 J4配置的快照。中间的2个黄色电线是连接UART闪存编程的3针跳线,而P0_4跳线适用于UART串行控制台输出。

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

谢谢,
——潘文凯

kqtrinh
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
很抱歉,图片附接。请

很抱歉,图片附接。请检查我的J4配置的图片看,如果你有任何建议的情况下,这是错的。

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

嗨kqtrinh,

下载代码时的流量(UART_FLASH_PRIGHIGGR)在引脚P04和P05处,ATMEL处理器的RX和TX也充当JLINK。之后,如果您想观看SPI交易,您需要探测线索和MOSI(CLK和CS以解释数据)。默认情况下,智能片段的默认状态默认行为P05(MISO)/ P06(MOSI)/ P00(CLK)/ P03(CS)。板的配置似乎正常。

谢谢mt_dialog.

kqtrinh
离线
最后一次露面: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.按下板上的重置按钮
6.下载了UART程序员

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

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

嗨kqtrinh,

我想你想探测URX和UTX线,以检查下载程序,从连接的图片,我可以看到你在P04连接两个分析仪探头的(我不能够从图片来了解)。你将不得不探测P04和P05的(两个UART引脚)。此外,我假设是576000一个错字。

将分析器的触发器设置在您所设置的其中一条线路上,以便在线路传输时开始捕捉,而且对分析器来说,一个接地就足够了。

谢谢mt_dialog.

kqtrinh
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
嗨太,

嗨太,

所以我想我不确定p0_5那么。P0_4在电路板上标记,而无法看到P0_5。我猜测P0_5引脚是来自P0_4的一个。从图片中,您可以看到我在P0_4上有测试导线,并且在跳线下方从其右侧的另一个测试引线。我总是在印象中,从P0_4标签跨越PIN,是P0_5引脚。

如果你不介意,你能拍一张你的板和测试引脚的照片吗?
谢谢,
——潘文凯

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

嗨kqtrinh,

请检查正确连接的附件。

谢谢mt_dialog.

主题锁定