TI论坛
直播中

朱虹博

8年用户 230经验值
私信 关注
[问答]

如何从I2C进行bootload的实验?

C2000芯片有很多种bootload模式,SCI和I2C都比较常用,所以做一个从I2C进行bootload的实验,作为扫盲贴。
关于个芯片的bootload的资料可以参考该芯片的Boot ROM Reference Guide ,里面也会有对应的BOOTROM源代码。
这里实验用的是28335芯片,I2C的EEPROM用的是24WC256。

回帖(5)

笪琳琳

2020-7-13 15:48:39
代码呢?
                                                                         如果您认为此问题已被解答,请在“这是否解答您的问题” 后,点击“是”按钮! 谢谢您的合作!
举报

朱虹博

2020-7-13 16:04:17
第二步,设定芯片为I2C的bootmode,以28335为例:

 
I2C的bootload 顺序如下,程序中会自动设置相关的引脚为I2C功能,不需要另行设定:

 
相关的寄存器bootrom中的自带程序都会进行初始化:
举报

朱虹博

2020-7-13 16:20:45
引用: Emily1225 发表于 2020-7-13 16:04
第二步,设定芯片为I2C的bootmode,以28335为例:

 

第三步,向I2C芯片写入数据。
例如写入:
                          0xAA,                   // Msg Byte 1   08AA
                          0x08,                   // Msg Byte 2   I2CPSC
                          0x01,                   // Msg Byte 3
                          0x00,                   // Msg Byte 4   I2CCLKH
                          0x36,                   // Msg Byte 5
                          0x00,                   // Msg Byte 6   I2CCLKL
                          0x36,                   // Msg Byte 7
                          0x00,                   // Msg Byte 8
                          0x09,                   // Msg Byte 9   保留
                          0x10,                   // Msg Byte 10
                          0x11,                   // Msg Byte 11
                          0x12,                   // Msg Byte 12
                          0x13,                   // Msg Byte 13
                          0x14,                   // Msg Byte 14
                          0x15,                   // Msg Byte 15
                          0x16,                   // Msg Byte 16
                          0x17,                   // Msg Byte 17
                          0x18,                   // Msg Byte 18
                          0x00,                   // Msg Byte 19 entrypoint=0X0000C000
                          0x00,                   // Msg Byte 20
                          0x00,                   // Msg Byte 21
                          0xC0,                   // Msg Byte 22
                          0x06,                   // Msg Byte 23 数据长度   0x0006个字
                          0x00,                   // Msg Byte 24
                          0x00,                   // Msg Byte 25 要写入的地址=0X0000C000
                          0x00,                   // Msg Byte 26
                          0x00,                   // Msg Byte 27
                          0xC0                   // Msg Byte 28
                          0x22,                   // Msg Byte 29 要写入的数据
                          0x11,                   // Msg Byte 30
                          0x44,                   // Msg Byte 31
                          0x33,                   // Msg Byte 32
                          0x66,                   // Msg Byte 33
                          0x55,                   // Msg Byte 34
                          0x88,                   // Msg Byte 35
                          0x77,                   // Msg Byte 36
                          0xAA,                   // Msg Byte 37
                          0x99,                   // Msg Byte 38
                          0xCC,                   // Msg Byte 39
                          0xBB,                   // Msg Byte 40
                          0x00,                   //结束
                          0x00,
 
 
举报

朱虹博

2020-7-13 16:36:10
引用: Emily1225 发表于 2020-7-13 16:20
第三步,向I2C芯片写入数据。
例如写入:
                          0xAA,                   // Msg Byte 1   08AA

第四步,复位28335芯片,让芯片运行。上面的数据意思是向0XC000写入6个字。
可以监视,如下几处:

 

举报

更多回帖

发帖
×
20
完善资料,
赚取积分