Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Добавлено: Ср май 24, 2017 16:01:38
Родился
Зарегистрирован: Пт май 19, 2017 06:52:40 Сообщений: 14
Рейтинг сообщения:0
Спасибо будем пробовать.
Добавлено after 31 minute 18 seconds: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864 Ещё вопрос .Удалять лишнее надо из maktfile и eeprom ?
Но для начала - ничего не удаляя, просто зафиксироваться на нужном экране. Поискать по коду MODE_STANDBY, на который система уходит при включении и срабатывании таймеров, сделать дефолтным MODE_SPECTRUM. Когда заработает как надо - будет включаться и работать только спектр - тогда уже и пробовать удалять лишние куски кода. Если захочется, конечно.
Вероятно, одним из наиболее простых способов будет упростить функцию showScreen() до вызовов getSpectrum() / showSpectrum() / displayUpdate()
WiseLord ткните пожалуйста носом где идет инициализация аудиопроцессора во время выхода из StBy, а то у меня ёмкости стоят большие, импульсник не сразу стартует, где то через секунды полторы запускается, приходится усь включать выключать пару раз, если после первого пуска ничего не делать - тишина, громкость крутнешь - 2 канала работают.
Хочу попробовать повторную инициализацию после запуска с задержкой сделать, если конечно это возможно
_________________ Электроника -очень точная наука, бубен необходимо держать в левой руке!!!
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Так что может помочь простое изменение INIT_TIMER_START в сторону увеличения.
Такие сложности ради того, чтобы система при включении не "висела" в тупом цикле, дожидаясь заряда конденсаторов, а могла реагировать на действия пользователя. А инициализация железа откладывается за счёт таймеров.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Доброго времени суток всем. В конструкции мега 32+lcd2x16+TDA7439 имеются 3 свободные ноги (30,31,32) хочу повесить на них сигнал включения питания блютуз, и других источников звука. Где искать в исходниках? Как реализовать ,чтобы при выборе определенного входа TDA7439 на этих ножках (30,31,32) появлялся высокий уровень?
Тоже в обработчике действий дополнительный код добавить. При любых переключениях входов срабатывает одно из действий CMD_RC_IN_* соответственно. Проще всего встроиться перед функцией sndSetInput(), где и дёргать ножками в зависимости от разности action - CMD_RC_IN_0, принимающей значения от 0 до 4 в зависимости от одного из пяти выбранных входов. Естественно, где-нибудь в инициализации не забыть эти ножки в режим выхода переключить. Ну и учесть, что при dispMode == MODE_STANDBY все три ножки хорошо бы в ноль класть.
Спасибо, изменил значение таймера на 2000, при включении показывает приглушение, потом все просыпается, аудио процессор стартует стабильно, теперь смогу спокойно просыпаться под будильник а то включается и тишина )))) осталось разобраться с щелчками по 4 - 5 штук за секунду... раньше думал 2 щелчка, вчера прислушался и смотрел на секунды на дисплее... на буднях возьму осцил с работы, погляжу что там на i2c творится
_________________ Электроника -очень точная наука, бубен необходимо держать в левой руке!!!
Пробывал ваши изменения работает ,но не так как хотелось бы. Первый глюк: оставляешь строку setExtPower(action - CMD_RC_IN_0); работает как часы при переключении на 1 вход включается при переключении других входов выключается, меняешь на SetExtPower (action - CMD_RC_IN_1); включается при переключении входа 1 и входа 2( получается при включении первых двух входов).Второй глюк при выключении(при переходе в режим стендби) если на выходе (у меня 30 нога остальные ножки я из кода убрал) была единица , то единица и остается висеть (хотя по логике должно сбрасываться в ноль как и ножка стендби).Сам пробовал исправить косяки ,но не хватает знаний.Как эти косяки поправить?
Зачем менять, если без этого работает правильно? Неудивительно, что глюк появится, когда абы что улетит в эту функцию. (P.S. Там небольшая опечатка, вместо (offMask & 0x001) и по аналогии нужно, очевидно, писать offMask & 0b001
HoloH писал(а):
Второй глюк при выключении
Можно добавить в обработчик CMD_RC_STBY вызов этой новой функции с параметром (номером входа) 7. Так как такого входа нет (их всего 4), то его питание и не включится, а вот все прочие extPower выводы выключатся.
Что то никак.) Мои вводные. В редакторе епром : input 0 -tuner(назовем 1 вход),input 1 -bluetooth(2 вход),input 2 - Computer(вход 3),input 3 -line(вход 4). ноги 30,31,32 соответственно выходы управления питанием устройств 30- 2 вход,31- 3 вход, 32- 4 вход. Вставляю ваш кусок из поста от 26.05 исправленный.
static void setExtPower(uint8_t input) { uint8_t offMask = 0b11111111; // By default switch off all devices
if (dispMode != MODE_STANDBY) { offMask &= ~(1 << input); // Don't off one of devices } if (offMask & 0x0b001) PORT(EXT_POWER1) &= ~EXT_POWER1_LINE; else PORT(EXT_POWER1) |= EXT_POWER1_LINE; if (offMask & 0x0b010) PORT(EXT_POWER2) &= ~EXT_POWER2_LINE; else PORT(EXT_POWER2) |= EXT_POWER2_LINE; if (offMask & 0x0b100) PORT(EXT_POWER3) &= ~EXT_POWER3_LINE; else PORT(EXT_POWER3) |= EXT_POWER3_LINE; } работает так: подача питания 30- ноль,31-ноль,32-ноль выход из стенби 30-ноль,31-ноль,32-ноль. переключаю вход 1 на 2 30- единица,31- ноль,32- единица переключаем 2->3 30- 1,31-0,32-0. переключаем 3->4 30-1,31-0,32-0. переключение 4->1 30-1,31-0,31-1. уходим в стенби на любом входе все ножки в ноль. (добавил в обработчике стенби свои ноги ,как вы посоветовали в посте от 28.05) работает не так как надо) а надо: подача питания все ноги в ноль выход из стенби все ноги в ноль переключаем 1->2 30-1,остальные в ноль. переключаем 2->3 31-1, остальные в ноль. переключаем 3->4 32-1, остальные в ноль. переключение 4->1 все в ноль уходим в стенби с любого выхода все в ноль (это работает) Я понял так что надо указать значение offMask для каждой ноги на какие только менять чтоб работало как хочу?
Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Добавлено: Чт июн 01, 2017 13:08:33
Вымогатель припоя
Зарегистрирован: Ср сен 09, 2015 13:09:15 Сообщений: 558
Рейтинг сообщения:0
созрело 2 вопроса: 1 можно ли обойтись без операционного усилителя для спектроанализатора на ATMEGA8, подав на AREF ИОН 1 V, или операционник выполняет функцию развязки аудиотракта от шумов контроллера? нужны ли LC фильтры для AVCC и конденсатор на AREF c резистором 5 кОм к ИОН, как пишут во всех даташитах на меги?
2 как допилить до актуального состояния исходники под ATMEGA8, с учетом доработок из ветки репы ATMEGA32? подкладывание исходников с ветки в ветку проблемы не решает, нужны более глубокие знания в структуре кода. в последних скомпиленых хешах на мегу8 глюк с 2мя столбиками на НЧ, пересобрал из исходников репы, глюк со столбиками повторился. build_all.sh вываливает ошибки и не компилит, приходится в make прописывать напрямую.
Добавлено after 27 minutes 14 seconds: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864 И да, в даташите на TDA7313 http://ampslab.com/PDF/tda7313.pdf отдельно отведены цифровые линии [26,27,28 pins] 26пин цифровая земля от микроконтроллера, если её не соединять с аналоговой землей тдашки, то шумы от шины I2C перестанут пролазить в аналоговый тракт усилителя. землю и VCC контроллера только тоже надо пропустить через LC фильтры, дабы не загонять вч помеху в общую цепь шины питания. до ТДА еще ход не дошел, чтобы проверить, но с тюнера на TEA5767 сигнальную шину слышно отчетливо, тоже буду отфильтровывать на стабилизатое 3.3 V, от 5 V он просто затыкается. http://artofcircuits.com/wp-content/upl ... dule-3.jpg
1. По идее, можно. Должно хватить двух резисторов на входе в качестве делителя, чтобы обеспечить 2.5В (половину питания) на входе АЦП и разделительного конденсатора для подачи сигнала. Возможно, из-за более низкого уровня сигнала придётся в коде "подкрутить" усиление. 2. Смысла нет. ATmega8 уже и так забита на 100% (8188 байта из 8192 доступных в моём случае). Скрипт build_all.sh работает. Два столбика на НЧ видны из-за того, что не обеспечена половина питания на входе АЦП.
1. По идее, можно. Должно хватить двух резисторов на входе в качестве делителя, чтобы обеспечить 2.5В (половину питания) на входе АЦП и разделительного конденсатора для подачи сигнала. Возможно, из-за более низкого уровня сигнала придётся в коде "подкрутить" усиление. 2. Смысла нет. ATmega8 уже и так забита на 100% (8188 байта из 8192 доступных в моём случае). Скрипт build_all.sh работает. Два столбика на НЧ видны из-за того, что не обеспечена половина питания на входе АЦП.
Попробуйте на #!/bin/bash поменять заголовок - скрипт под него, по идее. А у Вас, вероятно, какой-то другой шелл. Или "/usr/bin/[" в системе нету. Можно ещё квадратные скобки на двойные поменять попробовать.
Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Добавлено: Чт июн 01, 2017 17:28:14
Вымогатель припоя
Зарегистрирован: Ср сен 09, 2015 13:09:15 Сообщений: 558
Рейтинг сообщения:0
таки да, #!/bin/bash вместо #!/bin/sh исправил положение спасибо. компилю в вин10 с надстройкой Ubuntu https://habrahabr.ru/post/280560/. доставил: "sudo apt-get install gcc-avr binutils-avr avr-libc avrdude gdb-avr avarice simulavr"
Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Добавлено: Пт июн 02, 2017 15:38:42
Вымогатель припоя
Зарегистрирован: Ср сен 09, 2015 13:09:15 Сообщений: 558
Рейтинг сообщения:0
в исходниках на M8 явно что-то не так, даже в протеусе 2 левых столбика в спектре горят, эмуляция c M32 показывает нормальный спектр. потому я и попросил автора внести изменения и в ветку M8 на гите. и менюшки в M8 M32 разные для ks0066 дисплея. разобраться в коде по истории изменений у меня знаний языка маловато, да и код уж очень разный.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 42
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения