Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


SerF
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вс май 22, 2016 21:19:03

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение SerF »

SerF писал(а):
WiseLord писал(а):Вроде бы правильно.

С другой стороны, можно оставить код как есть, но не использовать манипуляцию с run (запуск АЦП каждое второе прерывание таймера), а просто запускать АЦП каждое прерывание, не удваивая при этом частоту таймера. Будет дисплей чуть медленнее обновляться, но вряд ли это будет заметно. А свободного процессорного времени останется больше, что полезно для 8МГц.
Спасибо.
Попробую.
Собрал сегодня в железе atmega128 + mcp601 (использовал один канал) и столкнулся с прблемой.
Если на входе АЦП нет сигнала, то горят первые столбики (нет 2.5 В).
Если подключить ОУ ко входу АЦП без аудио сигнала начинают плясать все столбики, как будто с сигналом.
Если подать аудио сигнал на ОУ, то также пляшут все столбики.
Если подключить вход АЦП к GND, то все успокаивается.
Помогите!!!
Реклама
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Может, какое-нибудь самовозбуждение ОУ, не знаю даже. Надо смотреть, что на входе АЦП. Если там чётко 2.5В - значит, с МК и программой проблема, если шум - надо на аналоговую часть смотреть.
Реклама
SerF
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вс май 22, 2016 21:19:03

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение SerF »

WiseLord писал(а):Может, какое-нибудь самовозбуждение ОУ, не знаю даже. Надо смотреть, что на входе АЦП. Если там чётко 2.5В - значит, с МК и программой проблема, если шум - надо на аналоговую часть смотреть.
Да на входе 2.5В.
Схему собирал на макете.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

А оригинальный код (с учётом необходимых для 128 меги правок прерываний и т.п.) тоже так себя ведёт?

Может быть, какая-то нестыковка получилась с частотами АЦП? Вдруг не успевает получить все данные до следующего замера. Могу посоветовать попробовать уменьшить делитель частоты АЦП.
Реклама
Эиком - электронные компоненты и радиодетали
SerF
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вс май 22, 2016 21:19:03

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение SerF »

WiseLord писал(а):А оригинальный код (с учётом необходимых для 128 меги правок прерываний и т.п.) тоже так себя ведёт?

Может быть, какая-то нестыковка получилась с частотами АЦП? Вдруг не успевает получить все данные до следующего замера. Могу посоветовать попробовать уменьшить делитель частоты АЦП.
Да, оригинальный, но уменьшил частоту до 8МГц.
Да, что-то с АЦП.
Уменьшил делитель частоты АЦП и пропали вообще все столбики.
Надо копать дальше.
Реклама
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Пропали - может это и хорошо? При отсутствии сигнала там и не должно ничего быть.
Реклама
SerF
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вс май 22, 2016 21:19:03

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение SerF »

WiseLord писал(а):Пропали - может это и хорошо? При отсутствии сигнала там и не должно ничего быть.
Так пропали даже нижние черточки. -----------------
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Ну эти-то должны рисоваться. Если нет, то похоже на тупро зависание контроллера. Или он не успевает весь код в каком-нибудь из прерываний выполнить. Всё же вычислений там порядочно.
SerF
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вс май 22, 2016 21:19:03

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение SerF »

WiseLord писал(а):Ну эти-то должны рисоваться. Если нет, то похоже на тупро зависание контроллера. Или он не успевает весь код в каком-нибудь из прерываний выполнить. Всё же вычислений там порядочно.
А остальные надписи выводятся и не зависают.
SerF
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вс май 22, 2016 21:19:03

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение SerF »

Какие значения принемает adcCorrLeft и adcCorrRight?
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Из eeprom вычитывается. По умолчанию 128 (что. сооветствует нулю в редакторе eeprom). Это то число в ADCH, которое считается нулём.

Фактически, это то, что АЦП вычитывает при отсутствии сигнала. При 2,5В он как раз 128 и намеряет (при 255 максимуме). Поэтому для дальнейших расчётов надо от замера отнимать 128.

Коррекция на несколько пунктов вверх или вниз позволяет убрать НЧ столбики, если ОУ не "отцентрован" и постоянная составляющая на выходе ОУ не равна точно половине питания.
SerF
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вс май 22, 2016 21:19:03

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение SerF »

WiseLord писал(а):Из eeprom вычитывается. По умолчанию 128 (что. сооветствует нулю в редакторе eeprom). Это то число в ADCH, которое считается нулём.

Фактически, это то, что АЦП вычитывает при отсутствии сигнала. При 2,5В он как раз 128 и намеряет (при 255 максимуме). Поэтому для дальнейших расчётов надо от замера отнимать 128.

Коррекция на несколько пунктов вверх или вниз позволяет убрать НЧ столбики, если ОУ не "отцентрован" и постоянная составляющая на выходе ОУ не равна точно половине питания.
А я поставил в программе adcCorrLeft = 0 и adcCorrRight = 0, а надо 128.
Может из-за этого не работать спектр?
SerF
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вс май 22, 2016 21:19:03

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение SerF »

Спасибо WiseLord!
Все прекрасно работает.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

И в чём было дело?
SerF
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вс май 22, 2016 21:19:03

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение SerF »

WiseLord писал(а):И в чём было дело?
Дело было вadcCorrLeft и adcCorrRight.
У меня они были равны 0, а надо было 128 (точнее поставил 130).
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Ну.. вообще-то в eeprom (откуда в код они и вычитываются) по умолчанию они равны 128. А в редакторе, для удобства, представлены в виде 0.
SerF
Первый раз сказал Мяу!
Сообщения: 29
Зарегистрирован: Вс май 22, 2016 21:19:03

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение SerF »

WiseLord писал(а):Ну.. вообще-то в eeprom (откуда в код они и вычитываются) по умолчанию они равны 128. А в редакторе, для удобства, представлены в виде 0.
Но я редактором не пользовался, т.к. мне нужен только спектр и из проекта взял только те файлы, которые отвечают за спектр, дисплей и т.д. Из-за этого и возникла проблема.
Спасибо вам за помощь.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Обновление прошивки.

- Переработан код поддержки протоколов RC-5 и NEC

Теоретически должна быть большая устойчивость к ошибкам передачи... Но кто его знает :)

- Добавлена поддержка пультов с протоколом RC-6

По крайней мере, от универсального пульта, эмулирующего пульт от ТВ Philips, оно работает. Не помешает и дополнительное тестирование со стороны.

- Добавлена поддержка дисплеев LS020.

Так что сейчас у ветки на ATmega16 отобрано последнее преимущество над основной веткой на ATmega32.

Master-ветка на данный момент переименована в m32-clean. В ней, напомню, поддерживаются кнопки на выводах дисплея. В дальнейшем поддержка кнопок/энкодера на отдельных выводах МК в ней будет убрана, останутся только 6 кнопок + энкодер на выводах дисплея, а ветка будет постепенно адаптироваться к переходу на ATmega328, более простой для пайки начинающими и наличествующий в разного рода Arduino.
Вложения
ampcontrol-m32-1cd2731.7z
(944.78 КБ) 277 скачиваний
Последний раз редактировалось WiseLord Вт май 31, 2016 20:30:01, всего редактировалось 1 раз.
Аватара пользователя
VeryLazyCat
Опытный кот
Сообщения: 832
Зарегистрирован: Пн май 17, 2010 22:21:01
Откуда: Madagaskar

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение VeryLazyCat »

Хочу выразить Огромную Благодарность автору проекта за поддержку ls020! :beer:

Кто собирал проект на этом дисплее и для подсветки использовал драйвер на чипе LT1937 -
подсветка теперь регулируется по пину EN без проблем, проверено.

Очень радует, что теперь и в моём проекте с ls020 есть sleep timer и будильник, иконки,
доработанный спектр, короче полный функционал проекта на сегодняшний день.

Жаль камеры нет под рукой, показал бы как это выглядит,
пробовал снимать стареньким олимпусом, но он искажает цвет....
Djon32
Родился
Сообщения: 3
Зарегистрирован: Чт апр 23, 2015 12:20:59

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение Djon32 »

WiseLord спасибо за поддержку проекта на дисплее ls020 :lol: . Сегодня же перешью.
Ответить

Вернуться в «Статьи»