主题中讨论的其他器件: SEGGER、 DLPC350、 DLP4501、 DLP4500
工具与软件:
我们在尝试启动 DLPC6401时遇到问题。 在尝试解决问题时出现了几个问题。
- 在哪里可以找到 DLPC6401的 BSDL 文件?
- A21和 A22上用于64Mbit 闪存的正确下拉配置是什么?
- DLPC6401是否支持 Macronix MX29LV640ETXEI-70g NOR 闪存?
- 什么会阻止 INIT_DONE 变为高电平?
- 在哪里可以找到 DLPC6401 GUI 的 v 2.0?
关于(1)、数据表显示、"支持 JTAG 边界扫描测试"、但是这需要一个 BSDL 文件中的链定义。 我们已使用 Segger J-Link 通过 JTAG 成功连接至 DLPC6401、并且能够通过多个程序(urjtag、openocd、TopJtag 探针)读取制造商和器件 ID。 通过 JTAG 读取的制造和器件 ID 与 DLPC350相匹配、但这两个器件的引脚排列存在差异、因此我不确定是否可以选择使用 DLPC350的 BSDL。
关于(2)、数据表显示"在引脚 GPIO_16和 GPIO_17上分别共享两个最高有效地址位(即 PM_ADDR_22和 PM_ADDR_21)"和"如果要将这些 GPIO 引脚重新配置为程序存储器地址引脚、则需要板级下拉电阻器"。
然后是此表…
该参考设计下拉了 PM_ADDR_21和 PM_ADDR_22。 脚注是否只是重申需要下拉 PM_ADDR_21和 PM_ADDR_22、或者它是否指示也需要下拉 GPIO_35以选择64Mbit 器件? 本参考设计无用、GPIO_35和 GPIO_36未连接至任何对象。
数据表显示"在软件将引脚从 GPIO 重新配置为程序存储器地址之前、无法访问闪存的上部"。 这是由引导加载程序处理吗?
关于(3)、在2018年 Alex Le 的博文"DLPC6401:连接到 DLPC6401的闪存"中、Sanjeev 回复说:"如果控制器不支持特定的闪存器件、我们将无法使用它。" 该参考设计使用32 Mbit NOR 闪存。 原理图使用 Spansion/Cypress/Infineon S29JL032H、BOM 列出了 S29GL032N90TFIR04、但两者均未提供。 我们已选择64 Mbit NOR 闪存的 Macronix MX29LV640ETXEI-70g。 该器件能否正常工作? 在控制器支持的某处是否列出了器件?
引导加载程序是我们从 TI 获得的 DPP6401_APP_01.03.01_RVDS_3.1存档文件中的预编译二进制文件。 我们使用引导加载程序(DPP6401_APP_v1.3.1/dev/DPP6401/bootloader/bootloader.bin)和应用程序(DPP6401_APP_v1.3.1/dev/app6401/app6401_data/flash_afe1000)对闪存进行了预编程、但器件无法引导。 我们怀疑闪存的编程方法可能存在问题、因此我尝试使用 TI 的 JTAGFlashProgrammer 实用程序(DLPLCR4500JTAG_v1.0_win_2014_04_01.zip)对其进行重新编程。 我们为 MX29LV640ET 在 FlashDeviceParameters.txt 文件中添加了一个条目。 我尝试使用 FTDI C232HM 电缆而不是
我们从未看到 INIT_DONE 变为高电平。 在 PWRGOOD 变为高电平之前、电压轨全部正常、而 POSENSE 在 PWRGOOD 之后变为高电平。
关于(4)、我们主要是尝试确定处理器是否曾尝试读取闪存、但在将 INIT_DONE 设为高电平之前、不清楚控制器内发生了什么。
关于(5)、Sanjeev 在8月13日发布了一篇文章、回答 Alex Le 有关 DLPC6401所连接闪存的问题。在该文章中、他表示:"在电路板上放置可正常运行的闪存、然后使用 DLPC6401 GUI 版本- 2并对刷写器件进行实验。" 我们只能找到 GUI 的版本1。