搜索
bottom↓
回复: 12

讨论下LGT8F08A芯片的eeprom操作是否是个bug,具体情况看帖子

[复制链接]

出0入0汤圆

发表于 2013-3-27 14:32:11 | 显示全部楼层 |阅读模式
我遇到的问题是这样的:

对于新的芯片,如果对eeprom的指定的地址未进行写的操作的时候,
程序启动后就去访问这个地址,那么读的指令将死等,并且连看门狗都不起作用

但是如果这个地址是已经是写操作过的,程序就能正常,

进而测试发现,程序启动后,先在不用的某个eeprom地址随便写个数据,那么后面跟的读eeprom的操作,即使这个地址没有写过数据,程序也不会死

请大家测试下,是否有跟我一样的情况

或者是我读的代码有错吗,还是我什么地方初始化没注意的?

/*****************************************************************************
** Function name        :                E2prom_Read
** Descriptions                :                read internal eeprom
** parameters                :                addr:            
** Returned value        :                data:
*****************************************************************************/
u8 E2prom_Read(u16 addr)
{
        /*wait for completion of previous write*/
        while(EECR & (1 << EEPE));               
        /*set up the address register*/
       
        EEARH = (addr >> 8) & 0x01;
        EEARL = (addr & 0xFF);
        /*start eeprom read by writing EERE*/
        EECR |= _BV(EERE);
        asm("nop");
        asm("nop");
        return EEDR;
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2013-3-27 17:39:49 | 显示全部楼层
全片擦除试试吧,不会又是BUG?

出0入0汤圆

 楼主| 发表于 2013-3-27 18:52:08 | 显示全部楼层
xwkm 发表于 2013-3-27 17:39
全片擦除试试吧,不会又是BUG?

我手里只有仿真器,ISP烧写的刚定了,还没到,收到后测试下全部擦除一次还会不会,我估计也会,出厂的时候,应该是空的呀

出0入0汤圆

发表于 2013-3-27 20:08:05 | 显示全部楼层
是不是因为"写入均衡"没被全片擦除或写过没初始化引起的.
芯片写eeprom的时间也总是不好说的,有时候慢有时候快我想也是这个"写入均衡"引起的吧

出0入0汤圆

 楼主| 发表于 2013-3-27 21:04:37 | 显示全部楼层
goodcode 发表于 2013-3-27 20:08
是不是因为"写入均衡"没被全片擦除或写过没初始化引起的.
芯片写eeprom的时间也总是不好说的,有时候慢有时 ...

可能像你说的那样,因为 LGT的eeprom实际上就是用flash来仿真的,只不过他的仿真是由硬件来操作的,而像stm32F103芯片,是用软件来仿真的

并不是慢的原因,而是死了,连看门狗都不作为,程序也不重启

不知道大家是否遇到?  

出0入0汤圆

发表于 2013-3-28 10:33:02 | 显示全部楼层
whimsyB 发表于 2013-3-27 21:04
可能像你说的那样,因为 LGT的eeprom实际上就是用flash来仿真的,只不过他的仿真是由硬件来操作的,而像s ...

我这边测试,新片子从没写过,直接读没问题。

是不是你的工作频率太高了,前几天写bootloader,上了36MHz的晶振,写FLASH写不进去。

出0入0汤圆

发表于 2013-3-28 12:19:31 | 显示全部楼层
bozai 发表于 2013-3-28 10:33
我这边测试,新片子从没写过,直接读没问题。

是不是你的工作频率太高了,前几天写bootloader,上了36MH ...

不知道。看是什么片咯。工程片是有点BUG的。
你的是SOP28的还是啥?我的没啥问题。无论32还是28

出0入0汤圆

发表于 2013-3-28 13:18:18 | 显示全部楼层
LGT的数据FLASH其实是两页。交替写的。比如说第一页有个0x00,然后你写个0xff上去。控制器就会擦除备用页。然后把别的数据复制到备用页,接着写入数据。标记备用页有效,把原来的页标记为无效(这个是最坏情况)。
我没有遇到读指令弄到CPU死等的现象。你是不是不小心关了16M RC?

出0入0汤圆

 楼主| 发表于 2013-3-29 13:57:44 | 显示全部楼层
这个测试是基于新的芯片,没有先执行过写的操作,用仿真器灌程序测试,你也是按照我说的这个条件测试吗?

出0入0汤圆

发表于 2013-3-30 13:12:41 | 显示全部楼层
whimsyB 发表于 2013-3-29 13:57
这个测试是基于新的芯片,没有先执行过写的操作,用仿真器灌程序测试,你也是按照我说的这个条件测试吗? ...

嗯。目前我没有这个状况啊。读到一个FF。

出0入0汤圆

 楼主| 发表于 2013-3-30 13:55:55 | 显示全部楼层
xwkm 发表于 2013-3-30 13:12
嗯。目前我没有这个状况啊。读到一个FF。

哦,谢谢,看来是我程序的问题了

出0入0汤圆

发表于 2013-7-27 04:35:44 | 显示全部楼层
我的程序烧进去了,芯片无反应,会不会也是这个原因呢?因为我的程序一开始有读EEPROM的操作。我明天改先写一个数试试。

出0入0汤圆

发表于 2013-7-28 04:26:13 | 显示全部楼层
我也遇到过这样的问题了,程序得先对EEPROM写操作,否则会死机了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 00:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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