AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
22.07.2022, 00:23
|
|
Прописка
Регистрация: 16.09.2010
Сообщений: 157
Сказал спасибо: 20
Сказали Спасибо 125 раз(а) в 64 сообщении(ях)
|
LGT8F328P не запускается прерывание АЦП
Перевожу потихоньку изделия c ATMega на LGT8F328, сегодня поймал интересное поведение этого чипа.
Изначальный проект сделан на Atmega168, запущено прерывание АЦП, преобразование однократное, в прерывании переключается канал, и снова запускается.
Запуск вот так:
Код:
|
ldi TMP, 0b01100110 ; читаем канал 6, опорный уровень AVCC, выравнивание по левому краю
sts ADMUX, TMP
;запуск АЦП в режим одиночного преобразования
ldi TMP, (1‹‹ADEN)|(1‹‹ADIE)|(1‹‹ADSC)|(0‹‹ADATE)|(5‹‹ADPS0);
sts ADCSRA, TMP |
Все как часики.
Переношу на LGT8F328P - и фигушки, прерывания нет, остальное работает.
В итоге нашел решение.
Код:
|
ldi TMP, 0b01100110 ; читаем канал 6, опорный уровень AVCC, выравнивание по левому краю
sts ADMUX, TMP
;запуск АЦП в режим одиночного преобразования
ldi TMP, (1‹‹ADEN)|(1‹‹ADIE)|(1‹‹ADSC)|(0‹‹ADATE)|(5‹‹ADPS0);
sts ADCSRA, TMP
sts ADCSRA, TMP |
Почему-то стартует, если записать в ADCSRA два раза.
С первого раза не доходит?
|
|
|
|
24.07.2022, 10:12
|
|
Прописка
Регистрация: 27.05.2009
Сообщений: 180
Сказал спасибо: 250
Сказали Спасибо 113 раз(а) в 42 сообщении(ях)
|
Re: LGT8F328P не запускается прерывание АЦП
Сообщение от alex_t2
|
Почему-то стартует, если записать в ADCSRA два раза.
С первого раза не доходит?
|
Может ему небольшая задержка нужна после загрузки мультиплексора?
|
|
|
Сказали "Спасибо" vit66work
|
|
|
24.07.2022, 16:57
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
|
Re: LGT8F328P не запускается прерывание АЦП
продукт 14…17 годов, последнее обновление данных - начало 17 года
Сайт продукта http://www.lgtic.com/lgt8fx8p/ и там все планируемое семейство только из одного варианта так и осталось.
Все переводы специалисты из поднебесной забраковали - есть много сокращений текста и неточностей…
Нет ни errata, ни appnote по использованию…
Переход выглядит сильно рискованным из-за очень вероятных проблем со стабильностью разработанного кода, источником которых будет ситуация с работой с встроенным HW, аналогичная описанной ТС. Без точных данных по работе от разработчика квест с тестированием получится весьма впечатляющим…
Минимальный разброс параметров и рабочее изделие при повторении минимум 50/50 превратится в мину замедленного действия из-за неизвестных временных параметров железа на борту…
Но попробовать никто не запрещает…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
Последний раз редактировалось mike-y-k; 25.07.2022 в 13:32.
|
|
|
|
24.07.2022, 21:38
|
|
Прописка
Регистрация: 16.09.2010
Сообщений: 157
Сказал спасибо: 20
Сказали Спасибо 125 раз(а) в 64 сообщении(ях)
|
Re: LGT8F328P не запускается прерывание АЦП
Сообщение от vit66work
|
Может ему небольшая задержка нужна после загрузки мультиплексора?
|
Тоже предположил, сначала. Пробовал по всякому, не идёт, и хоть ты что.
Потом для проверки сразу после инициализации вставил call на прерывание, и вдруг все заработало.
Двойная запись в регистр -это уже результат перебора вариантов "что ж ему надо-то".
Отписался сюда просто потому, что не нашел на просторах сети. Мало ли кому пригодится.
Так-то контроллер неплохой, а всех нюансов все равно не учесть.
Вот вачдог, например, у LGT установленный период держится как вкопанный, а у меги гуляет от температуры и питания в разы.
|
|
|
|
24.07.2022, 22:37
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
|
Re: LGT8F328P не запускается прерывание АЦП
alex_t2, информация возможно у сообщества есть, но только на китайском…
Я не просил знакомых в поднебесной связаться с указанным в заголовке страницы продукта номером в QQ поддержки…
Но из Вашего объяснения непонятно - двойная запись и одинарная запись и "call на прерывание" дают один результат?
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
Последний раз редактировалось mike-y-k; 24.07.2022 в 22:40.
|
|
|
|
24.07.2022, 23:22
|
|
Прописка
Регистрация: 16.09.2010
Сообщений: 157
Сказал спасибо: 20
Сказали Спасибо 125 раз(а) в 64 сообщении(ях)
|
Re: LGT8F328P не запускается прерывание АЦП
Да, возможно есть, но беглый поиск ничего не дал, поэтому пришлось бороться собственными силами.
По логике программы настраивается однократный запуск АЦП, записью соответствующего бита в регистре, в прерывании выполняется то же самое действие, для повторного запуска. Поэтому двойная запись почти эквивалентна одинарной записи, плюс принудительный вызов функции, выполняющейся по прерыванию. За исключением чтения результата преобразования. Но это я тоже проверял, вставляя чтение регистра в процедуре инициализации. Помогла только двойная запись.
В общем, на баг очень похоже.
|
|
|
|
25.07.2022, 00:12
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
|
Re: LGT8F328P не запускается прерывание АЦП
alex_t2, так вопрос с поиском информации на китайском открыт - пока с индексацией поисковиками этого сегмента сети дела обстоят не очень радостно.
Очень популярный там QQ в остальном мире не сильно распространен, опять же из-за языкового барьера…
Так что если спросить на китайском - высок шанс найти информацию…
Маловероятно, что на эти грабли за столько лет никто не наступил…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
25.07.2022, 12:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.12.2004
Адрес: Bернулся в San Jose,CA,USA,Beach BLVD,свой дом,окна на океан-ничего личного,просто бизнес!
Сообщений: 1,098
Сказал спасибо: 22
Сказали Спасибо 423 раз(а) в 316 сообщении(ях)
|
Re: LGT8F328P не запускается прерывание АЦП
Сообщение от alex_t2
|
Почему-то стартует, если записать в ADCSRA два раза.
С первого раза не доходит?
|
Извините что вмешиваюсь но просто как гипотеза .....
В power register есть бит который тормозит работу тактового генератора ацп по умолчанию , для того чтобы он вышел на рабочий режим нужно время , при запуске преобразования как у вас возможно бит PW сбрасывается и генератор просто не успевает выйти в рабочий режим и запуска перобразования по установке бита первый раз не происходит а второй раз при установке бита условий для запуска достаточно и вы получаете исправную работу , просто как вариант обьясняющий поведение ацп при старте в однократном режиме , а что касается информации так есть pdf на английском , правда он в служебном разделе у производителя но все же есть .
|
|
|
Эти 2 пользователя(ей) сказали Спасибо elon за это сообщение:
|
|
|
25.07.2022, 13:33
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
|
Re: LGT8F328P не запускается прерывание АЦП
elon, а ссылку на английский PDF?
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
25.07.2022, 15:16
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.12.2004
Адрес: Bернулся в San Jose,CA,USA,Beach BLVD,свой дом,окна на океан-ничего личного,просто бизнес!
Сообщений: 1,098
Сказал спасибо: 22
Сказали Спасибо 423 раз(а) в 316 сообщении(ях)
|
Re: LGT8F328P не запускается прерывание АЦП
Это служебный раздел , там доступ по логину/паролю , прямой ссылки нет , только индекс , без верификации доступа к файлам нет
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:05.
|
|