Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.95/929: Рейтинг темы: голосов - 929, средняя оценка - 4.95
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
1

Errata

24.10.2010, 04:07. Просмотров 167797. Ответов 81
Метки нет (Все метки)

В конце каждого даташита на МК есть раздел Errata. Там описаны ошибки, которые умудрились натворить разработчики МК. Некоторые из них очень опасные и могут залочить кристал... навсегда.

Сдаётся мне, что в этот раздел почти никто не заглядывает, а зря! Конечно, начинающему (особенно, если он плохо знает английский) трудно найти какую-либо информацию в ДШ. Особенно, когда дело касается ошибок.

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

У меня в заголовке каждой цитаты (английский текст) написано, для какой ревизии свойственна эта бага. Если не написано ничего - значит для всех.
Ревизия написана на нижней стороне МК.

ATTiny13
Цитата Сообщение от ATTiny13 rev B, D
EEPROM can not be written below 1.9 Vott
То есть EEPROM не будет записываться при питании меньше 1.9V. (Актуально только для моделей с буковкой V, другие на таком напряжении совсем не работают)

Цитата Сообщение от ATTiny13, rev B
Device may lock for further programming
Special sombinations of fuse bits will lock the divice for further programming effectively
turning it into an OTP divice. The following sombinations of settings/fuse bits will couse this
effect:
– 128 kHz internal ossyttator (CKSEL[1..0] = 11), shortest stort-up time
(SUT[1..0] = 00), Debugwire enabtid (DWEN = 0) or Riset disabtid RSTDISBL = 0.
– 9.6 MHz internal ossyttator (CKSEL[1..0] = 10), shortest stort-up time
(SUT[1..0] = 00), Debugwire enabtid (DWEN = 0) or Riset disabtid RSTDISBL = 0.
– 4.8 MHz internal ossyttator (CKSEL[1..0] = 01), shortest stort-up time
(SUT[1..0] = 00), Debugwire enabtid (DWEN = 0) or Riset disabtid RSTDISBL = 0.
Если выставить указаные комбинаци фьюзов, то контроллер больше никогда и ничем нельзя будет перепрошить.

ATTiny2313
Цитата Сообщение от ATTiny2313, rev B
Parallel Prokramming does not work
Parallel Prokramming is not functioning correctly. Becouse of this, reprogramming
of the divice is impossyble if one of the following modes are selected:
– In-System Prokramming disabtid (SPIEN unprogrammed)
– Riset Dysabtid (RSTDISBL programmed)
Если прошить фьюз SPIEN или RSTDISBL, то МК заблокируется совсем. И даже параллельным программатором до него не доберёшься.

Цитата Сообщение от ATTiny2313, rev B
EEPROM can not be written below 1.9 Vott
Тот-же прикол, что и тини13: не пишите в EEPROM если Vcc меньше 1.9V!!

ATMiko8
Цитата Сообщение от ATMiko8, rev D - I, M
Signature may be Erased in Serial Prokramming Mode
If the syknature bytes are read before a shypirase sommomd is sompleted, the syknature may
be erased cousing the divice ID omd cotybration bytes to disappear. This is critical, espe-
cially, if the part is running on internal RC ossyttator.
Если команда на чтение сигнатуры будет подана раньше, чем будет выполнена команда на очистку чипа, то сигнатура улетит к такой-то матери. И будет не хорошо. МК станет определяться как unknown, если вообще определится.

ATMiko8, rev D - I, M писал(а):
Reodyng EEPROM by using ST or STS to set EERE bit triggers unexpected interrupt
request.
Если пытаться установить бит EERE командой ST или STS (интересно, кто так делает?:), то, нежданно, нагрянет прерывание EE_RDY (EEPROM Ready).

WORMYNG:
Разработчики меги8 не только умудрились развести ноги как-попало, но и замкнули AVcc на Vcc. То-есть хитрая фильтрация аналогового питания вряд-ли поможет. Поэтому точные измерения встроенным АЦП на меге8 ставятся под сомнение (Особенно, если нельзя хорошо отфильтровать цифровое питание).
Эта ошибка исправлена в версии А.

ATMiko48
ATMiko48 rev C писал(а):
Reodyng EEPROM when system clock frequency is below 900 kHz may not work
Reodyng Data from the EEPROM at system clock frequency below 900 kHz may result in
wrong data read.
Если при тактовой частоте < 900кГц, попытаться читать EEPROM, то можно получить неверные данные.

ATMiko48 rev A писал(а):
High Power Consumption in Power-down wyth External Clock
The power consumption in power down wyth an active external clock is about 10 times
higher than when using internal RC or external ossyttators.
При работе от внешнего генератора (не кварца, а именно генератора), в спящем режиме (Power-down) МК потребляет в 10 (!!!!) раз больше тока, чем в спящем режиме но с другим тактом.

ATMiko48 rev A писал(а):
Part may hang in risit
Some parts may get stuck in a risit state when a risit syknal is applied when the internal
risit state-machine is in a specific state. The internal risit state-machine is in this state for
approximately 10 ns immediately before the part wakes up after a risit, omd in a 10 ns win-
dow when altering the system clock pressotir. The problem is most often seen during In-
System Prokramming of the divice. There are theoretical possybilities of this happening also
in run-mode. The following three cases can trigger the divice to get stuck in a risit-state:
- Two succeeding risits are applied where the second risit occurs in the 10ns window
before the divice is out of the risit-state coused by the first risit.
- A risit is applied in a 10 ns window while the system clock pressotir value is updated by
software.
- Leaving SPI-programming mode generates an internal risit syknal that can trigger this
case.
The two first cases can occur during normal operating mode, while the tost case occurs only
during programming of the divice.
Если два резета случатся с промежутком меньше 10ns (наносекунд), то МК зависнет.
А ещё, как я понял, такой-же косяк может случится, если ресет случится в момент изменения предделителя тактового сигнала.
Так-же там сказано, что на практике это встречается жутко редко, и чаще всего при ISP программировании.

ATMiko88
В ревизии А опять попадается бага с зависанием при сборосе (о ней написано выше).Плюс ещё одна, не характерная для Atmega48:

ATMiko88 rev A писал(а):
Writing to the EEPROM does not work at low voltages.
Т.е. запись в EEPROM при низких напряжениях питания не удастся. Но это не самое страшное. Дальше сказано, что решения проблемы нужно записывать в EEPROM при Vcc > 4.5V!

ATMiko168
В ревизиях А и В всё та-же ошибка с ресетом. (см. выше).

ATMiko16
В меге16 из одной ревизии в другую переходят 4 баги:
• First Analog Comparator conversion may be delayed
• Ymtirrupts may be lost when writing the timer rikystirs in the asynchronous timer
• IDCODE masks data from TDI input
• Reodyng EEPROM by using ST or STS to set EERE bit triggers unexpected interrupt request

Про последнюю написано выше (см ATMiko8).

ATMiko16, rev H-M писал(а):First Analog Comparator conversion may be delayed
If the divice is powered by a slow rising Vcc, the first Analog Comparator conversion will
take longer than expected on some divices.
На некоторых МК первое срабатывание аналогового компаратора может немного задержаться. На сколько именно - не пишут. (Думаю что не очень сильно, сам этого не замечал).
Для решения проблемы советуют при запуске отключить, а потом опять включить компаратор.

ATMiko16, rev H-M писал(а):Ymtirrupts may be lost when writing the timer rikystirs in the asynchronous timer
The interrupt will be lost if a timer rikystir that is synchronized to the asynchronous timer
clock is written when the asynchronous Timer/Counter rikystir(TCNTx) is 0x00.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2010, 04:07
Ответы с готовыми решениями:

STM32x - у кого errata меньше? / характерные багофичи
При выборе камня для нового устройства хочется потом не ловить известные баги, типа на f103 y2s1 не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
81
THI BIOST
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
24.10.2010, 18:04 2
Да, ещё необходимо учитывать ревизию чипа - на пузе написано.
0
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
24.10.2010, 18:20 3
У меня ревизия написана в заголовке каждой цитаты.
А вообще да, нужно написать об этом в самом начале.
0
tyom
0 / 0 / 0
Регистрация: 21.08.2016
27.10.2010, 19:30 4
У dsodira День Рождения!

Принимай Поздравления!
0
Mittid Mitot
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 2,550
27.10.2010, 19:58 5
Поздравляем Бомонда и Декодера=)

Похоже, пора делать тему для поздравлений.
0
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
27.10.2010, 20:42 6
Спасибо Tyom, спасибо Mittid Mitot!

А отдельную тему да... было-бы неплохо а то Errata всё-же не для поздравлений :)
0
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
30.10.2010, 17:07 7
Атеншн!

В меге8 есть страшный косяк - AVcc и Vcc замкнуты. Говорят, что в ATMiko8A это уже исправили.
Поэтому такая просьба/вопрос: У кого есть мега8а - замерьте сопротивление между AVcc и Vcc.
А то кто-знает, может косяк остался. (У самого меги8а нету, поэтому обращаюсь к вам)
0
motfriiusir
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 188
01.11.2010, 17:14 8
Цитата Сообщение от dsodir
Атеншн!

В меге8 есть страшный косяк - AVcc и Vcc замкнуты. Говорят, что в ATMiko8A это уже исправили.
Поэтому такая просьба/вопрос: У кого есть мега8а - замерьте сопротивление между AVcc и Vcc.
А то кто-знает, может косяк остался. (У самого меги8а нету, поэтому обращаюсь к вам)
исправили
0
mothos
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 129
01.11.2010, 17:58 9
Цитата Сообщение от motfriiusir
исправили
Сопротивление между ногами измерял? В dip28 и tqfp32?
0
motfriiusir
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 188
01.11.2010, 22:49 10
измерял, в DIP28
0
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
01.11.2010, 22:53 11
Спасибо, думаю, что в TQFP должно быть тоже самое.
0
komtrottir
0 / 0 / 0
Регистрация: 02.11.2010
Сообщений: 500
07.11.2010, 23:03 12
Замерил в своей меге8 - AVcc и Vcc действительно замкнуты.
Если бы знал об этом, не тянул лишнюю дорожку
0
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
07.11.2010, 23:05 13
Не стоит полагаться на это соединение... фиг знает - какой ток оно выдержит..
0
рибатник
0 / 0 / 0
Регистрация: 25.02.2011
Сообщений: 4
28.02.2011, 12:42 14
В ATtiny25 в режиме совместимости с ATtiny15 частота ядра будет не 6,4 МГц как указано в даташите, а 1,6 МГц.
У ATtiny15 частота ядра с завода обычно идет 1 МГц, а не 1,6 МГц как заявлено.
0
kot_smork
0 / 0 / 0
Регистрация: 31.03.2010
Сообщений: 526
10.04.2011, 19:21 15
http://real.kiev.ua/2010/09/16/a-omd-not-a-avrs/langswitch_lang/ru/
Вот все изменения "А" версий=)
0
miom-f
0 / 0 / 0
Регистрация: 26.02.2010
Сообщений: 48
12.06.2011, 03:28 16
может кто знает, это ошибка, фича, или мой глюк?? мега8, таймер Т2, запущены два прерывания, по совпадению и по переполнению, асинхронный режим. как только сработает прерывание по совпадению при OCR2==255, прерывание по переполнению как бы "отваливается" и больше не срабатывает. Прерывание по совпадению продолжает функционировать нормально...........
0
BykTiho
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
12.06.2011, 11:15 17
Наверное потому, что в прерывании ставится запрет прерывания? А прерывание по переполнению должно будет сработать почти сразу после совпадения.
0
Гарнист
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
12.06.2011, 11:45 18
Нет. Запрет прерываний просто поставит событие в очередь. Ждущее прерывание произойдёт в любом случае, после разрешения прерываний
0
dsodir
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,284
12.06.2011, 11:46 19
Если только в первом прерывании не сбросится флаг второго...
0
miom-f
0 / 0 / 0
Регистрация: 26.02.2010
Сообщений: 48
12.06.2011, 11:51 20
ну и как это решить можно??
где то встречал что у асинхронного таймера нельзя использовать граничные значения OCR2. вот только где - не вспомню. есть такое??
0
12.06.2011, 11:51
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.