完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用PIC16F628 A控制器。在我的项目中,我需要把数据从红外传感器写入内部EEPROM。数据将每秒写入内部EEPROM。我注意到数据表中提到了1000000个写EEPROM。我的疑问是在1000000次写入之后,我们不能使用内部EEPROM或任何。过程中会出现故障。
以上来自于百度翻译 以下为原文 I'm using PIC16F628A controller.In my project I need to write the data from IR sensor into internal EEPROM.The data will write to internal EEPROM for every seconds. I noted in datasheet they mentioned 1,000,000 write EEPROM. My doubt is after 1,000,000 write times we can't use internal EEPROM or any malfunction will occur in the process..? Attached Image(s) |
|
相关推荐
12个回答
|
|
当超过EEPROM存储器的写入耐久性时,数据在该存储器中的保留可能变得不稳定且不可靠。
以上来自于百度翻译 以下为原文 When you exceed the write endurance of the EEPROM memory the retention of data in that memory may become erratic and unreliable. |
|
|
|
EEPROM的耐久性取决于内存类型,每个字节,或每个擦除块,因此,如果您能够在设备中扩展所有EEPROM字节的写入,则每次只写几个字节,并且如果正确的值已经被存储,则不重写,EEPROM可能仍会持续一段时间。是一个最小的承诺,有一定的可能性。有很大的变化范围。耐久性也可能随电源电压和温度而变化。如果您将奇偶校验、校验和或CRC与数据一起存储,则可能检测到错误,甚至恢复单个位错误。但是,这也将使用更多的存储…如果内部EEPROM是不够的,可能有外部EEPROM设备的可能性。迈西尔
以上来自于百度翻译 以下为原文 EEPROM endurance is per byte, or per Erase block, depending on memory type, so if you are able to spread out writes over all EEPROM bytes in the device, write only a few bytes at a time, and do not rewrite if the correct value is already stored, the EEPROM may still last a while. The datasheet specification is a minimum promise with some probability. There is a large range of variation. Endurance may also change with supply voltage and temperature. If you store some parity, checksum or CRC together with data, it may be possible to detect errors, and even recover single-bit errors. But that will also use more storage... If the internal EEPROM is not sufficient, there may be possibility of external EEPROM devices. Mysil |
|
|
|
如果你每秒都写同一个EEPROM字节,你将在12天内使用100万次写,所以你最好重新考虑你的策略。你的实际需求是什么?是否必须每秒写入EEPROM,或者缓冲RAM中的几个写,并经常更新EEPROM?你能把所有的EEPROM字节写出来吗?此外,PIC16F628 A是一个十五年的设备,这意味着它是古老的。你看过新的PIC16F1XXX部件吗?要小心,许多新零件根本没有EEPROM,但它们确实有很多其他好的特性,而且通常比旧零件便宜。
以上来自于百度翻译 以下为原文 If you keep writing to the same EEPROM byte every second, you will use up your 1 million writes in less than 12 days, So you better re-think your strategy. What is your actual requirement? Do you have to write to EEPROM every second, or can you buffer several writes in RAM, and update the EEPROM less often? Can you spread the writes out over all the EEPROM bytes? Also, the PIC16F628A is a fifteen year old device, which means it is ancient. Have you looked at the newer PIC16F1xxx parts? Be careful, many new parts don't have any EEPROM at all, but they do have a lot of other nice features, and are often cheaper than the old parts. |
|
|
|
我将把数据写入方式改为内部EEPROM,然后将所有数据存储在控制器中,然后用平均值进行计算。现在,在把它存储到控制器之前计算平均值。谢谢你们的支持朋友。现在他们是同一个PROJ的另一个问题。我使用内部计时器选项来控制电机,基于传感器的O/P,控制器将被控制。例如,如果传感器的值是“2”,意味着电机将通过继电器控制运行2小时。在这种情况下,我需要把剩余的时间存储在EEPROM控制器中。如果发生电源故障,请重新开始操作。在这种情况下,如果控制器有限制的话,我需要在控制器中写剩余的秒值。他们还有其他方法来创建计时器吗?
以上来自于百度翻译 以下为原文 I will change the way of data writing to internal EEPROM.Before all data will stored in controller and then average value is used for calculation. Now it calculate the average value before it storing in to the controller. Thanks for your support friends.. Now their is an another problem with same project. I'm using internal timer option to control an motor.Based on sensor's o/p to controller the motor will be controlled. For example if the value from the sensor is "2" means the motor will operated by relay control for 2 hours. In that case I need to store the remaining time in controllers EEPROM to resume the operation if any power failure occur means. In this case I need to write the remaining seconds value in the controller,if the controller having limit means..? Is their any other way to create an timer..? |
|
|
|
在PIC16F628 A中,我尝试使用RA4作为输出端口,但我不能用这个端口作为O/P端口。后来我检查了NPIC16F628 A的数据表,在其中提到“端口RA4与T0CKI时钟输入复用”。这是我的配置:TrISA=0x00;PORTA=0x00;CCMON=0x07;TrISB= 0B1000 1100;PoLTB= 0B1000 1100;THI。S是我的控制部分:如果(RB2==1){Ra4=~Ra4;}我的问题是当我按下开关时,我不能在RA4引脚中获得任何O/P。如何解决这个问题?
以上来自于百度翻译 以下为原文 In PIC16F628A I tried to use RA4 as output port but I can't use that port as O/P port.Later I checked inPIC16F628A's datasheet,in that they mentioned "PORT RA4 is multiplexed with T0CKI clock input ". This is my config : TRISA = 0X00; PORTA = 0X00; CMCON = 0X07; TRISB = 0b10001100; PORTB = 0b10001100; This is my control part: if(RB2==1){ RA4=~RA4; } My problem is when I pressed the switch means I can't get any O/P in RA4 pin. How to solve this issue...? |
|
|
|
RA4是开放的收集器在这个PIC(和RA5只输入)。尝试添加拉起
以上来自于百度翻译 以下为原文 RA4 is open collector on this PIC (and RA5 input only). Try adding a pullup |
|
|
|
CiniziaG,你能解释一下你的观点吗?我对微控制器很陌生,所以我不能理解你的观点。
以上来自于百度翻译 以下为原文 CiniziaG,Can you explain your point please..? I'm new to microcontrollers,so I can't understand your point.. |
|
|
|
MMM OKAN“开放收集器”输出基本上是一个引脚,只能吸收电流,即驱动器到0。它缺少正常输出引脚(所谓的“推挽”)的“上侧”晶体管。谷歌图像可能比我解释得更好。
以上来自于百度翻译 以下为原文 mmm ok an "open collector" output is basically a pin that can only sink current, i.e. drive to 0. It is missing the "upper side" transistor that normal output pins have (so called "push pull"). google images can possibly explain better than me |
|
|
|
因此,尝试添加一个4K7电阻从引脚RA4到+5 V,以拉动它。
以上来自于百度翻译 以下为原文 So try adding a 4k7 resistor from pin RA4 to +5V to pull it up. |
|
|
|
我尝试在PIC18F420控制器中使用内部EEPROM。我在因特网上学习了一些教程来理解我在OnLink中对程序类型的注意。类型1:EEADR=65;ECON1BITE.EPGD=0;ECON1BITS。CFGS=0;ECON1BITS RD=1;65;/*读取数据在位置0x00*/ECON1BIT。WREEN位对于读操作*/ECON1BITS。EEPGD=0;/*访问数据EEPROM存储器*/ECON1BITS。RD=1;/*读取EEPROM存储器集RD=1 */Innall EEPROMPERADIOVALY=EDATA的数据;在1型中,它们使用CFGS,在它们使用的类型2中使用CFG。单独EEEGD,但是用控制器检查也可以,但我的疑问是这两个代码的区别是什么?
以上来自于百度翻译 以下为原文 Hai I tried to use the internal EEPROM in PIC18F4520 controller. I studied some tutorials on Internet to understand the operation I noted to type of programs in online. TYPE 1: EEADR = 65; EECON1bits.EEPGD = 0; EECON1bits.CFGS = 0; EECON1bits.RD = 1; internal_eeprom_read_value = EEDATA; TYPE 2: EEADR = 65; /* Read data at location 0x00*/ EECON1bits.WREN = 0; /* WREN bit is clear for Read operation*/ EECON1bits.EEPGD = 0; /* Access data EEPROM memory*/ EECON1bits.RD = 1; /* To Read data of EEPROM memory set RD=1*/ internal_eeprom_read_value = EEDATA; in type 1 they use CFGS and in type 2 they used EEPGD alone. But checking with the controller both also working,but my doubt is whats the difference between this two codes..? |
|
|
|
如果你的应用程序中没有其他代码设置CFGS位,那么你不清除它并不重要。它被清除了,如果你从来没有设置它,它会一直保持清除。你真的读过数据表来找出那个比特是做什么的吗?从阅读数据表开始,而不是试图从互联网上理解随机代码总是更好的。再次,阅读数据表,你可以自己回答。
以上来自于百度翻译 以下为原文 If no other code in your application ever sets the CFGS bit, then it doesn't matter of you don't clear it. It powers up as cleared, and will always stay cleared if you never set it. Did you actually read the data sheet to find out what that bit does? It's always better to start by reading the datasheet rather than trying to understand random code off the Internet. There's another difference there with WREN too. again, read the datasheet and you can answer it yourself. |
|
|
|
EEPGD和CFGS在波尔河/BOR重置中都是未知的。在读取数据表时,两个都必须被清除以访问数据EEPROM。+ 1。
以上来自于百度翻译 以下为原文 Both EEPGD and CFGS are unknown upon POR/BOR Reset. Both must be cleared to access the data EEPROM. +1 on reading the datasheet. |
|
|
|
只有小组成员才能发言,加入小组>>
5162 浏览 9 评论
2000 浏览 8 评论
1928 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3172 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2226 浏览 5 评论
731浏览 1评论
613浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
503浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
629浏览 0评论
527浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 08:01 , Processed in 1.419261 second(s), Total 101, Slave 84 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号