|
Tiny13, проблема с чтением EEPROM |
|
|
|
May 13 2008, 06:44
|
Участник

Группа: Новичок
Сообщений: 50
Регистрация: 5-12-07
Пользователь №: 32 986

|
Есть электронный ключ на базе МК Tiny13. Данные ключа хранятся в EEPROM. Проблема такая: после некоторого времени использования ключа EEPROM-ка периодически не читается, либо при чтении обнаруживаются изменённые данные! можно ли решить эту проблему? Как защитить контроллер от статики,которая может наводиться на корпус ключа?
|
|
|
|
|
 |
Ответов
|
May 13 2008, 12:17
|

Участник

Группа: Участник
Сообщений: 17
Регистрация: 12-12-07
Из: Украина
Пользователь №: 33 226

|
Цитата(defunct @ May 13 2008, 14:36)  Да ну бросте городить чушь. BOD надо включать, а не SPIEN смыкать, чтобы МК сбрасывался до того как питание упадет ниже критической отметки, после которой может изменяться содержимое RAM (регистр PC относится к RAM). А вот изменение содержимого RAM как раз может повлечь за собой прыжек на любой участок кода, в том числе и на участок где производится запись в eeprom. От того он у вас и слетал.
Для отладки Tiny13 вообще-то есть debugWire интерфейс, при включение которого ISP отключается автоматически.
1. Включить BOD. 2. Сделать запись помехозащищенной - разбить eeprom на два блока по 32 байта. Данные сохранять сразу в два блока, блоки защищать хотя бы CRC8. При слете данных в одном из блоков - брать данные из второго, и восстанавливать "сбойнувший" блок.
Все это очень смущает. Почему тогда у вас не слетал Flash? Помеха была такой умной, что генерила только команду записи eeprom? Звучит абсурдно. И не проще ли отключить reset в таком случае? Для восьминогой Tiny13 дополнительная ножка куда более актуальна чем вкл/откл ISP. На сколько я понимаю, даный форум был создан для того, чтобы люди смогли получить ответы на свои вопросы и поделиться опытом, а не слышать в свою сторону "несешь чушь"... Хотя Вы, уважаемый defunct и "Гуру", но с вашей стороны это мягко говоря неуважение к нам форумчанам. Ну включили вы свой БОД, ну есть цитата в даташите: EEPROM data corruption can easily be avoided by following this design recommendation: Keep the AVR RESET active (low) during periods of insufficient power supply voltage. This can be done by enabling the internal Brown-out Detector (BOD). If the detection level of the internal BOD does not match the needed detection level, an external low VCC Reset Protection circuit can be used. If a reset occurs while a write operation is in progress, the write operation will be completed provided that the power supply voltage is sufficient. Да в этом Вы правы, но, судя из моего опыта - это не всегда срабатывает... В моем случае порча ЕЕПРОМ часто происходила в тех же случаях, что и у Kalina, и у Len_OK, создавшего эту тему, а именно в момент присутствия каких либо напряжений на Vcc и линиях SPI, при этом на Reset было 0В. Один мой знакомый даже отправлял письмо компании Atmel (которая, кстати изначально занималась только ЕЕПРОМ) с подобным вопросом, и получил ответ, который полностью совпадает с опытом Kalina - проблемы с SPI, конечно же при условии соблюдения всех остальных замечаний по поводу ЕЕПРОМ АВР-ов. И во-первых: !!!Внимательно!!! читая данную тему я заметил, что Kalina работал с Мега8, а там вообще нету debugWire... Во-вторых:на сколько я знаю для debugWire надобно заиметь не совсем простой программатор... В-третьих:если Вы отключите Reset, то не сможете программировать по SPI и Вам снова придется заиметь не совсем простой программатор... В-четвертых:может быть Вы посоветуете еще и кодировать сами записываемые данные кодами Хеминга, Грея и т. п. Что же у Вас за ключ такой получится??? В-пятых:сама компания Атмел гарантирует правильную работу при соблюдении всех правил использования ЕЕПРОМ, как аппаратных так и программных. ИМХО, люди здесь должны делиться своими знаниями и опытом, а не указывать кому и что как делать... Цитата(defunct @ May 13 2008, 14:36)  Все это очень смущает. Почему тогда у вас не слетал Flash? Помеха была такой умной, что генерила только команду записи eeprom? Звучит абсурдно. И не проще ли отключить reset в таком случае? Для восьминогой Tiny13 дополнительная ножка куда более актуальна чем вкл/откл ISP. Кстати, уважаемый defunct, вот нашел в этом же форуме тему, связаную со стиранием памяти контроллера в результате влияния помех на SPI - - - http://electronix.ru/forum/index.php?showtopic=47174
|
|
|
|
|
May 13 2008, 12:17
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(mart-13 @ May 13 2008, 14:53)  На сколько я понимаю, даный форум был создан для того, чтобы люди смогли получить ответы на свои вопросы и поделиться опытом, а не слышать в свою сторону "несешь чушь"... Хотя Вы, уважаемый defunct и "Гуру", но с вашей стороны это мягко говоря неуважение к нам форумчанам. это просто метки которые форум сам расставляет от количества постов. Никакого отношения к квалификации эти метки не имеют. Я бы был непротив если бы вместо "гуру" у меня там было написано "кекс". Цитата Ну включили вы свой БОД, ну есть цитата в даташите: ... Да в этом Вы правы, но, судя из моего опыта - это не всегда срабатывает... Хорошая попытка... Цитата В моем случае порча ЕЕПРОМ часто происходила в тех же случаях, что и у Kalina, и у Len_OK, создавшего эту тему, а именно в момент присутствия каких либо напряжений на Vcc и линиях SPI, при этом на Reset было 0В. А у меня порчи eeprom от этого не происходило. Что я делаю не так? Цитата И во-первых: !!!Внимательно!!! читая данную тему я заметил, что Kalina работал с Мега8, а там вообще нету debugWire... "Внимательно" читая данную тему Вы бы заметили, что тема называется "Tiny13". Какое отношение к этой теме могут иметь способы применимые на mega8? В m8 можно разместить бутлоадер и с легкостью перешивать чип через любой доступный интефейс. С t13 такой фокус не пройдет, но есть debugWire. Я как раз стараюсь быть в русле темы не переключаться на другие чипы. Цитата Во-вторых:на сколько я знаю для debugWire надобно заиметь не совсем простой программатор... А разве это не обязательное условие для нормальной работы? Или Вас больше устраивает верить в то что SPI интефейс (которого кстати в Tiny13 нет) каким-то образом может стирать EEPROM? Цитата В-третьих:если Вы отключите Reset, то не сможете программировать по SPI и Вам снова придется заиметь не совсем простой программатор... Да разумеется, но в свете откровенно станного совета - отключить ISP - отключение Reset'a для Tiny13 смотрится куда более разумным выходом, т.к. хотя бы добавится драгоценный для этого чипа пин. Цитата В-четвертых:может быть Вы посоветуете еще и кодировать сами записываемые данные кодами Хеминга, Грея и т. п. Что же у Вас за ключ такой получится??? Может быть, зависит от задачи. Для задачи этой ветки я считаю, что два блока защищенных CRC8 будет достаточно для того чтобы навсегда избавиться от проблем искажения EEPROM. Цитата В-пятых:сама компания Атмел гарантирует правильную работу при соблюдении всех правил использования ЕЕПРОМ, как аппаратных так и программных. Мы не застрахованы от пропадания питания и/или подачи сигнала Reset во время записи ячейки EEPROM, следовательно никаких гарантий нет и быть не может. Гарантии достигаются дублированием важной информации. Цитата ИМХО, люди здесь должны делиться своими знаниями и опытом, а не указывать кому и что как делать... Разумеется я вам и не указ. И мне все равно как те или иные задачи будут решены. Я просто высказываю свое мнение, а оно у меня таково - взаимосвязи между стиранием EEPROM и отключением ISP нет. Цитата вот нашел в этом же форуме тему, связаную со стиранием памяти контроллера в результате влияния помех на SPI Я ее читал - там нет ни одного серьезного факта подтверждающего стирание памяти. Только "друг сказал", "где-то слышал", "кто-то жаловался" и т.п, это можно расценивать как реальные факты?.
|
|
|
|
|
May 13 2008, 12:38
|

Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 19-12-07
Из: Житоимр
Пользователь №: 33 457

|
Цитата(defunct @ May 13 2008, 16:17)  Или Вас больше устраивает верить в то что SPI интефейс (которого кстати в Tiny13 нет) каким-то образом может стирать EEPROM? Интересненько, а как же без SPI этот контроллер вообще можна прошить? Может вам удавалась его прошить по debugWire?
|
|
|
|
Сообщений в этой теме
Len_OK Tiny13 May 13 2008, 06:44 Палыч Цитата(Len_OK @ May 13 2008, 09:44) ...по... May 13 2008, 06:55 Len_OK по питанию всё нормально, пробовала на корпус дава... May 13 2008, 07:28 Палыч Возможно, при включении питания у Вас - кратковрем... May 13 2008, 07:34 ZyBEX Цитата(Len_OK @ May 13 2008, 11:28) по пи... May 13 2008, 13:08 Len_OK как можно избавится от этого? May 13 2008, 07:38 Vanizma Цитата(Len_OK @ May 13 2008, 11:38) как м... May 13 2008, 08:04 Палыч Взять хороший блок питания May 13 2008, 07:39 Клим Цитата(Палыч @ May 13 2008, 10:39) Взять ... May 13 2008, 07:44  Палыч Цитата(Клим @ May 13 2008, 10:44) Какой т... May 13 2008, 08:12   Kalina Цитата(Палыч @ May 13 2008, 12:12) Легче ... May 13 2008, 08:40 Kalina Цитата(Len_OK @ May 13 2008, 10:44) либо ... May 13 2008, 07:51 defunct Цитата(Kalina @ May 13 2008, 10:51) Пробл... May 13 2008, 09:52  Kalina Цитата(defunct @ May 13 2008, 13:52) Да н... May 13 2008, 10:17   Палыч Цитата(Kalina @ May 13 2008, 13:17) ...в ... May 13 2008, 13:23 Serega Doc А разве бывают диоды с падением 5-6 В
Помоему на д... May 13 2008, 08:26 sseett EEPROM портится, когда питашка падает до уровня сл... May 13 2008, 08:48 Kalina Цитата(sseett @ May 13 2008, 12:48) EEPRO... May 13 2008, 09:16  Палыч Цитата(Kalina @ May 13 2008, 12:16) ...ка... May 13 2008, 09:23  sseett Цитата(Kalina @ May 13 2008, 18:16) Если ... May 16 2008, 08:52 Клим Цитата(Палыч @ May 13 2008, 11:12) Питани... May 13 2008, 09:26 Len_OK в том то и дело, что данные портятся во время чтен... May 13 2008, 09:37 Палыч Цитата(Len_OK @ May 13 2008, 12:37) одна ... May 13 2008, 10:06  Len_OK Цитата(Палыч @ May 13 2008, 13:06) Если с... May 13 2008, 10:40   mart-13 Цитата(defunct @ May 13 2008, 16:17) Или ... May 13 2008, 12:28    defunct Цитата(mart-13 @ May 13 2008, 15:28)... May 13 2008, 12:32    defunct Цитата(Kalina @ May 13 2008, 15:38) Интер... May 13 2008, 12:52     mart-13 Цитата(defunct @ May 13 2008, 16:52) пери... May 13 2008, 13:36      defunct Цитата(mart-13 @ May 13 2008, 16:36)... May 13 2008, 13:55       Kalina Цитата(defunct @ May 13 2008, 17:55) Ну а... May 13 2008, 14:04        defunct Цитата(Kalina @ May 13 2008, 17:04) Про ... May 13 2008, 14:45       mart-13 Цитата(defunct @ May 13 2008, 17:55) Знач... May 13 2008, 14:17     Kalina Цитата(defunct @ May 13 2008, 16:52) Чере... May 13 2008, 13:47   mart-13 Цитата(defunct @ May 13 2008, 16:17) Или ... May 13 2008, 12:47   singlskv Цитата(defunct @ May 13 2008, 16:17) это ... May 13 2008, 21:21    777777 Кстати, о программировании сброса. Я его программи... May 14 2008, 05:49     Палыч Цитата(777777 @ May 14 2008, 08:49) есть ... May 14 2008, 06:09      777777 Цитата(Палыч @ May 14 2008, 10:09) Почему... May 14 2008, 06:41       Палыч Цитата(777777 @ May 14 2008, 09:41) И куд... May 14 2008, 06:57 Serega Doc Может не будем разводить базар вокзал в ветке фору... May 14 2008, 09:47
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|