Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Добавлено: Пн июл 24, 2017 23:55:08
Вымогатель припоя
Карма: 2
Рейтинг сообщений: 19
Зарегистрирован: Ср май 05, 2010 20:47:56 Сообщений: 534 Откуда: Украина
Рейтинг сообщения:0
Захотел сменить назначение выводов в проэкте на M8, скачал WinAVR 20100110 и avr-gcc-4.8_2013-03-06, сменил переменную, при попытке использовать команду "make" ошибка о том, что команда не является внутренней или внешней командой, переустановил winavr с совместимостью с winxp (установлена Win7x32), снова сменил переменную. Теперь при "make" выдаёт такое: Спойлер
Варианты: - попробовать взять avr-gcc посвежеее (например, 4.9) - попробовать взять исходники поновее (там включены доп. оптимизации) У меня оригинальные последние исходники собираются avr-gcc-5.4 без проблем, в варианте на TDA7439 ещё и 200 байтов свободных остаётся.
Кстати, есть подозрение, что у Вас сборка идёт avr-gcc-4.7 из комплекта WinAVR, который в плане оптимизации похуже будет. Версию можно проверить командой avr-gcc -v
Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Добавлено: Вт июл 25, 2017 08:20:57
Вымогатель припоя
Карма: 2
Рейтинг сообщений: 19
Зарегистрирован: Ср май 05, 2010 20:47:56 Сообщений: 534 Откуда: Украина
Рейтинг сообщения:0
Спасибо, новый avrgcc и правда не подтягивался, теперь вроде подтянулось но всё равно ошибка, пробовал avrgcc 5.3.1 и 6.3.1, исходники последние для m8 Спойлер
Код:
C:\Users\Ant-RG>avr-gcc -v Using built-in specs. Reading specs from c:/program files/avrgcc/bin/../lib/gcc/avr/6.3.1/device-specs /specs-avr2 COLLECT_GCC=avr-gcc COLLECT_LTO_WRAPPER=c:/program\ files/avrgcc/bin/../libexec/gcc/avr/6.3.1/lto-wr apper.exe Target: avr Configured with: ../../gcc.gnu.org/gcc-6-branch/configure --target=avr --prefix= /local/gnu/install/gcc-6-avr-mingw32 --host=i386-mingw32 --build=x86_64-linux-gn u --enable-languages=c,c++ --disable-nls --disable-shared --enable-lto --with-dw arf2 --with-gnu-ld --with-gnu-as Thread model: single gcc version 6.3.1 20161222 [gcc-6-branch revision 243886] (GCC)
C:\Users\Ant-RG>cd C:\ampcontrol-m8-20170109
C:\ampcontrol-m8-20170109>make avr-gcc -g -Wall -Werror -lm -Os -mcall-prologues -fshort-enums -ffunction-secti ons -fdata-sections -mmcu=atmega8 -DF_CPU=8000000L -MMD -MP -MT build/adc.o -MF build/./adc.d -DKS0066_WIRE_4BIT -DKS0066 -D_NO_MUTE_PORT -D_RDA580X -D_PT232X - c -o build/adc.o adc.c avr-gcc -g -Wall -Werror -lm -Os -mcall-prologues -fshort-enums -ffunction-secti ons -fdata-sections -mmcu=atmega8 -DF_CPU=8000000L -MMD -MP -MT build/display.o -MF build/./display.d -DKS0066_WIRE_4BIT -DKS0066 -D_NO_MUTE_PORT -D_RDA580X -D_ PT232X -c -o build/display.o display.c avr-gcc -g -Wall -Werror -lm -Os -mcall-prologues -fshort-enums -ffunction-secti ons -fdata-sections -mmcu=atmega8 -DF_CPU=8000000L -MMD -MP -MT build/fft.o -MF build/./fft.d -DKS0066_WIRE_4BIT -DKS0066 -D_NO_MUTE_PORT -D_RDA580X -D_PT232X - c -o build/fft.o fft.c avr-gcc -g -Wall -Werror -lm -Os -mcall-prologues -fshort-enums -ffunction-secti ons -fdata-sections -mmcu=atmega8 -DF_CPU=8000000L -MMD -MP -MT build/i2c.o -MF build/./i2c.d -DKS0066_WIRE_4BIT -DKS0066 -D_NO_MUTE_PORT -D_RDA580X -D_PT232X - c -o build/i2c.o i2c.c avr-gcc -g -Wall -Werror -lm -Os -mcall-prologues -fshort-enums -ffunction-secti ons -fdata-sections -mmcu=atmega8 -DF_CPU=8000000L -MMD -MP -MT build/input.o -M F build/./input.d -DKS0066_WIRE_4BIT -DKS0066 -D_NO_MUTE_PORT -D_RDA580X -D_PT23 2X -c -o build/input.o input.c avr-gcc -g -Wall -Werror -lm -Os -mcall-prologues -fshort-enums -ffunction-secti ons -fdata-sections -mmcu=atmega8 -DF_CPU=8000000L -MMD -MP -MT build/main.o -MF build/./main.d -DKS0066_WIRE_4BIT -DKS0066 -D_NO_MUTE_PORT -D_RDA580X -D_PT232X -c -o build/main.o main.c avr-gcc -g -Wall -Werror -lm -Os -mcall-prologues -fshort-enums -ffunction-secti ons -fdata-sections -mmcu=atmega8 -DF_CPU=8000000L -MMD -MP -MT build/remote.o - MF build/./remote.d -DKS0066_WIRE_4BIT -DKS0066 -D_NO_MUTE_PORT -D_RDA580X -D_PT 232X -c -o build/remote.o remote.c avr-gcc -g -Wall -Werror -lm -Os -mcall-prologues -fshort-enums -ffunction-secti ons -fdata-sections -mmcu=atmega8 -DF_CPU=8000000L -MMD -MP -MT build/rtc.o -MF build/./rtc.d -DKS0066_WIRE_4BIT -DKS0066 -D_NO_MUTE_PORT -D_RDA580X -D_PT232X - c -o build/rtc.o rtc.c avr-gcc -g -Wall -Werror -lm -Os -mcall-prologues -fshort-enums -ffunction-secti ons -fdata-sections -mmcu=atmega8 -DF_CPU=8000000L -MMD -MP -MT build/spisw.o -M F build/./spisw.d -DKS0066_WIRE_4BIT -DKS0066 -D_NO_MUTE_PORT -D_RDA580X -D_PT23 2X -c -o build/spisw.o spisw.c avr-gcc -g -Wall -Werror -lm -Os -mcall-prologues -fshort-enums -ffunction-secti ons -fdata-sections -mmcu=atmega8 -DF_CPU=8000000L -MMD -MP -MT build/ks0066.o - MF build/display/ks0066.d -DKS0066_WIRE_4BIT -DKS0066 -D_NO_MUTE_PORT -D_RDA580X -D_PT232X -c -o build/display/ks0066.o display/ks0066.c avr-gcc -g -Wall -Werror -lm -Os -mcall-prologues -fshort-enums -ffunction-secti ons -fdata-sections -mmcu=atmega8 -DF_CPU=8000000L -MMD -MP -MT build/audio.o -M F build/audio/audio.d -DKS0066_WIRE_4BIT -DKS0066 -D_NO_MUTE_PORT -D_RDA580X -D_ PT232X -c -o build/audio/audio.o audio/audio.c audio/audio.c:47:22: error: 'grid_0_15_1' defined but not used [-Werror=unused-c onst-variable=] static const sndGrid grid_0_15_1 PROGMEM = { 0, 15, 1.00 * 8}; /* 0 ..15dB with 1dB step */ ^~~~~~~~~~~ audio/audio.c:46:22: error: 'grid_n12_12_3' defined but not used [-Werror=unused -const-variable=] static const sndGrid grid_n12_12_3 PROGMEM = { -4, 4, 3.00 * 8}; /* - 12..12dB with 3dB step */ ^~~~~~~~~~~~~ audio/audio.c:45:22: error: 'grid_n12_15_3' defined but not used [-Werror=unused -const-variable=] static const sndGrid grid_n12_15_3 PROGMEM = { -4, 5, 3.00 * 8}; /* - 12..15dB with 3dB step */ ^~~~~~~~~~~~~ audio/audio.c:44:22: error: 'grid_n66_20_2' defined but not used [-Werror=unused -const-variable=] static const sndGrid grid_n66_20_2 PROGMEM = {-33, 10, 2.00 * 8}; /* - 66..20dB with 2dB step */ ^~~~~~~~~~~~~ audio/audio.c:41:22: error: 'grid_n96_31_1' defined but not used [-Werror=unused -const-variable=] static const sndGrid grid_n96_31_1 PROGMEM = {-96, 31, 1.00 * 8}; /* - 96..31dB with 1dB step */ ^~~~~~~~~~~~~ audio/audio.c:39:22: error: 'grid_0_18d75_6d25' defined but not used [-Werror=un used-const-variable=] static const sndGrid grid_0_18d75_6d25 PROGMEM = { 0, 3, 6.25 * 8}; /* 0 ..18.75dB with 6.25dB step */ ^~~~~~~~~~~~~~~~~ audio/audio.c:38:22: error: 'grid_0_11d25_3d75' defined but not used [-Werror=un used-const-variable=] static const sndGrid grid_0_11d25_3d75 PROGMEM = { 0, 3, 3.75 * 8}; /* 0 ..11.25dB with 3.75dB step */ ^~~~~~~~~~~~~~~~~ audio/audio.c:37:22: error: 'grid_n18d75_18d75_1d25' defined but not used [-Werr or=unused-const-variable=] static const sndGrid grid_n18d75_18d75_1d25 PROGMEM = {-15, 15, 1.25 * 8}; /* - 18.75..18.75dB with 1.25dB step */ ^~~~~~~~~~~~~~~~~~~~~~ audio/audio.c:36:22: error: 'grid_n78d75_0_1d25' defined but not used [-Werror=u nused-const-variable=] static const sndGrid grid_n78d75_0_1d25 PROGMEM = {-63, 0, 1.25 * 8}; /* - 78.75..0dB with 1.25dB step*/ ^~~~~~~~~~~~~~~~~~ audio/audio.c:35:22: error: 'grid_0_30_2' defined but not used [-Werror=unused-c onst-variable=] static const sndGrid grid_0_30_2 PROGMEM = { 0, 15, 2.00 * 8}; /* 0 ..30dB with 2dB step */ ^~~~~~~~~~~ audio/audio.c:34:22: error: 'grid_n15_15_1' defined but not used [-Werror=unused -const-variable=] static const sndGrid grid_n15_15_1 PROGMEM = {-15, 15, 1.00 * 8}; /* - 15..15dB with 1dB step */ ^~~~~~~~~~~~~ audio/audio.c:33:22: error: 'grid_n47_0_1' defined but not used [-Werror=unused- const-variable=] static const sndGrid grid_n47_0_1 PROGMEM = {-47, 0, 1.00 * 8}; /* - 47..0dB with 1dB step */ ^~~~~~~~~~~~ cc1.exe: all warnings being treated as errors make: *** [build/audio/audio.o] Error 1
Ух ты, шестой gcc ещё строже. Ну а в пятом 60 байт лишних. Уже лучше. Осталось исходники взять посвежее, там пара дополнительных опций для оптимизации включена. Ну, или для 6-го gcc попробовать отключить -Werror/-Wall у компилятора.
Ну, или для 6-го gcc попробовать отключить -Werror/-Wall у компилятора.
Простите, но я не знаю как У меня же TDA7440d, Вы писали, что она аналогична TDA7439 но без регулировки СЧ, её и буду использовать - навыдирал с муз.центров Кстати, что поправить в исходнике что бы убрать регулировку СЧ из меню (под TDA7440)
Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Добавлено: Вт июл 25, 2017 10:53:04
Вымогатель припоя
Карма: 2
Рейтинг сообщений: 19
Зарегистрирован: Ср май 05, 2010 20:47:56 Сообщений: 534 Откуда: Украина
Рейтинг сообщения:0
Спасибо за помощь! В железе проекта пока нет, соберу и буду пробовать. И ещё, как я понял все изменения касательно переназначения функций выводов делаются только в файле pins.h, я прав? Переназначать можно произвольно все выводы кроме портов на I2C? И правильно ли я понимаю, что если нужна прошивка без тюнера то достаточно просто удалить строку TUNER = RDA580X в makefile? Извините что много вопросов, просто решил сразу разобраться
Отключить тюнер можно сборкой make TUNER=NO (или просто прописать этот вариант в Makefile, или просто удалить оттуда)
Да, поменять можно любые ножки кроме аппаратных (I2C, вход анализатора спектра). При большой необходимости можно I2C программный использовать (взять практически совместимый по вызовам код можно, например, из другого моего проекта).
Заголовок сообщения: Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12
Добавлено: Чт авг 03, 2017 09:34:33
Вымогатель припоя
Зарегистрирован: Ср сен 09, 2015 13:09:15 Сообщений: 558
Рейтинг сообщения:0
сделал коммутацию канала с FM тюнером через гнездо штекера 3.5 мм для наушников(5 контактное гнездо). когда в гнезде нет штекера, звук идет от FM тюнера, штекер от внешнего источника в гнездо вставил, звук идет от внешнего источника сигнала. вопрос, как софтово послать команду Mute тюнеру? аудио сигнал от тюнера идет даже при переключении темброблока на другой канал, если штекер не вставлен в гнездо с каналом тюнера, то на соседнем канале его слышно.
AMPControl собран на ATMega8, прошивка ampcontrol_m8_4bit_tda731x_tea5767 предпоследней сборки (репу с гита тяну).
У тюнера есть функция void tunerSetMute(uint8_t value).
На ATmega32 при переключении на отличные от нулевого входа (входа тюнера) входы это всё отрабатывает, и тюнер глушится. На ATmega8 такой обработки, ЕМНИП, нет.
Так что добавьте этот вызов в обработчики переключения входов и всё должно заработать - лишь бы в МК влезло.
Что-то вроде tunerSetMute(aproc.input) будет автоматически глушить тюнер на входах старше нулевого.
P.S. На ATmega32 используется вызов tunerSetMute(aproc.mute || aproc.input).
P.S. На ATmega32 используется вызов tunerSetMute(aproc.mute || aproc.input).
процедуру void tunerSetMute(uint8_t value) нашел в tuner.c в обоих ветках репы, а вызов tunerSetMute(aproc.mute || aproc.input) в ветке M-32 найти не могу, чтобы повторить в m-8.
можете указать точнее файл с обработчиком и синтаксис вызова? я в С пока в категории"чайник" нахожусь
там есть еще 2 процедуры, подходящие по смыслу к задаче(на мой взгляд), void tunerPowerOn(void) void tunerPowerOff(void) в каких случаях их можно корректно заюзать?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 56
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения