发 帖  
原厂入驻New
[问答] 如何从I2C进行bootload的实验?
2020-7-13 15:29:48  35 bootload
分享
C2000芯片有很多种bootload模式,SCI和I2C都比较常用,所以做一个从I2C进行bootload的实验,作为扫盲贴。
关于个芯片的bootload的资料可以参考该芯片的Boot ROM Reference Guide ,里面也会有对应的bootrom源代码。
这里实验用的是28335芯片,I2C的EEPROM用的是24WC256。
0
2020-7-13 15:29:48   评论 分享淘帖
5 个讨论
代码呢?
                                                                         如果您认为此问题已被解答,请在“这是否解答您的问题” 后,点击“是”按钮! 谢谢您的合作!
2020-7-13 15:48:39 评论

举报

第二步,设定芯片为I2C的bootmode,以28335为例:

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

 
相关的寄存器bootrom中的自带程序都会进行初始化:
2020-7-13 16:04:17 评论

举报

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:20:45 评论

举报

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

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

 

2020-7-13 16:36:10 评论

举报

Emily1225 发表于 2020-7-13 16:36
第四步,复位28335芯片,让芯片运行。上面的数据意思是向0XC000写入6个字。
可以监视,如下几处:

朋友,您好!
最近我在进行C28346的开发,由于该款芯片只能使用外部空间存储程序。我使用I2C装载eeprom模式自举,但是我对这操作过程毫无经验,看了您的帖子,我想请教一个问题:程序如何烧写入eeprom中?CCS生成的.out文件如何处理呢?谢谢!
2020-7-13 16:46:40 评论

举报

只有小组成员才能发言,加入小组>>

1355个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表