我正在建设一个基于Arduino的项目DS1307 RTC时钟模块和存储偏移值,但很少更新,在其EEPROM。但我正在观察时间漂移以及EEPROM中随时间变化的偏移值。3-4天后,EEPROM中的-18存储值变为104。我怀疑时间变化得更快,大约一天一分钟。我还使用AltSoftSerial与GSM Mini 900A模块通信。我怀疑Arduino有问题,因为这个项目在其他硬件上运行得很完美。我在地址0和1上写了两个字节,漂移之后我尝试在地址100上,但没有改进。EEPROM存储值的变化非常惊人。故障Arduino UNO板的一般特征是什么?
8.
-
\$\begingroup\$ 请指定您正在使用的RTC模块,量化您正在观察的漂移,并告诉我们如何更新“偏移量”(我理解的是存储时间的一种纠正,但如果没有,请解释)。 \ $ \ end group \ $–devnull.4月3日17:51
-
\$\begingroup\$ “eeprom存储值的变化非常惊人。”是的。基本上,它存储在RAM中,由保持RTC运行的相同电源供电。想到串行通信错误和备用电源故障。更不用说固件错误了。 \ $ \ end group \ $–devnull.4月3日18:18
-
\$\begingroup\$ RAM中的变量值是从eeprom更新的,即使在电源复位后,该值也不应该改变。 \ $ \ end group \ $–seccpur4月3日18:23
-
\$\begingroup\$ 是的,当您更新它时,它被复制并存储在IC内部的RAM中,该IC由备用电源供电,不应损坏。 \ $ \ end group \ $–devnull.4月3日18:33
-
\$\begingroup\$ "...和storing an offset value"-这个偏移值是从哪里来的?“…与gsm mini 900A模块通信如果不包括GSM模块会发生什么? \ $ \ end group \ $–布鲁斯亚伯特4月3日19:21
|
显示3.更多的评论
\$\begingroup\$
\ $ \ end group \ $
1.
任何取决于内部振荡器的RTC会相对于时间漂移,唯一的问题是速度。除了固有的漂移,温度变化,电压变化和噪声可能会影响计时。根据这一点炸薯条数据表:
漂移的每天1分钟(700 ppm)不仅仅是一个期望从一个水晶也许50或100 x的问题是噪声耦合Arduino读取和可怜的布局或电路安排在你的设计中实现或您的模块(大概一个廉价hobbyist-oriented产品)。
如果时钟运行得很快,这很可能就是问题所在。如果它运行缓慢,那么可能是其他原因。
\$\begingroup\$
\ $ \ end group \ $
你似乎和我们大多数人有不同的思考原则。
唯一普遍确定的故障是,它们可能导致与规范不同的东西。我写过can——很可能没有什么明显的事情发生,如果发现了一些异常,它们可能是由系统其他部分的误用或错误引起的。
所以:你不能得到一个简短的常规检查表,你可以通过它来决定“董事会是好的,因为检查表中的所有步骤都是好的”。