lgt中eeprom/flash写入时,未完成,会在死等吗?
lgt中eeprom/flash写入时,未完成,会在死等吗?还有写入,删除的时间多长? 不会死机。 logicgreen 发表于 2012-8-23 11:04 static/image/common/back.gif不会死机。
我的意思是未完成写入时,会不会继续跑程序;还是在等完成了之后,再继续跑程序。而不是说死机 写EEPROM的时候硬件会HOLD住PC值,在使用者方面来说相当于一个周期,这个周期就是写EEPROM的时间周期,最短20us,最长20ms。
如果EEPROM里的资料是"FF“,那么最快写一个字节是20us左右,如果不是"FF",那么硬件要删除PAGE,最大要20ms。 logicgreen 发表于 2012-8-23 13:17
写EEPROM的时候硬件会HOLD住PC值,在使用者方面来说相当于一个周期,这个周期就是写EEPROM的时间周期,最短 ...
按这逻辑,那我只写一个字节eeprom,且这个位置又不是ff,page擦除会不会
把其他地址(同一页)的数据也擦除?eeprom不是可以单字节操作的吗? zqy 发表于 2012-8-23 22:55 static/image/common/back.gif
按这逻辑,那我只写一个字节eeprom,且这个位置又不是ff,page擦除会不会
把其他地址(同一页)的数据也 ...
这个不用担心,硬件会自动完成擦除和写回的,对用户来说就是按字节写的。 能不能并行操作。我的意思就是触发CMD以后PC继续下去,然后查询标志位检测是否写完?
HOLD PC值的话。在一部分实时性的(类似SPWM逆变)的应用上可能会发生问题。 xwkm 发表于 2012-8-30 09:52 static/image/common/back.gif
能不能并行操作。我的意思就是触发CMD以后PC继续下去,然后查询标志位检测是否写完?
HOLD PC值的话。在一 ...
08A目前不支持你所说的功能。
如果你需要实时的更新E2PROM, 可以考虑先将数据缓存到SRAM中。等到系统处理非实时任务时再去更新。
如果你的系统里没有这种非实时的任务时间, 就必须考虑到08A写E2PROM空间的最慢等待时间。 LGT 发表于 2012-8-30 15:28 static/image/common/back.gif
08A目前不支持你所说的功能。
如果你需要实时的更新E2PROM, 可以考虑先将数据缓存到SRAM中。等到系统处 ...
记得普通的51单片机,写eeprom时,没写入完成,程序可以继续往下跑。而;flash则会完成了之后,程序才可以继续往下跑。
lgt则需要等待最慢20ms,之间不能执行任何代码。这样的死等限制,对于特定的功能,难以实现。
lgt的提供的demo,我还是有点疑问:
void DrvEEPROM_ProgEByte(u16 wAddr, u16 u16Len, u8 *pData)
{
u8 sregval;
u16 i;
// read status register
sregval = SREG;
// clear global interrupt enable
CLI();
// wait for completion of previous write
for(i = 0; i < u16Len; i++)
{
while(EECR & (1 << EEPE));既然写入完成是死等,那还有必要用查询方式来判断是否完成吗?如果判断写入未完成,又跟写入未完成时不能跑任何程序有矛盾
// address
EEARH = (wAddr >> 8) & 0x3;
EEARL = (wAddr) & 0xff;
// data
EEDR = *pData;
// Program Mode
EECR = (EECR & (~DRVEEPROM_MODE_MSK));
// write logical one to EEMWE
// start eeprom write by setting EEWE
asm volatile
(
"sbi 0x1f, %0\n\t" //EECR |= (1 << EEMWE);
"sbi 0x1f, %1\n\t" //EECR |= (1 << EEWE);
::"M"(EEMPE),"M"(EEPE)
); 程序在此等待写入完成吗?
pData++;
wAddr++;
}
//
SREG = sregval;
// wait for completion of This write
while(EECR & (1 << EEPE));
}
cheky77 发表于 2012-9-1 09:49 static/image/common/back.gif
记得普通的51单片机,写eeprom时,没写入完成,程序可以继续往下跑。而;flash则会完成了之后,程序才可 ...
查询是延续AVR的做法,实际上和加两个nop一回事,pc没有增加,要等eeprom写完后才会释放的。 学习,为使用作准备... cheky77 发表于 2012-9-1 09:49 static/image/common/back.gif
记得普通的51单片机,写eeprom时,没写入完成,程序可以继续往下跑。而;flash则会完成了之后,程序才可 ...
哪种51单片机可以这样?这么好
除了ATMEL和ST,请问大家还有哪些单片机带真正的EEPROM?
ATtiny13真正的EEPROM写最长3.4ms,最短1.8ms,LGT写EEPROM时间真的有点长,
2013新开发的LGT单片机有哪款是真正的EEPROM吗?
页:
[1]