реклама на сайте
подробности

 
 
> Tiny13, проблема с чтением EEPROM
Len_OK
сообщение May 13 2008, 06:44
Сообщение #1


Участник
*

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



Есть электронный ключ на базе МК Tiny13. Данные ключа хранятся в EEPROM.
Проблема такая: после некоторого времени использования ключа EEPROM-ка периодически не читается, либо при чтении обнаруживаются изменённые данные! можно ли решить эту проблему?
Как защитить контроллер от статики,которая может наводиться на корпус ключа?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение May 13 2008, 10:36
Сообщение #2


кекс
******

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



Цитата
В моём случае (на мой взгляд) следующая ситуация : в определённые моменты времени уровень на линии RESЕT достигал низкого уровня, при этом по линиям MOSI, SCK могли проходить помехи которые и преводили МК в режим программирования.

Все это очень смущает. Почему тогда у вас не слетал Flash? Помеха была такой умной, что генерила только команду записи eeprom? Звучит абсурдно.
И не проще ли отключить reset в таком случае? Для восьминогой Tiny13 дополнительная ножка куда более актуальна чем вкл/откл ISP.
Go to the top of the page
 
+Quote Post
mart-13
сообщение May 13 2008, 12:17
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
defunct
сообщение May 13 2008, 12:17
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 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

Я ее читал - там нет ни одного серьезного факта подтверждающего стирание памяти. Только "друг сказал", "где-то слышал", "кто-то жаловался" и т.п, это можно расценивать как реальные факты?.
Go to the top of the page
 
+Quote Post
Kalina
сообщение May 13 2008, 12:38
Сообщение #5


Частый гость
**

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



Цитата(defunct @ May 13 2008, 16:17) *
Или Вас больше устраивает верить в то что SPI интефейс (которого кстати в Tiny13 нет) каким-то образом может стирать EEPROM?


Интересненько, а как же без SPI этот контроллер вообще можна прошить? Может вам удавалась его прошить по debugWire?
Go to the top of the page
 
+Quote Post
defunct
сообщение May 13 2008, 12:52
Сообщение #6


кекс
******

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



Цитата(Kalina @ May 13 2008, 15:38) *
Интересненько, а как же без SPI этот контроллер вообще можна прошить? Может вам удавалась его прошить по debugWire?

периферийного устройства "SPI" такого как в m8 в t13 нет.

SPI который используется только для ISP программирования, в нормальном режиме отключен. Надо всего лишь подтянуть Reset к питанию и включить BOD.

T13 можно шить LVSP, HVSP и dW программаторами.
Через dW конечно удавалось его шить иначе было бы очень неудобно отлаживать.
Go to the top of the page
 
+Quote Post
mart-13
сообщение May 13 2008, 13:36
Сообщение #7


Участник
*

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



Цитата(defunct @ May 13 2008, 16:52) *
периферийного устройства "SPI" такого как в m8 в t13 нет.

SPI который используется только для ISP программирования, в нормальном режиме отключен. Надо всего лишь подтянуть Reset к питанию и включить BOD.

T13 можно шить LVSP, HVSP и dW программаторами.
Через dW конечно удавалось его шить иначе было бы очень неудобно отлаживать.


Что значит "SPI который используется только для ISP программирования, в нормальном режиме отключен"???
Что такое нормальный режим??? (Что, есть еще и ненормальный???)
В каком режиме продается данный МК в магазинах(в нормальном или ненормальном)???
Чем же его прошить первый раз после покупки???

Приведите, пожалуйста, хоть один факт, или документ, который что-то из этого подтверждал... Может у меня мало опыта в работе с АВР...

Может Вы говорите на каком-то другом языке: причем тут периферийное устройство SPI и протокол по которому прошивается память контроллера SPI.
SPI - это, на сколько я знаю, Serial Peripheral Interface. У большинства 8-битных МК фирмы Атмел этот интерфейс используется для загрузки программы в память МК. А у некоторых МК той же фирмы на борту есть еще и встроенный аппаратный SPI интерфейс (периферийное устройство), который исползуется для связи МК с другими устройствами (память, ЖКИ, другой МК,...), и который может работать в режиме Мастер или Слейв, но он не принимает участия в программировании МК без дополнительных программных вмешательств (типа бутлоадера). Вот SPI, как периферийное устройство в тини13 отсутствуей, а SPI как интерфейс программирования там есть (что видно из скриншота)...

Не ругайте сильно, что отвлекся от темы, просто мне не понятно почему в оригинальной документации написано одно, а Ваш опыт говорит о другом.

Сообщение отредактировал mart-13 - May 13 2008, 13:47
Go to the top of the page
 
+Quote Post
defunct
сообщение May 13 2008, 13:55
Сообщение #8


кекс
******

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



Цитата(mart-13 @ May 13 2008, 16:36) *
Что значит "SPI который используется только для ISP программирования, в нормальном режиме отключен"???

Значит что в пользовательской программе его использовать нельзя.

Цитата
Что такое нормальный режим??? (Что, есть еще и ненормальный???)

Когда выполняется пользовательская программа.
Есть и другие режимы работы МК - сброшенное, отключенное состояние, режим программирования...

Цитата
В каком режиме продается данный МК в магазинах(в нормальном или ненормальном)???

в отключенном.

Цитата
Чем же его прошить первый раз после покупки???

Программатором, но вначале так или иначе надо будет куда-то запаять. А уж потом шить.

Цитата
а SPI как интерфейс программирования там есть (что видно из скриншота)...

Да есть, но он отключен когда выполняется программа пользователя.

Цитата
Чесно говоря, первый раз слышу про такую возможность шить по dW, если вас не затруднит, не могли бы вы поделиться на конкретном прирмере, в даташите на tiny13 я ничего такого не нашёл. Поиск в гугле dW программатора также дал 0 результат , неужели это засекречено?

Ну а что через JTAG можно программировать слышали?
Точно также программу можно зашить и через dW. При отладке AVR-Studio сама заливает программу в чип через dW, т.е. Вам не нужно отключать dW, зашивать программу и включать dW обратно, для того чтобы отладить программу. Единственное ограничение в работе через debugWire - нельзя программировать Fuses и Locks.
Go to the top of the page
 
+Quote Post
Kalina
сообщение May 13 2008, 14:04
Сообщение #9


Частый гость
**

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



Цитата(defunct @ May 13 2008, 17:55) *
Ну а что через JTAG можно программировать слышали?
Точно также программу можно зашить и через dW. Единственное ограничение - нельзя программировать Fuses и Locks.

Про возможность JTAG программирования я не только слышал, но и читал в даташите на мегу16. А вот про программирование тини13 по dW всего лишь слышал от вас, приведите хоть сылочку что ли...
Go to the top of the page
 
+Quote Post
defunct
сообщение May 13 2008, 14:45
Сообщение #10


кекс
******

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



Цитата(Kalina @ May 13 2008, 17:04) *
Про возможность JTAG программирования я не только слышал, но и читал в даташите на мегу16. А вот про программирование тини13 по dW всего лишь слышал от вас, приведите хоть сылочку что ли...

Запустите AVR-Studio.
Откройте Help->AVR Tools Users Guide->JTAGICE MKII.
Перейдите в раздел On-Chip Debugger Options
в нем подраздел Debug Dialog -> debugWire.
Там будет скриншот, где видно что для debugWire можно настроить Program Download опции.
цитата:

Цитата
The Debug Dialog Box when using debugWIRE is shown below.
...
The Program Download section allows different settings for how often the target device should be reprogrammed.


Цитата(mart-13 @ May 13 2008, 17:17) *
И еще вопрос, изначально эта тема подразумевала использование МК в "ненормальном" для Вас режиме, тоесть в режиме переходных процессов при вкл/выкл питания, и возможность при этом порчи ЕЕПРОМ (по причине нахождения МК в режиме программирования, или превышения напряжения питания, или помех, и т.д.) так вот, какое отношение к данному вопросу имеют Ваши хваленые dW и JTAG???

Естессно никакого, точнее ровно такое же как и рекомендация отключить ISP.

Бороться с переходным процессом надо другим способом - BOD / внешний супервизор питания, подключать пины через низкоомные резисторы вблизи выводов МК, шунтирующие конденсаторы по питанию... Программные средства защиты - дублирование записей в eeprom, код защиты.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
|||- - 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 18:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01526 секунд с 7
ELECTRONIX ©2004-2016