Например TDA7294

Форум РадиоКот • Просмотр темы - Внимание!!! Баг контроллера!
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вс ноя 10, 2024 06:03:19

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 71 ]  1, , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Внимание!!! Баг контроллера!
СообщениеДобавлено: Ср мар 12, 2014 20:47:06 
Вымогатель припоя
Аватар пользователя

Карма: -2
Рейтинг сообщений: 105
Зарегистрирован: Ср июн 19, 2013 08:10:48
Сообщений: 577
Откуда: Москва, СПб, Липецк, Рязань
Рейтинг сообщения: 1
Всем добрый день! Хочу рассказать о проблеме с которой можно столкнуться, при использовании АЦП контроллеров Mega. (Tiny не проверял. У Mega проверялись контроллеры 2560 и 168). Если вы используете АЦП в автоматическом запуске, то никаких проблем нет. Но у меня появилась необходимость поиграться частотой измерения. Проще всего это реализовать через разовый запуск по таймеру. Итак:
Условия возникновения бага:

1) АЦП включен в режим одиночного запуска
2) Запуск АЦП обязательно происходит из прерывания по таймеру
3) Частота срабатывания таймера близка к частоте выдачи результатов АЦП (не путать с частотой работы АЦП).
4) Особенно актуально для компиляторов с языка СИ. Обязательное наличие команд обращения к регистрам указателя стека (PUSH, POP, IN, OUT, STS и др) в обработчике прерывания (ВНИМАНИЕ!!) от таймера. Присутствии этих команд в данном обработчике вызывает баг. без них все работает на ура. (если обработчик написан на ассемблере и никакие регистры не сохраняются, не извлекаются).

ОПИСАНИЕ БАГА:
Блокируется АЦП. (результат получается только 1 раз и больше не меняется).
Блокируются любые арифметические команды (почему-то тоже выполняются только 1 раз в цикле). Проверялось сложение, вычитание, инкремент, декремент.

Проверялось только для таймера Т0. АЦП с обычным (не дифференциальным входом). У меня частота АЦП была 125 кГц (частота выдачи результата 125000/13 Гц). Частоты таймера, при которых возникал баг от 125000/17 до 125000/12 Гц. Таймер работал в режиме сброс по совпадению. Частота контроллера 1 МГц. Предделитель таймера, контроллера и АЦП /8. При других коэффициентах деления таймера (как в большую так и в меньшую сторону) все работало хорошо. Автоматический режим АЦП тоже работал без проблем.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Ср мар 12, 2014 22:34:35 
Мучитель микросхем
Аватар пользователя

Карма: 4
Рейтинг сообщений: 50
Зарегистрирован: Ср фев 15, 2012 09:00:34
Сообщений: 472
Откуда: Киев
Рейтинг сообщения: 0
А что за компилятор? Вполне вероятно, что он выделывается.

_________________
I'm on a huge rock, flying through space!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Ср мар 12, 2014 22:38:04 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 904
Откуда: ВО
Рейтинг сообщения: 0
Цитата:
без них все работает на ура. (если обработчик написан на ассемблере и никакие регистры не сохраняются, не извлекаются).

Цитата:
4) Особенно актуально для компиляторов с языка СИ.

Так причём здесь
Цитата:
Внимание!!! Баг контроллера!
, может в консерватории что-то исправить , например режим оптимизации или не писать такие вещи на СИ


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 01:39:07 
Грызет канифоль

Карма: 3
Рейтинг сообщений: 4
Зарегистрирован: Вт дек 03, 2013 11:04:04
Сообщений: 278
Откуда: Киев
Рейтинг сообщения: -1
попахивает папахой ...
Покажи код. Далее - ошибка в протеусе или в железе?
компилятор какой?

_________________
Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости


Вернуться наверх
 
Конденсаторы HONGA для силовых и промышленных источников питания высокой мощности

К конденсаторам источников питания высокой мощности предъявляются высокие требования по качеству и надежности. Пленочные – единственный тип конденсаторов, который может справиться с такой задачей. Компания Hongfa предлагает продукцию, которая подходит для применения практически во всех функциональных узлах типовых AC/DC- или DC/AC-преобразователей. Рассмотрим характеристики и применения плёночных конденсаторов Hongfa для различных решений.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 08:07:12 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1405
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14466
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
А как насчет скачать последний даташит на МК и почитать раздел ERRAT? (доки doc2445...., doc8271....)
Меги серии 48-88-168-328 уж больно ерратистые, причем в достаточно критичных местах... :cry:


Вернуться наверх
 
Новые DC/DC от MEAN WELL со сверхшироким входным напряжением до 1500 В

Вслед за сериями на DIN-рейку DDRH-60/120/240 и на шасси RSDH-150/300 компания MEAN WELL выпустила новые маломощные DC/DC-преобразователи DDRH-15/30/45 со сверхшироким входным напряжением 150…1500 В, и монтажом не только на DIN-рейку, но и печатную плату или винтовым соединением. Все преобразователи семейства DDRH и RSDH работают при температурах -40…80°C и обладают высокой изоляцией 4000 В AC между входом и выходом, что обеспечивает надежную защиту. Они подходят для использования на высоте до 5000 м и сертифицированы по стандарту IEC62109-1 для фотоэлектрических систем. Преобразователи DDRH/RSDH есть в наличии и под заказ.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 13:14:55 
Вымогатель припоя
Аватар пользователя

Карма: -2
Рейтинг сообщений: 105
Зарегистрирован: Ср июн 19, 2013 08:10:48
Сообщений: 577
Откуда: Москва, СПб, Липецк, Рязань
Рейтинг сообщения: -4
Отвечаю всем сразу.

не работает на железе. Компилятор любой (студия 5,6 , код вижн, имадж крафт, йар). проверялось с разными вариантами оптимизации, в том числе с выключенной оптимизацией. Потом код дизассемблировался, был проанализирован (компилятор все сгенерировал правильно), все лишнее выкинулось, по новой скомпилировалось и путем выборочного закомментирования порций команд и измененения настроек таймера и АЦП были выведены результаты выше. Еррату читал. Там в основном большое потребление в спящем режиме и всякая хрень по мелочи (типа если у кого-то что-то не получается, то сам дурак, не используй эти команды).

Если кому интересен код - смотреть тему "Глюк в прерывании". Там есть. Или наберите свой.

И специально для kobzar.

ТВОЕ ВИДЕО ДЛЯ НАЧИНАЮЩИХ - ГОВНО!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 13:40:41 
Собутыльник Кота
Аватар пользователя

Карма: 11
Рейтинг сообщений: 47
Зарегистрирован: Пн апр 06, 2009 19:33:29
Сообщений: 2512
Откуда: Молдова, Кишинев
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Цитата:
ТВОЕ ВИДЕО ДЛЯ НАЧИНАЮЩИХ - ГОВНО!
:facepalm:
тут в таком тоне не общаются.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 14:05:49 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1405
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14466
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
ИС-пытатель писал(а):
Отвечаю всем сразу.

не работает на железе. Компилятор любой (студия 5,6 , код вижн, имадж крафт, йар). проверялось с разными вариантами оптимизации, в том числе с выключенной оптимизацией. Потом код дизассемблировался, был проанализирован (компилятор все сгенерировал правильно), все лишнее выкинулось, по новой скомпилировалось и путем выборочного закомментирования порций команд и измененения настроек таймера и АЦП были выведены результаты выше. Еррату читал. Там в основном большое потребление в спящем режиме и всякая хрень по мелочи (типа если у кого-то что-то не получается, то сам дурак, не используй эти команды).

Если кому интересен код - смотреть тему "Глюк в прерывании". Там есть. Или наберите свой.


Не стоит быть столь категоричным, особо для начинающего! :)))
Насчет IDE - пользуюсь AVRstudio 4.19 под ассемблером - другим не владею. МК данных серий применять не приходилось. Опыт работ с ATtiny2313 ( viewtopic.php?f=57&t=84941&hilit=+%D1%83%D0%B1%D0%B8%D0%B9%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9+%D0%BA%D0%BE%D0%B4 ) подсказывает, что может иметь место "алгоритмический ступор" - т.е. потребуется написать программу "с чистого листа" и по возможности более упрощенный и анализируемый алгоритм заложить.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 14:19:19 
Вымогатель припоя
Аватар пользователя

Карма: -2
Рейтинг сообщений: 105
Зарегистрирован: Ср июн 19, 2013 08:10:48
Сообщений: 577
Откуда: Москва, СПб, Липецк, Рязань
Рейтинг сообщения: 1
То что у меня мало сообщений на данном форуме еще не показатель моих навыков. А всего лишь показатель моей частоты посещений. И общительности. Захожу только когда не могу решить проблему сам. А пока жду ответов по возможности помогаю другим. Это раз.
Ассемблером занимаюсь более 5 лет. Контроллерами AVR более 3-х лет. СИ тоже знаю довольно-таки неплохо. И с логикой у меня все вроде в поряде. Это два.
А прежде чем давать рекомендации по переписыванию программы с нуля желательно было хотя бы взглянуть на нее. Там переписывать нечего. всего с десяток-другой команд. Это три.
И прежде чем выложить эту тему мной была проделана недельная работа с неоднократной проверкой кода на наличие ошибок. И не только мной самим. Это четыре.
Всем удачи! Это пять!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 14:38:46 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1405
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14466
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
:)) :)) :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 14:42:09 
Вымогатель припоя
Аватар пользователя

Карма: -2
Рейтинг сообщений: 105
Зарегистрирован: Ср июн 19, 2013 08:10:48
Сообщений: 577
Откуда: Москва, СПб, Липецк, Рязань
Рейтинг сообщения: -1
Вот такими смайликами в комментариях и набивается рейтинг на сайте. ;)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 14:58:51 
Грызет канифоль

Карма: 3
Рейтинг сообщений: 4
Зарегистрирован: Вт дек 03, 2013 11:04:04
Сообщений: 278
Откуда: Киев
Рейтинг сообщения: -1
ИС-пытатель писал(а):
И специально для kobzar.

ТВОЕ ВИДЕО ДЛЯ НАЧИНАЮЩИХ - ГОВНО!


У меня в топике написано что принимается любая критика!
Но не будете ли вы столь любезны аргументировать свою точку зрения?
Возможно я учту ваши советы при создании следующих уроков?

_________________
Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 15:04:38 
Вымогатель припоя
Аватар пользователя

Карма: -2
Рейтинг сообщений: 105
Зарегистрирован: Ср июн 19, 2013 08:10:48
Сообщений: 577
Откуда: Москва, СПб, Липецк, Рязань
Рейтинг сообщения: 1
В твоем топе смотри ответ.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 15:38:29 
Вымогатель припоя

Карма: 22
Рейтинг сообщений: 114
Зарегистрирован: Пн июн 14, 2010 13:07:29
Сообщений: 630
Откуда: Жуковский
Рейтинг сообщения: 0
Так как очень любопытно все это, то, ИС-пытатель, к Вам просьба - выложите сюда коротенькую программку из 30 строк (без всяких там ненужных инициализаций нулями из мастера CV, как в соседней теме), которая не работает. Включите отладочное "дергание ножками" при входе/выходе в/из каждое прерывание. Покажите в протеусе временнУю расстановку этих событий и укажите конкретно - "вот это не работает". А то в коде из соседней Вашей темы запуск АЦП по таймеру происходит чаще, чем готовы данные АЦП (прерываний от АЦП нет).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 15:52:09 
Вымогатель припоя
Аватар пользователя

Карма: -2
Рейтинг сообщений: 105
Зарегистрирован: Ср июн 19, 2013 08:10:48
Сообщений: 577
Откуда: Москва, СПб, Липецк, Рязань
Рейтинг сообщения: 1
Чуть-чуть поправлю. прерывание от таймера происходит реже. ))) Предделители таймера и АЦП выставлены одинаково (/8). Результат АЦП готов через 13 тактов (согласно Даташиту). А таймер срабатывает через 16 тактов (режим сброс по совпадению. OCRA0 = 15).
Причем, пробовалась частота срабатывания таймера как выше частоты готовности результата АЦП, так и ниже. программа работает. Только когда частота приблизительно равна. контроллер блокируется. Я обязательно выложу ход испытаний сегодня вечером. Сначала код на СИ. Потом код на Ассемблере (Нужен для обнаружения появления ошибки при обращении к стеку в прерывании).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 16:08:15 
Модератор
Аватар пользователя

Карма: 68
Рейтинг сообщений: 424
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Сообщений: 13492
Откуда: Тамбовская обл.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
А не судьба глянуть на ассемблерный листинг компилятора, раз вы так хорошо знаете и то и другое?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 16:25:08 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4894
Откуда: Минск
Рейтинг сообщения: 0
ИС-пытатель писал(а):
Результат АЦП готов через 13 тактов (согласно Даташиту). А таймер срабатывает через 16 тактов (режим сброс по совпадению. OCRA0 = 15).

ЕМНИП, результат АЦП не всегда может быть готов либо через 13 тактов. При первом замере в серии измерений результат будет через 25 тактов, и лишь следующие - через 13. Возможно, ваша программа написана так, что все замеры по сути первые.
Я когда в своей программе использовал АЦП, специально делал один замер перед основным циклом.

P.S.
Код:
A normal conversion takes 13 ADC clock cycles. The first conversion after the ADC is switched on (ADEN in ADCSRA is set) takes 25 ADC clock cycles in order to initialize the analog circuitry.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 16:32:09 
Вымогатель припоя
Аватар пользователя

Карма: -2
Рейтинг сообщений: 105
Зарегистрирован: Ср июн 19, 2013 08:10:48
Сообщений: 577
Откуда: Москва, СПб, Липецк, Рязань
Рейтинг сообщения: 1
первый замер после включения АЦП 25 тактов. Если Вы АЦП не выключали в промежутках между замерами, то Ваш код избыточен. А у меня в инициализации после включения сразу идут два запуска (на всякий случай). т.е. дальше когда ни тыкни - 13 тактов.

ассемблерный листинг компилятора я смотрел. и там все правильно сгенерировано. более того я уже писал о том, что я этот листинг смотрел.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 16:46:01 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4894
Откуда: Минск
Рейтинг сообщения: 0
Кстати, хотя это, вероятно, не относится к данной ситуации. Есть ещё один момент (по ATmega16 помню), что если нужна точность выше 8 бит, то регистры ADCL и ADCH нужно вычитывать в определённой последовательности - сначала ADCL, потом ADCH. Если после ADCL не вычитывать ADCH, то доступ к регистрам данных блокируется.

То есть, нужно либо выравнивать результат (бит ADLAR) влево, и вычитывать только ADCH (8бит точность), либо вычитывать ADCL-ADCH, и именно в этой последовательности.

Посмотрите, вдруг всё-таки в этом причина.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Внимание!!! Баг контроллера!
СообщениеДобавлено: Чт мар 13, 2014 16:53:06 
Вымогатель припоя
Аватар пользователя

Карма: -2
Рейтинг сообщений: 105
Зарегистрирован: Ср июн 19, 2013 08:10:48
Сообщений: 577
Откуда: Москва, СПб, Липецк, Рязань
Рейтинг сообщения: 1
блокируются не для чтения. блокируются для записи. и не оба, а только верхний. Но это не оно. потому что если изменить частоту таймера - все работает. В общем, вечером выложу исходники с пояснениями где что не работает и как обнаружить.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 71 ]  1, , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y