主题中讨论的其他器件: TMS320F2808、 TMS320F28069、TMS320F280039C、 C2000WARE
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Matthew、您好!
我修复了 COMM4错误、然后进入下一步。
另一个错误显示:
加载 DLL C2000-Gang.dll 操作成功。
C2000GANGInitCom COM4操作成功。
C2000GANGDefaultConfig 操作成功。
C2000GANGSetMCUName TMS320F2808操作成功。
C2000GANGSetConfig (sett) 200ms 操作成功。
C2000GANGSetConfig (TarEn) 1操作成功。
C2000GANGSetConfig (OSC) 20.000 MHz 操作成功。
C2000GANGReadCodeFile ..\Lib\Demo-F2808.txt 错误355:打开文件错误
分离 DLL 操作成功。
尊敬的 MattewRate:
以下是我们使用终端运行两个测试示例时复制的日志:
1) C:\>"C:\Program Files (x86)\Texas Instruments\C2000-Gang\examples\Output\C-DLLtest.exe"
C2000Gang DLL:C 语言的应用示例
加载 DLL C2000-Gang.dll 操作成功。
C2000GANGInitCom COM4操作成功。
C2000GANGDefaultConfig 操作成功。
C2000GANGSetMCUName TMS320F2808操作成功。
C2000GANGSetConfig (sett) 200ms 操作成功。
C2000GANGSetConfig (TarEn) 1操作成功。
C2000GANGSetConfig (OSC) 20.000 MHz 操作成功。
C2000GANGReadCodeFile ..\Lib\Demo-F2808.txt 错误355:打开文件错误
分离 DLL 操作成功。
2)当我们单击 Cpptest.exe 时, C:\Program Files (x86)\Texas Instruments\C2000-Gang\examples\Output\cp-DLLtest.exe", 显示:
C2000-GANG GANG 编程器已连接。
C2000Gang_InitCom 操作成功。
C2000Gang_C2000TM Default_Config 操作成功。
C2000Gang_Set_MCU_Name 错误344:连接了错误的目标器件!
C2000Gang_SelectImage 操作成功。
C2000Gang_EraseImage 操作成功。
C2000Gang_C355 Load_Image_File 错误:打开文件错误
3)同时、C2000-GANG 编程器表示:
图像11
完成...
大家好、MatthewRate:
我们尝试过、现在似乎每一步都显示出成功。
1) 1)那么我们如何使用此 example.exe 来刷写我们的映像?
2)我们应该把我们的图像文件放在哪个不应该。 现在我把我们的图像文件放在第1和第10号
3) 3)因为我们的产品 IC 的名称是"F28069"、而不是"F2808"。 我们是否需要更改将所有 F2808替换为 F28069的源代码?
感谢您的支持、期待您的快速回复。
此致、
猎豹
大家好、MatthewRate:
您 PCB 上连接到 F2808 MCU 的外部晶体/振荡器的频率规格是多少? ==>您知道如何检查吗?
实际上它说"8获取 PIL 状态: pil freq err 失败! 勘误70。" 当我刷写自己的 FW 时、在我们试用了 simpleC2000Gang.exe
会这样吗、因为在 example.exe 被设定为 F2808MCU 时、我的 PCB 是 F28069MCU?
此致、
猎豹
Cheetah、
对于具有内部0引脚振荡器的器件、Gang 将始终使用该引脚对闪存进行编程、因为它是已知频率并且不依赖于正确输入的外部 X-tal 值。 F2802x 之后的几乎所有器件(包括您拥有的 F2806x)都具有该特性。 因此、Gang 会将其变灰、因为没有理由使用其他时钟、即使该时钟存在于您的 PCB 上(这仅用于闪存编程)也是如此。
/--- globals -------------------------------------------------------------- // #define ComPort "COM4" #define DLL_C2000 "C2000-Gang.dll" #define Baudrate 115200 #define FileName "..\\Lib\\Demo-F2808.txt" #define DeviceType "TMS320F2808" #define TargetOSCkHz 20000 //value in kHz. Must be present for DSP without internal generator #define SettleTime 10 //Settle Time in multiples of 20ms //#define TargetEn 0xFF //enable all 8 targets #define TargetEn 0x01 //enable only first target #define ERR_NO_DLL 100 #define ImageName "DLLtestC" //Name to be shown on Programmer #define ImageIndex 10 //Index to be used for image on Programmer - 0..15 #define StartSerNum 0x12345678 #define SerNumAddress 0x3E8000
您应该在 DLLTest.c 的开头附近看到上述代码、您应该修改 COM 端口以匹配 C2000-GANG GUI 上显示的 COM 端口、器件类型将从"TMS320F2808"更改为"TMS320F28069"、并且您想要加载的文件/图像将替换"..\Lib\\Demo-F2808.txt"文件
此致!
马修
您好、MathewRate:
感谢您的答复、但我刚刚看到。 我再试一次、让您知道结果。 但昨天、我尝试将20MHz 更改为10MHz 、这是日志、但 PLL 错误仍然存在。
让我来向您展示我的 log.txt
C:\c2000-Gang\examples\Output> C-DLLtest.exe
C2000Gang DLL:C 语言的应用示例
加载 DLL C2000-Gang.dll 操作成功。
C2000GANGInitCom COM4操作成功。
C2000GANGDefaultConfig 操作成功。
C2000GANGSetMCUName TMS320F2808操作成功。
C2000GANGSetConfig (sett) 200ms 操作成功。
C2000GANGSetConfig (TarEn) 1操作成功。
C2000GANGSetConfig (OSC) 10.000 MHz 操作成功。
C2000GANGReadCodeFile ..\Lib\Demo-F2808.txt 操作成功。
C2000GANGCreateGangImage DLLtestC 操作成功。
C2000GANGSelectImage 10运行成功。
C2000GANGEraseImage 操作成功。
C2000GANGLoadImage 操作成功。
C2000GANGVerifyImage 操作成功。
C2000GANGMainProcess 分析如下:
具体目标1-2-3-4-5-6-7-8
成功0 0 0 0 0 0 0 0 0
============================
启用1 0 0 0 0 0 0 0 0
已连接1 0 0 0 0 0 0 0
擦除0 0 0 0 0 0 0 0 0
空白检查0 0 0 0 0 0 0 0 0 0
编程0 0 0 0 0 0 0 0 0
验证0 0 0 0 0 0 0 0 0
安全0 0 0 0 0 0 0 0 0
VCC 错误0 0 0 0 0 0 0 0 0
JTAG init err 0 0 0 0 0 0 0 0
保险丝预熔断0 0 0 0 0 0 0 0 0 0
MCU 类型错误0 0 0 0 0 0 0 0 0
完成
C2000GANGReleaseCom 运行成功。
分离 DLL 操作成功。
程序成功完成-
Matthew、您好!
我按你告诉我的那样尝试、但在运行时出现 Open File Error。
C:\c2000-GANG \examples\Output>C:\c2000-GANG \examples\Output\C-DLLtest.exe
C2000Gang DLL:C 语言的应用示例
加载 DLL C2000-Gang.dll 操作成功。
C2000GANGInitCom COM4操作成功。
C2000GANGDefaultConfig 操作成功。
C2000GANGSetMCUName TMS320F28069操作成功。
C2000GANGSetConfig (sett) 200ms 操作成功。
C2000GANGSetConfig (TarEn) 1操作成功。
C2000GANGSetConfig (OSC) 10.000 MHz 操作成功。
C2000GANGReadCodeFile ..\Lib\Demo-F28069.txt 错误355:打开文件错误
分离 DLL 操作成功。
程序已中止-
C:\c2000-gang\examples\Output
还有一个迹象表明、
您能帮助提供进一步的说明吗?
此致、
猎豹
Matthew、您好!
感谢您的时间和耐心 与非凡的指导!
大家好、MatthewRate:
感谢您投入宝贵的时间给予指导。 我们对您的建议非常认真考虑,对此我们有两个问题:
1) 1)对于#you 将需要在启用 hex 实用程序的情况下构建您的 CCS 项目。 如果您右键单击项目并选择"属性",我已在其中截取了启用此功能的屏幕截图。#=== >您是说我们使用从 CCS 生成的十六进制文件来替换 C-DLLtest.exe 中的"Demo-F28069.txt"吗? 我对吗?
2)对于#youer,需要将 romwidth 设置为16,并将输出格式设置为 intel_hex (如下所示)#=== >这是否有助于修复 PLL 错误?
向你和你宝贵的时间表达我最诚挚的谢意。
此致、
猎豹
1)对于#YOU、您将需要在启用十六进制实用程序的情况下构建您的 CCS 项目。 如果您右键单击项目并选择"属性",我已在其中截取了启用此功能的屏幕截图。#=== >您是说我们使用从 CCS 生成的十六进制文件来替换 C-DLLtest.exe 中的"Demo-F28069.txt"吗? 我对吗?
是
2)对于#YOU,您需要将 romwidth 设置为16并将输出格式设置为 intel_hex (如下所示)#=== >这是否有助于修复 PLL 错误?
不可以、这只是以正确的格式获取 hex 文件的正确设置。
让我再次回顾一下 DLL 设置、看看我是否可以在本地重现此问题。
此致!
马修
Matthew、您好!
很开心!
我们在我的客户端提供原始 hex 文件后执行该操作、现在可以通过 DLLtestC 将其刷写到客户端的 FW 中。
但当完成 FW 闪存时、程序会显示"Error41"、尽管终端日志显示"Program Successful completed"。
反正,它至少可以帮助吃。 感谢您为我们的团队和我的案例所做的一切。 谢谢 Matthew。
此致、
猎豹
Matthew、您好!
感谢你的评分 除勘误41之外、我发现了一个更重要的风险。
我发现由我们的 ATE 软件获取的新映像与原始 FW 映像具有不同的校验和与存储。
因为图像存储从初始268.5KB 更改为265.5KB。 我使用这个较小的映像手动刷写 FW、不会出现 PLL 错误。
因此、可能在我使用 ATE 软件后图像中的某个内容发生了变化。
您知道支票复制和存储收款的原因、以及我们如何将其放回? 谢谢!
此致、
猎豹
Cheetah、
如果十六进制文件相同、则应是进行编程的相同映像。 仅当使用不同版本的代码生成工具(CGT)编译源项目时、我才看到文件大小/校验和差异。 当使用较新版本的 CCS 编译工程时、与最初创建工程时相比、通常会发生这种情况。 您可以手动更改 CCS 使用的 CGT 版本以便使内容相同、但我们需要知道哪一个是原始 CCS 版本。
但是、您提到了提供给您的团队的所有内容是 hex 文件(不是源代码)、这是正确的吗? 如果十六进制文件相同、则大小和校验和不应更改。
我不清楚您所说的 PLL 在手动刷写时不工作/无法正常工作的含义。 您是说、对于非自动化 C2000-GANG 还是对于 CCS 和 JTAG?
此致!
马修
Matthew、您好!
非常感谢您为我们提供的真诚帮助。
对于不同的校验和问题:
1) 1)如果十六进制文件相同、则应是进行编程的相同映像。 =>实际上我们从我的客户机得到的是一个 gangbin 文件和一个 gangimage 文件,所以我不能比较最终的工作 hex 与初始 gangbin 文件和 gangimage 文件是相同的,因为它们是不同的文件形式。
2) 只有在源项目使用不同版本的代码生成工具(CGT)编译时,我才看到文件大小/校验和的差异。==>我的客户说:我们可以确认您十六进制代码是从相同的源生成的。
3) 3) 您可以手动更改 CCS 使用的 CGT 版本以便使内容相同、但我们需要知道原始 CCS 版本是哪一个。==>我可以复制该部分让我的客户端给我们试用一下吗?
4)但是、您提到了提供给您的团队的所有内容是 hex 文件(不是源代码)、这是正确的吗? 如果 hex 文件相同,那么大小和校验和不应该改变。==>是的,我的客户似乎不可以提供用于隐私的源代码。
==>>>我列出了两个固件映像的对比信息,如下所示:
FW 名称 (在 C2000-GANG 编程器上显示) |
XX_XX_PCON_1234 (19D2) |
XX_XX_PCON_1234 (F81B) |
生成的方法 |
通过将组合映像加载到编程器中 |
通过读取十六进制代码文件并创建 Gang 映像 |
源 |
由我的客户提供 |
C-DLLtest.exe |
原始文件 |
XX_XX_PCON_1234_combin.c2000gangbin/ XX_XX_PCON_1234_combined.c2000组图像 (创建时间:2023年9月11日17:00) |
XX_XX_PCON_1234_组合式 ti_hex (创建时间 :2023年9月11日16:38) |
刷写 DUT 的方法 |
仅手动闪存 |
ATE SW 闪存+手动闪存 |
支持手动闪存 |
N (C2000-GangProgrammer 显示 PLL 错误) |
y |
表单 |
缠绕管 |
? |
校验和 (在 C2000-GANG 编程器上显示) |
19d2 |
F81B |
存储 (在 C2000-GANG GUI 上显示) |
268.5K 个字节 |
265.5K 个字节 |
SW 版本 (可通过 GUI 读取) |
1、2、3、45 |
1、2、3、45 |
对于 C2000GangProgrammer、显示 PLL 错误:
5)我不清楚你的意思是 PLL 不工作/工作时手工闪存. 您是说使用非自动化 C2000-GANG 还是使用 CCS 和 JTAG?=>很抱歉、当我 选择从客户端提供的 FW 映像 XX_XX_PCON_1234 (19D2)时、C2000-Gang 编程器(以 C2000GangProgrammer 为旧的开头)上会出现错误警告、并且无法成功刷写。
此外、我还购买了一个全新的 C2000GangProgrammer (以 C2000GangProgrammer 为新格式)、并将客户端提供的映像 XX_XX_PCON_1234 (19D2)放入其中、闪存中、仍然会有 PLL 错误警告、无法刷写。 可能是因为 MCU 曾经出现过这样的问题、我将尝试应用一个 新的 MCU 芯片、并对两个 C2000GangProgrammers、即旧的和新的进行进一步验证。
此致、
猎豹
Cheetah、
我将回答另一个回复中的最后一个问题、但首先我想解释代码生成工具等。
您可以要求客户查看保存 CCS 项目(原始项目)用于 CCSPROJECT 文件的目录。 他们可以使用文本编辑器打开此文件、它将提供如下所示的项目信息。 他们需要查找的是 用于原始构建的"codegenToolVersionValue"。 获得此构建版本后、我可以找到此构建版本、并将 CGT 返回到此处、然后给出有关如何告知 CCS 在哪里可以找到它等的说明。
如果我们使用与使用的 CGT 相同版本进行编译、那么无论使用的 CCS 版本如何、输出的十六进制/二进制值都将匹配。
此致!
马修
所有、
只是想对调试结果进行回复。
q1) PLL 锁定、编程问题等。 这与 Gang 图像是一种较旧的格式而不是 Elprotronic 当前的工具有关。 当我们将所有内容更新到最新的 FW 版本、并从原始十六进制文件重新创建 Gang 映像后、工作正常。
Q2) GANG GUI 校验和。 仅供参考、主 Gang GUI 中列出的校验和包括编译时间/日期、作为校验和的一部分。 因此、即使您的源二进制相同、此特定校验和也会根据这些其他变量而变化。 这是为了使转换为 Gang 映像文件的二进制文件具有更好的可跟踪性。 在这种情况下,不同的校验和不一定表示编程到闪存中的值是不同的。
此致!
马修