主题中讨论的其他器件:HALCOGEN
我能够对组0和组1中的闪存以及 EEPROM 进行编程、但无法对 OTP 进行编程。 我需要启用哪一个银行、0、1或7 (似乎都与此无关)? 我需要启用一些扇区、还是足够使用 Fapi_enableBanksForOtpWrite? 我没有找到对 OTP 进行实际编程的示例。 我有一个示例吗?
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.
我能够对组0和组1中的闪存以及 EEPROM 进行编程、但无法对 OTP 进行编程。 我需要启用哪一个银行、0、1或7 (似乎都与此无关)? 我需要启用一些扇区、还是足够使用 Fapi_enableBanksForOtpWrite? 我没有找到对 OTP 进行实际编程的示例。 我有一个示例吗?
尊敬的 Darryl:
它与仅进行组写入类似、但不同之处在于 、您无需在写入之前进行任何先初始化或擦除操作。
我从来没这么做、但据我了解、您可以直接向"Fapi_issueProgrammingCommand"提供 OTP 区域地址和数据。
但是、在写入 OTP 区域时、您必须确保以下内容:
1.如果您进行写入以对客户 OTP 进行编程、请确保您没有错误地写入 AJSM (高级 JTAG 安全模块)的位置(0xF0000000-0xF000000F)、 因为这 会锁定器件。 您可以写入从地址0xF0000010开始的数据。
尊敬的 Darryl:
使用以下线程创建了一个示例项目:
(+) CCS/RM46L852:OTP 编程-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
我成功地写入了客户 OTP、这里是我的项目:
e2e.ti.com/.../Customer_5F00_OTP_5F00_Write_5F00_Test_5F00_LC4357.zip
--
谢谢。此致、
Jagadish。
1.根据项目的 HalCoGen 文件、你运行在300MHz 上、但是 SYS_CLK_FREQ 被设定为150。 对 OTP 的写入速度过快是否存在问题?
2.我的代码正在150MHz 运行,如果我使用您的示例代码,它会在 Fapi_Initialize Banks(150 )中挂起。 如果我改为指定75MHz、则对 OTP 的写入有效、但代码在等待 Fapi_Status_Fsm 45y 时挂起。 是否有一些其它匹配 tor OTP 的 HalCoGen 设置?
尊敬的 Darryl:
1. 根据您项目的 HalCoGen 文件、您在300MHz 上运行、但是 SYS_CLK_FREQ 被设定为150。 对 OTP 的写入速度太快是否存在问题?
Fapi_initializeFlashBanks 函数的参数是 HCLK 频率、而不是 GCLK 频率。
因此、我通过了150摄氏度的测试。
2. 我的代码在150MHz 运行、如果我使用您的示例代码、它会在 Fapi_Initialize Banks(150 )中挂起。 如果我改为指定75MHz、则对 OTP 的写入有效、但代码在等待 Fapi_Status_Fsm 45y 时挂起。 是否有其它一些与 tor OTP 匹配的 HalCoGen 设置?
您应该传递 HCLK 频率。
--
谢谢。此致、
Jagadish。
为了重新迭代#2, 我的代码正在150MHz 运行,如果我指定75MHz (HCLK 频率),则对 OTP 进行写入工作,但代码会挂起。 实际上结束在未定义的指令陷阱中、但 OTP 被写入。 使用另一个示例中的这些函数、闪存编程代码从 RAM 运行
_APIcopy2RAM_(&apiLoadStart、&apiRunStart、&apiLoadSize);
_copyAPI2RAM_(&constLoadStart、&constRunStart、&constLoadSize);
我能够在 Bank0和 Bank1以及 EEPROM 部分对代码闪存进行编程、不会有任何问题。 未使能 MPU。 访问 OTP 还需要执行其他操作吗?