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

 
 
 
Reply to this topicStart new topic
> Atmel->Microchip
hw_engineer
сообщение May 12 2018, 02:11
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 22-09-15
Пользователь №: 88 505



Всем доброго.

Сложилась неприятная ситуация с линейкой ATmega8A, ATmega32A и (предположительно) ATmega64L, все выпуска конца 16 года и новее.
Симптомы такие:
1. при питании 3.3В:
- заливка EEPROM с программатора идёт только при принудительной установке паузы после каждого байта минимум 10мс (9 - уже появляются ошибки верификации), причём при изменении одного байта и повторной заливке могут "посыпаться" несколько других, казалось бы даже и рядом не стоявших, а питание при этом стабильное,
- EEPROM крайне легко повреждается даже при чтении, если при этом активно дрыгать питанием,
- запись байта "изнутри" может вызвать повреждение его содержимого даже после ребута (это я вообще не понимаю как получается, можно с натяжкой списать на предыдущий пункт, но почему предпочитает ломаться именно последний записанный байт - загадка),
- особый смак: если (это случайно получилось) отключено питание AVCC, то активное дрыгание основным питанием приводило к повреждению EEPROM даже в случае свехсложной программы int main(void){while(1);} честно-честно,
2. при питании 5В работает как и раньше (по крайней мере с программатора шьётся на ура с первого же раза, насчёт повреждения пока не проверял).

Напоминаю на всяк случай: нижняя граница питания по спеку 2.7В, а частота при этом может быть 8МГц максимум, т.е. спек не нарушен. Тактируется проц от внутреннего RC 8МГц.
Обращение к EEPROM "изнутри" шло как в примере из спека, при обнаружении проблем были учтены дополнительные проверки битов и запреты прерываний (каюсь, не ставил cli-sei, работало годами), результат не стопроцентный, хотя вроде стало получше.

Это НЕ относится (почему-то) к чипам выпуска 14 года, например.

Вроде бы вырулил введением дополнительных пауз ПЕРЕД записью (типа медленно подошёл, огляделся, быстро спёр и слинял), аккуратным стартом проца и т.п., но осадок остался.

Что изменилось в чипах после поглощения атмела микрочипом? Или у меня уже попросту бред?

Сообщение отредактировал hw_engineer - May 12 2018, 02:16
Go to the top of the page
 
+Quote Post
zombi
сообщение May 12 2018, 06:17
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 050
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(hw_engineer @ May 12 2018, 05:11) *
Симптомы такие:

Brown-out Detector есть в изделии хоть какой?
Цитата(hw_engineer @ May 12 2018, 05:11) *
аккуратным стартом проца

это как?
Go to the top of the page
 
+Quote Post
VladislavS
сообщение May 12 2018, 07:01
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 412
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140



А вы уверены, что чипы Atmel /Microchip, а не Сяолинь?
Go to the top of the page
 
+Quote Post
_4afc_
сообщение May 12 2018, 07:20
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 185
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Заводы / технологические нормы вероятно поменялись. В даташитах этого может и не быть пока.

Если посмотреть на новые версии даташитов семейства ATSAM - то там регулярно снижается частота работы с флеш и повышается минимальное потребление...
Go to the top of the page
 
+Quote Post
hw_engineer
сообщение May 12 2018, 11:48
Сообщение #5





Группа: Участник
Сообщений: 12
Регистрация: 22-09-15
Пользователь №: 88 505



Цитата(zombi @ May 12 2018, 09:17) *
Brown-out Detector есть в изделии хоть какой?

Да, внутренний. Но БОД ни при чём при заливке ч-з программатор - питание стабильно, не отключается.
Без БОД (случайно на плате не оказался ферритик) - ЕЕПРОМ летела даже от косого взгляда, кажется :D

Цитата
это как?

1. Длинная, 5 сек, пауза после старта перед хоть какими-то действиями с ЕЕПРОМ. Как оказалось, остальные узлы можно даже инициализировать, и даже запустить.
2. Чтение контрольного байта, не совпало - ребут.


VladislavS, не уверен. А как проверить?

Цитата(_4afc_ @ May 12 2018, 10:20) *
Заводы / технологические нормы вероятно поменялись. В даташитах этого может и не быть пока.

Да, даташит АТмега8А атмел (пока) совпадает с микрочип, по кр.мере в части ЕЕПРОМ. Даже ошибки те же там же.



Попахивает бредом, сам понимаю...

Сообщение отредактировал hw_engineer - May 12 2018, 11:51
Go to the top of the page
 
+Quote Post
zombi
сообщение May 12 2018, 17:00
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 050
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(hw_engineer @ May 12 2018, 05:11) *
- заливка EEPROM с программатора идёт только при принудительной установке паузы после каждого байта минимум 10мс

Какой программатор? Он позволяет произвольные паузы добавлять?
В DS на мс указано время необходимое для записи одного байта в EEPROM?

Цитата(hw_engineer @ May 12 2018, 14:48) *
Без БОД (случайно на плате не оказался ферритик) - ЕЕПРОМ летела даже от косого взгляда, кажется :D

Какое отношение ферритик (или его отсутствие) имеет к BOD?
Вы уверены что правильно понимаете что такое Brown-out Detector?
Go to the top of the page
 
+Quote Post
hw_engineer
сообщение May 13 2018, 05:41
Сообщение #7





Группа: Участник
Сообщений: 12
Регистрация: 22-09-15
Пользователь №: 88 505



Цитата(zombi @ May 12 2018, 20:00) *
Какой программатор? Он позволяет произвольные паузы добавлять?
В DS на мс указано время необходимое для записи одного байта в EEPROM?


Какое отношение ферритик (или его отсутствие) имеет к BOD?
Вы уверены что правильно понимаете что такое Brown-out Detector?

Позволяет, да, я писал выше.
Разница именно в этом: раньше ни о каких паузах не задумывался даже, теперь приходится выставлять 10мс.
Если выставить 9мс, что больше спековских 8.5, то ошибки вероятны, но не часты (эти 6% наверное можно списать на неточности генераторов).

Ферритик к BOD, по-моему, имеет отношение такое, что BOD аналоговый и питается от AVCC. Или использует Vref, который получается от AVCC, извиняюсь, точно не помню.
А вот какое отношение он имеет к EEPROM - действительно загадка.



Видимо нужно предельно конкретизировать что я имею ввиду.

1. Зависимость параметров EEPROM от напряжения питания при одном и том же годе выпуска.
Новый проц (вторая половина 2016г и 2017г): питание 5В - всё ок, 3.3В - не очень.
Старый проц (конкретно 2014г): любое питание - всё ок.

2. Зависимость скорости EEPROM от года выпуска при условно-пониженном питании.
Питание 3.3В, старые процы шьются программатором без пауз, новые - только с паузами.

Сообщение отредактировал hw_engineer - May 13 2018, 05:42
Go to the top of the page
 
+Quote Post
zombi
сообщение May 13 2018, 07:40
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 050
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(hw_engineer @ May 13 2018, 08:41) *
Ферритик к BOD, по-моему, имеет отношение такое, что BOD аналоговый и питается от AVCC. Или использует Vref, который получается от AVCC, извиняюсь, точно не помню.
А вот какое отношение он имеет к EEPROM - действительно загадка.

Не важно от чего и как питается BOD.
Я просто хотел обратить Ваше внимание на то что, если после старта записи EEPROM сброс произойдёт ранее чем через 8.5 мс, то результат записи непредсказуем.
Вы писали:
Цитата
- запись байта "изнутри" может вызвать повреждение его содержимого даже после ребута (это я вообще не понимаю как получается, можно с натяжкой списать на предыдущий пункт, но почему предпочитает ломаться именно последний записанный байт - загадка),


Цитата(hw_engineer @ May 13 2018, 08:41) *
спековских

Это жаргон какой-то? просто интересно

Цитата(hw_engineer @ May 12 2018, 05:11) *
Это НЕ относится (почему-то) к чипам выпуска 14 года, например.

А какое количество изделий с чипами выпуска 14 года работают? Если не секрет?
Go to the top of the page
 
+Quote Post
hw_engineer
сообщение May 13 2018, 08:19
Сообщение #9





Группа: Участник
Сообщений: 12
Регистрация: 22-09-15
Пользователь №: 88 505



Цитата(zombi @ May 13 2018, 10:40) *
Это жаргон какой-то? просто интересно

Извиняюсь. Имеется ввиду - "указанных в спецификации". "Спек" - жаргон, да.

Цитата(zombi @ May 13 2018, 10:40) *
Не важно от чего и как питается BOD.
Я просто хотел обратить Ваше внимание на то что, если после старта записи EEPROM сброс произойдёт ранее чем через 8.5 мс, то результат записи непредсказуем.

Упс... Ошибка. Ломается ПРЕДпоследний записанный байт, виноват.
Т.е. я пишу в ЕЕПРОМ двухбайтовый адрес, сначала старший байт, потом младший, ломается старший и всегда почему-то в 0xFF.

Цитата(zombi @ May 13 2018, 10:40) *
А какое количество изделий с чипами выпуска 14 года работают? Если не секрет?

Статистика пока обратная: все чипы, на которые есть подозрение - "новые".
Go to the top of the page
 
+Quote Post
hw_engineer
сообщение May 17 2018, 19:47
Сообщение #10





Группа: Участник
Сообщений: 12
Регистрация: 22-09-15
Пользователь №: 88 505



Кажется, насчёт ATmega32A и ATmega64L я погорячился laughing.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th June 2018 - 08:24
Рейтинг@Mail.ru


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