自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之间的协议是什么?

谢谢,
- khai

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

嗨kqtrinh,

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

2.闪存编程的协议不记录,并是UART和JTAG相当不同,在一般的设备交换使用请求/响应方案UART下从智能片段发送的消息按照以下结构的数据。

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

由于未对此进行记录,并且没有可用的应用程序说明(创建该工具是为了按原样使用),因此在此基础上编写自定义应用程序的最佳方法是通过逻辑分析仪探测两个设备之间的通信,以便捕获和复制应用程序上的命令。

谢谢mt_dialog.

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

谢谢mt。

在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 UI中。如果JTAG模式是唯一可以用于访问SPI Flash的模式,则SS如何检测用户在用户时选择JTAG连接选择JTAG无线电?我附加一个快照图片以清楚起见。

谢谢,
- khai

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

嗨kqtrinh,

是的,USE_UART标志将程序员设置为UART模式(您可以在Keil中的下拉框中更改选项,以便为程序员构建UART,而不是为程序员构建jtag)。

打开SS时出现的对话框是用于选择要编程的设备和SS不仅仅是闪光灯之间的通用接口。所以,你可以以闪存程序选择UART模式,但这需要额外的跳线配置,则必须设置跳线的SPI配置也获得了P04针的跳线,并与UART引脚和SPI引脚连接P05(三路跳线)。

谢谢mt_dialog.

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

公吨,

谢谢你的澄清。
From SS Studio, I just realized SS will automatically pick jtag_programmer.bin when JTAG is selected and flash_programmer.bin when UART is selected.因此,选择UART时,USE_UART标志将变为真实。

我的问题是选择JTAG单选按钮时,所选择的数字480056116复选框。如何以及在哪里并不SS GET /读取这个数字?这是我的自定义用户界面将需要做同样的部分。你帮忙看一下到SS源代码,可以让我知道它是如何找到的JTAG连接?JTAG模式是我们想为自己的自定义硬件支持一下。

谢谢,
- khai

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

公吨,

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

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

公吨,

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

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

公吨,

被计算字节流的从操作码(8个比特)的CRC32 |地址(32位)|长度(16bits)|数据或距离数据?
谢谢,
- khai

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

嗨kqtrinh,

我没有智能片断的源代码,但我怀疑SS使用SEGGER工具和J-LINK指挥官,以便检查。

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

Len(16bits) CRC(32bits) opcode. 地址偏移(32位) 长度(16位) 数据(长度* 8bits)
0×07 +长你的bin CRC. 0x91 地址 长度 数据

Len(16位) CRC(32位) 状态(8位) 错误代码(32位)
0x01 CRC. 0x83(action_ok)或0x84(action_error) 额外的错误代码 - 仅当状态设置为action_error时

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

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

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

谢谢mt_dialog.

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

嗨MT,

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

谢谢,
- khai

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

公吨,

erase的格式看起来不错。我说,因为flash_programmer不需要知道要删除的闪光灯中的地址和长度?协议消息既不包含这些消息。你能澄清吗?使用我的DA应用程序FW,我确实在Flash中定义了不同数据的其他区域,因此需要更新或擦除。

谢谢,
- khai

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

嗨kqtrinh,

在JTAG模式后的功能是有点不同的(工具访问580的存储器直接在固定地址,以便与580进行通信)程序员定义的BASE_MEMORY和该命令对应的偏移和TARGET_MEMORY用于数据,所以协议比UART有点不同。例如,对于JTAG读取闪存将用于BASE_MEMORY地址和TARGET_MEMORY地址:

内存偏移量 请求内存内容 响应内存内容
action_offset. 0x90(action_spi_read) 0x00(no_action)
size_offset. 数据长度 数据长度
address_offset. 地址 地址
结果_offset. 不在乎 0x82(action_contents)

内存偏移量 请求内存内容 响应内存内容
0. 不在乎 data0.
1 不在乎 data1.

写过JTAG的写作

内存偏移量 请求内存内容 响应内存内容
action_offset. 0x91(action_flash_write) 0x00(no_action)
size_offset. 尺寸 尺寸
address_offset. 记忆地址 记忆地址
结果_offset. 不在乎 0x83或0x84
error_offset. 不在乎 错误代码(32bits) - 仅当结果是action_error时

内存偏移量 请求内存内容 响应内存内容
0. data0. data0.
1 data1. data1.

对于删除JTAG:

内存偏移量 请求内存内容 响应内存内容
action_offset. 0x92(action_flash_erase) 0x00(no_action)
size_offset. 不在乎 不在乎
address_offset. 不在乎 不在乎
结果_offset. 不在乎 0x83或0x84
error_offset. 不在乎 错误代码(32bits) - 仅当结果是action_error时

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

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

嗨MT,

非常感谢在获得读/写/擦除消息协议做肮脏的工作对我来说。我很欣赏您的支持。

因此,在生成发送到580的读/写/删除消息时,遵循指南的指导方针对我不起作用。我认为现在是时候用逻辑分析仪探测电路板了。你能告诉我哪个引脚检查UART流量吗?目前,电路板以UART配置跳转(J4和J6之间的两个3针跳线)。

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

谢谢,
- khai

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

嗨MT,

我可以在Keil IDE中实际将Flash_Programmer放在调试模式中吗?我在Flash_Programmer.code文件中看到了一个标志Development_Mode,指示它用于调试。你能建议并给我调试指令吗?我想看看什么时候从SS或My Custom UI发送协议命令时,它将触发Flash_Programmer中的断点。这将是理想的。

谢谢,
- khai

kqtrinh.
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
从中切和粘贴

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

#define 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
端口选择=UART引脚对;
#万一

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

嗨kqtrinh,

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

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

#define 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
公吨,

公吨,

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

***使用编译器'v5.06更新3(build 300)',文件夹:'c:\ development \嵌入\ 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选择匹配peripherals.o(的.text)执行区空间。
。\ out_jtag \ jtag_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:匹配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警告。
目标未创建。
建立时间过去:00:00:01

如何克服这个问题?
谢谢,
- khai

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

嗨kqtrinh,

-O1优化和灰显断点的原因是您正在构建jtag_程序员,而不是uart_程序员。如前所述,您将无法在jtag上运行jtag_程序员(调试数据和实际数据正在同一接口上传输)。因此,从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
THX为指令。一世

THX为指令。我现在可以用-o1构建。然后我收到了这个错误:

***使用编译器'v5.06更新3(build 300)',文件夹:'c:\ development \嵌入\ 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
从自己:创建十六进制文件......
构建后 - 用户命令#1:fromelf -bincombined --output =“。\ out_uart \ flash_programmer.bin”“。\ out_uart \ flash_programmer.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,小endian。
* jlink信息:fpUnit:4代码(BP)插槽和0个字幕插槽
* jlink信息:coresight组件:
* jlink信息:romtbl 0 @ E00FF000
* jlink信息:romtbl 0 [0]:fff0f000,cid:b105e00d,pid:000bb008 scs
* JLINK信息:ROMTbl 0 [1]:FFF02000,CID:B105E00D,PID:000BB00A DWT
* jlink信息:romtbl 0 [2]:fff03000,cid:b105e00d,pid:000bb00b fpb
romtableddr = 0xe00ff000

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

没有找到:20000000H - 20001EB7H的算法
擦除跳过!
错误:Flash下载失败 - “Cortex-M0”
Flash加载完成后在9点46分46秒

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

嗨kqtrinh,

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

谢谢mt_dialog.

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

嗨MT,

感谢您的指示,帮助我在调试UART程序员前进。我现在可以调试和看到智能片段在调试模式下的消息凹痕。

我有一个跟进的问题。当点击SPI Flash编程器的连接按钮,这究竟怎么办?点击连接按钮,直到在基板上的RESET按钮被按下未下载UART程序员。所以不应该有SPI闪存编程器和电路板或580 FW发生之间的握手。什么是按RESET按钮做正是呢?我也注意到SPI闪存编程器打印出一个“复位检测”时RESET按钮按下的消息,然后UART程序员将被下载。在此之后,闪存读取/写入/擦除功能,可以从SPI闪存编程行使。

我问这个问题的原因是,我可以模仿我的自定义UI中的过程,以防我应该编码任何握手。SPI Flash程序员在按下电路板上的重置按钮时会返回何种内容以触发它以下载数据闪存?

谢谢,
- khai

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

嗨kqtrinh,

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

谢谢mt_dialog.

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

嗨MT,

难道真的字节从ROM码为0x02值发出的1?我试着按下并没有什么回来后的复位按钮,在UART线主机端读取1个字节。这个循环10次1每秒,仍然一无所获。不波特率和东西需要在主机上进行同步并有望在启动代码这是什么交易可以从UART行读取的前?

谢谢,
- khai

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

嗨kqtrinh,

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

谢谢mt_dialog.

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

嗨MT,

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

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

你认为你可以帮助我做运行引导代码和SPI闪存程序员的腿部工作吗?

谢谢,
- khai

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配置。

谢谢,
- khai

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

嗨kqtrinh,

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

谢谢mt_dialog.

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

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

mt_dialog.
离线
最后一次露面:6个月2周前
职员
加入:2015-06-08 11: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闪存编程器和启动代码你送我之间的协议流量?

谢谢,
- khai

kqtrinh.
离线
最后一次露面:4年2个月前
加入:2016-08-24 00:17
对不起,附加图像。请

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

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

嗨kqtrinh,

下载代码时的通信量(UART_flash_编程器)位于引脚P04和P05处,ATMEL处理器的RX和TX也充当jlink。之后,如果您希望观察SPI事务,则需要探测线路MISO和MOSI(CLK和CS,以便分析仪解释数据)。在智能代码段的默认状态下,默认行为P05(MISO)/P06(MOSI)/P00(CLK)/P03(CS)。电路板的配置似乎还可以。

谢谢mt_dialog.

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

嗨MT,

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

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

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

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

嗨kqtrinh,

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

将分析器的触发器设置在您已经设置的一个线中,以便在线发射时启动捕获也是一个地面足以用于分析仪。

谢谢mt_dialog.

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

嗨MT,

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

如果你不介意,你能用销钉拍照你的电路板。
谢谢,
- khai

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

嗨kqtrinh,

请检查正确连接的附件。

谢谢mt_dialog.

主题锁定