TI中文支持网
TI专业的中文技术问题搜集分享网站

DSP28377D修改OTP寄存器为SCI BOOT1以后,上电无法默认FLASH启动

  1. 芯片型号:F28377D
  2. 我需要使用SCI来烧写更新程序,更新完后还是需要每次上电从flash启动
  3. 通过复位时GPIO72置0,GPIO84置1,可以实现默认的SCI-BOOT0也就是IO84和IO85当做串口的烧写
  4. 但是我们希望使用SCI-BOOT1,也就是io28和IO29当做串口的烧写
  5. 我使用仿真器连接板子,通过仿真器修改0xD00的EMU-BOOTCTRL寄存器为0X0000815A,当复位时使GPIO72置0,GPIO84置1,实现了用IO28和IO29的SCI烧写,也就是SCI-BOOT1。
  6. 然后我考虑实现standalone的情况,于是我用CCS8.0的的ON-CHIP FLASH 工具烧写了Z1-BOOTCTRL为0X0000815A ,OTP写完后,发现重新上电时,即使IO84和IO72都是1,也不能进入flash运行了,而且此时当复位时使GPIO72置0,GPIO84置1,通过IO84和IO85当做串口还是可以烧写,而Z1-BOOTCTRL改成0x815A应该是用IO28和IO29作为串口,请教一下我是哪个步骤出错了?
  7. 我要实现第2条的目标应该怎样操作?谢谢

Green Deng:

这里需要确认一下,你的Z1-BOOTCTRL寄存器之前是否有过写入操作?因为该寄存器是写入OTP的,所以只能支持一次性写入。后续再次写入是无效的

,

user5039443:

之前是没有写过Z1-BOOTCTRL寄存器的。

,

da qin zheng sheng:

flash能不能擦除

,

user5039443:

用仿真器可以正常烧写,可以擦除flash。

,

da qin zheng sheng:

读这个寄存器看看写成功了没有。

,

da qin zheng sheng:

串口bootloader还是出厂默认的方式,没有变化,为啥要改?c2000的坑是非常可怕的。

,

da qin zheng sheng:

还是双核的

,

user5039443:

读出来是FFFF815A

,

user5039443:

主要是默认的IO85用作EM1D了,因为这个烧写串口到时候要引到机壳外面,距离比较长,大概50cm,担心对EM1D数据线干扰太大,影响EMIF通信。不知道是不是我多虑了

,

da qin zheng sheng:

应该可以把前边的0xffff815a写成0x0000815a

,

user5039443:

我当时烧的时候是按照0x0000815a写的,但是好像读出来就成了0xFFFF815A了,现在我试了下再写不进去了。

,

da qin zheng sheng:

先不写,你把官方手册这个寄存器的说明图片传上来。

,

da qin zheng sheng:

0xffff应该是可以的,按字节写,写两次。

,

da qin zheng sheng:

long,short,char三种存储方式

,

user5039443:

分两次写是怎么写?

,

da qin zheng sheng:

不是这个寄存器,这个只能读。

,

user5039443:

对,OTP的寄存器,只能写一次,请教一下这个OTP寄存器咋读呢,直接用on-chip-FLASH读吗?好像也读不出来啊

,

da qin zheng sheng:

你可以读这个寄存器试试。

,

user5039443:

用expression里,读这个寄存器是对的,是我写 进去的0x0000815A,那我写的没问题。

,

da qin zheng sheng:

你写的0x815a数据不准确,因此不能从
运行。

,

user5039443:

是哪里错了呢,BMOAD 是0x81是SCI-BOOT1, KEY是0x5A 前面的PIN选择都是0 为默认的IO

,

user5039443:

你好,非常感谢你的答复,我反复重新上电,现在正常了,上电后直接就进入sci boot1模式了,用io28 和io29能够烧写两个cpu内核,那现在问题就是,我烧写完以后,下一次上电如何再回到flash boot呢,BOOT引脚11的时候进入的是get模式,如果配置了BOOTCTRL 的KEY为5A,那么就按照BOOTCTRL的BMODE设置去引导了,每次上电都按照sci boot1模式去引导,那我们该怎么回到下一次上电是flash boot呢?我开始以为BOOT引脚01就是SCI,11就是FLASH,那现在看起来设置了BMODE ,11也走SCI了。

,

user5039443:

感谢答复,我反复试了一下,现在这个BOOTCTRL寄存器0x0000815A是正确的,我实现了IO28和IO29的烧写,但是现在问题是每次上电都是要进入SCI-booT,导致计时BOOT引脚为11时也是这样,我看了下规格书这个应该是KEY=0x5A的缘故,那我想要实现 BOOT引脚01时进入SCI boot模式,11时进入flash boot。那是不是我不应该写BOOTCTRL为0X000081FF,让KEY不等于0x5A:

这样: A1 按照规格书 BOOT 引脚为01时进入 SCI模式

   A2 进入SCI模式 由于修改了BMODE为0x81,那么此时的SCI模式为SCI BOOT1 而不是默认的SCI BOOT0

   B1  按照TRM,当BOOT引脚为11时进入get模式

   B2  进入GET模式,但是KEY不等于0x5A,那么直接进入flash 模式

不知道我的理解是否正确,请指教

,

Green Deng:

你是用的同一块芯片做测试的吗?如果是同一块芯片的话,Z1_BOOTCTRL寄存器是写入OTP的,也就是说只能进行一次性写入。你后续写入的非0x5A实际是无效的

,

user5039443:

 你好,我换了一个新的板子,我这次只写了Z2-BOOTCTRL寄存器,写为0X000081FF,BMODE=0x81,KEY=0XFF,这样是不是就能够实现BOOT mode=1的时候进入SCI mode,而BMODE=0x81,那么就进入了SCI-boot的1模式,而BOOT mode=3时,由于KEY不等于0x5A,那么就直接进入FLASH模式了?

但是我这样实验下来,BOOT mode=3进入flash没有问题,但是BOOT mode=1进入的还是SCI-boot的0模式,还是用的IO84和85下载,这是为什么呢?是不是BOOT mode=1的sciboot模式只支持SCIboot0,而不支持sciboot1?

赞(0)
未经允许不得转载:TI中文支持网 » DSP28377D修改OTP寄存器为SCI BOOT1以后,上电无法默认FLASH启动
分享到: 更多 (0)