完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我有一个生产测试失败的单位。该产品被设计为接受发送器ID并将其保存在EEPROM。此后,只有当EEPROM中的发射机ID与接收的发射机ID匹配时,产品才会运行。索赔是产品将工作一次,但在重置(其中包括擦除EEPROM),它将不会再工作。我使用调试固件中的生产固件将失败的产品与ICD3连接为调试器,并且工作良好。当我重新编译为一个程序员,固件加载成功,但产品不工作。看起来EEPROM没有保存预期的发射机ID。我似乎不能导致故障,但是删除和替换PIC18F1220将纠正这个问题。在调试模式和程序员模式之间,ICSP引脚是否以不同的方式加载芯片?芯片能否成功地加载固件,但有一个错误的EEPROM?
|
|
相关推荐
4个回答
|
|
1220和1320是著名的“有趣的错误”,如指导,将无法正常工作的温度以下…等等(!)就我个人而言,我也和EEprom有问题。不确定这是不是你的情况(我很快就跳过了!)
|
|
|
|
关于EEPROM:你检查了芯片勘误表吗?关于DEBUG和STANDALONE之间的差别:是的,这有很大区别:为了支持调试,一些调试软件链接到您自己的代码。例如,调试模式下的应用程序甚至在没有调试器的情况下也不能启动。详细信息可以在文档中找到,但是请原谅:我目前不知道确切的位置。
|
|
|
|
在顾问的帮助下,我发现了这个问题。EECON1寄存器中有2个EEPROM访问控制位:EEPGD,当清除时,提供对数据EEPROM存储器的访问;CFGS,当清除时,也提供对数据EEPROM存储器的访问。在我的代码中,我只清除EEPGD位而不清除CFGS位。一旦我清除了CFGS位,问题就解决了。根据PIC18F1220数据表,这两个位在POR或BOR上都处于未知状态,必须用代码来处理,并且我能理解。关于此的“关键部分”是,如果您清除EEPGD(我曾经清除过),但是您没有清除CFGS(我没有清除过),那么在访问EEPROM时,它有时会工作,有时不工作。我对数据表持异议,因为它虽然在文本中解释了EEPGD和CFGS位,但它没有在7-1或7-2的代码示例中显示CFGS正在设置或清除(第69页)。代码在调试器上工作正常。Microchip应该找出一种在未知状态下随机产生比特的方法。这样,调试器的操作和作为独立产品的操作之间会有更好的相关性。
|
|
|
|
这是汇编编程。如果有办法随机化开发工具上的未知状态,使用C编译器或MPASM是否重要?
|
|
|
|
只有小组成员才能发言,加入小组>>
5184 浏览 9 评论
2005 浏览 8 评论
1932 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3179 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2230 浏览 5 评论
742浏览 1评论
629浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
512浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
641浏览 0评论
538浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 08:17 , Processed in 1.303234 second(s), Total 85, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号