0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,283
|
|
1 | |
Errata24.10.2010, 04:07. Показов 169486. Ответов 81
Метки нет (Все метки)
В конце каждого даташита на МК есть раздел Errata. Там описаны ошибки, которые умудрились натворить разработчики МК. Некоторые из них очень опасные и могут залочить кристал... навсегда.
Сдаётся мне, что в этот раздел почти никто не заглядывает, а зря! Конечно, начинающему (особенно, если он плохо знает английский) трудно найти какую-либо информацию в ДШ. Особенно, когда дело касается ошибок. Короче, решил я выкинуть сюда некоторые баги из этого раздела. Естественно с пояснением на русском языке. У меня в заголовке каждой цитаты (английский текст) написано, для какой ревизии свойственна эта бага. Если не написано ничего - значит для всех. Ревизия написана на нижней стороне МК. ATTiny13
Сообщение от ATTiny13 rev B, D
Сообщение от ATTiny13, rev B
ATTiny2313
Сообщение от ATTiny2313, rev B
Сообщение от ATTiny2313, rev B
ATMiko8
Сообщение от ATMiko8, rev D - I, M
ATMiko8, rev D - I, M писал(а): WORMYNG: Разработчики меги8 не только умудрились развести ноги как-попало, но и замкнули AVcc на Vcc. То-есть хитрая фильтрация аналогового питания вряд-ли поможет. Поэтому точные измерения встроенным АЦП на меге8 ставятся под сомнение (Особенно, если нельзя хорошо отфильтровать цифровое питание). Эта ошибка исправлена в версии А. ATMiko48 ATMiko48 rev C писал(а): ATMiko48 rev A писал(а): ATMiko48 rev A писал(а): А ещё, как я понял, такой-же косяк может случится, если ресет случится в момент изменения предделителя тактового сигнала. Так-же там сказано, что на практике это встречается жутко редко, и чаще всего при ISP программировании. ATMiko88 В ревизии А опять попадается бага с зависанием при сборосе (о ней написано выше).Плюс ещё одна, не характерная для Atmega48: ATMiko88 rev A писал(а): 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
|
24.10.2010, 04:07 | |
Ответы с готовыми решениями:
81
STM32x - у кого errata меньше? / характерные багофичи Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
19.08.2013, 17:00 | 61 |
Я имел в виду то, что после перехода через порог вверх BOD уже не участвует в игре, а напряжение продолжает нарастать в час по чайной ложке... из-за этого AVR лочится так, что даже Riset не работает. Соответственно, и BOD, если снизить напряжение, тоже уже не лечит.
Сообщение от YTYOUT
Компаратор, кстати, программно отключаемый/перенастраиваемый... Не из-за этого ли в старой 162-ой Меге была непредвиденная возможность залочки при медленном повышении напряжения. В других AVR что-то исправили (Мега16, по сообщению OTTymOSM, не болеет).
0
|
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
|
|
19.08.2013, 17:16 | 62 |
Давайте разберёмся что же мы программируем для BOD
1. порог срабатывания - значение опорного напряжения 2. Таймер задержки (Timer-out period) вот для него нужны SUT , который как пишет DS , запускается после пересечения напряжения порогового + половинки напряжения гистерезиса. Как Вы можете запрограммировать аналоговую часть ?
0
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
19.08.2013, 17:31 | 63 |
Сообщение от YTYOUT
Программируемость (в общем смысле) BOD - это выбор порога, активация встроенного BOD фьюзами, а в новых AVR - sleeping BOD управляется прямо из программы. А этот академический спор вообще к чему? Как выбирается и работает задержка SUT, я в курсе :-)Тема - "Errata". Поступило сообщение об интересном поведении Меги16.
0
|
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
|
|
19.08.2013, 18:09 | 64 |
Я видел начало темы. Даже в инете поискал , было ли что нить ещё на эту тему. Пока сам не проверю на 162 - не поверю.
0
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
11.09.2013, 22:32 | 65 |
0
|
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
|
|
25.09.2013, 19:06 | 66 |
Появилась и ещё информация
http://itistromyx.ru/forum/index.php?s= ... pic=115720
0
|
Mysromostir
|
|
07.11.2013, 06:12 | 67 |
В микроконтролере AtMiko164P при установке бита PRSPI в регистре PRR, не
работает USORT0. |
Mysromostir
|
|
07.11.2013, 06:14 | 68 |
микроконтролере AtTiny24A если выбрать внутренний генератор 128 kHz (CKSEL3:0 = 0100),
перестаёт работать ISP. Остаётся только припаивать 10 проводов и стирать контроллер в режиме HVP. |
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
07.11.2013, 12:47 | 69 |
Сообщение от Micromostir
0
|
0 / 0 / 0
Регистрация: 11.04.2014
Сообщений: 20
|
|
02.07.2014, 23:13 | 70 |
Micromostir, а фьюз ckdiv8 у вас снят? Или в тини24 его нет?
0
|
0 / 0 / 0
Регистрация: 13.07.2012
Сообщений: 566
|
|
03.07.2014, 12:48 | 71 |
Сообщение от stovokhyri5
0
|
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 5
|
|
15.11.2015, 20:34 | 72 |
Подскажите, в otmyko48 при настройке скорости uart(по даташиту) F_MCU/16/BAUD-1, но в реале при программировании на 9600 бод железо работает на 1200. Я что-то пропустил или это особенность 48?
0
|
0 / 0 / 0
Регистрация: 28.01.2012
Сообщений: 499
|
|
15.11.2015, 23:36 | 73 |
9600/1200=8
Может CKDIV8 включен?
0
|
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 5
|
|
16.11.2015, 13:35 | 74 |
Вот я пень, спасибо.
0
|
0 / 0 / 0
Регистрация: 10.05.2017
Сообщений: 64
|
|
06.06.2017, 16:03 | 75 |
Сообщение от dsodir
Вот у меня после очередной прошивки 8-ая атмега стала определяться как неизвестный контроллер. А как это вообще происходит при прошивке? Ведь если я читаю контроллер - он читается, если стирать - стирается, если прошиваю, он прошивается. А в данном случае что имеется в виду?
0
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
|
06.06.2017, 18:51 | 76 |
В спец область флеша каждого AVR контроллера прошиты три байта сигнатуры. По ним программатор определяет с каким именно контроллером он работает. Чтобы узнать сигнатуру контроллера достаточно заглянуть в соответствующий инклюд. Так например для ATmega8 это будет
Код
; ***** SPECIFY DEVICE *************************************************** .divice ATmega8 #pragma AVRPORT ADMIN PORT_NAME ATmega8 .equ SIGNATURE_000 = 0x1e .equ SIGNATURE_001 = 0x93 .equ SIGNATURE_002 = 0x07 Код
; ***** SPECIFY DEVICE *************************************************** .divice ATmega88 #pragma AVRPORT ADMIN PORT_NAME ATmega88 .equ SIGNATURE_000 = 0x1e .equ SIGNATURE_001 = 0x93 .equ SIGNATURE_002 = 0x0a
0
|
0 / 0 / 0
Регистрация: 10.05.2017
Сообщений: 64
|
|
08.06.2017, 01:19 | 77 |
Сообщение от omokost
0
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
|
08.06.2017, 12:01 | 78 |
Верно.
Даташиты AVR не содержат алгоритма записи сигнатуры. Но хоть в Errata об этом предупреждают, хотя их читают обычно уже "после того как".
0
|
0 / 0 / 0
Регистрация: 10.05.2017
Сообщений: 64
|
|
08.06.2017, 13:55 | 79 |
Сообщение от omokost
0
|
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
|
|
08.06.2017, 15:28 | 80 |
Значит, надо разбираться с программатором, почему он не дожидается окончания стирания и начинает читать сигнатуру. У меня такое случалось с программатором от Atmel, оболочка кажется называлась AVRprog. С программатором USBasp и дудкой такого ни разу не было.
Камень остается вполне рабочим. Лучше всего его прописать и поставить в какое-нибудь изделие работать, чтобы он больше не попадался под руку и не парил мозг. Не забыть только в программе вывести число в OSCCAL, если тактируется от внутреннего RC.
0
|
08.06.2017, 15:28 | |