![]() |
Цитата:
|
oleg707 От души!
Если често Я сам иногда охереваю от возможностей этой платы) точнее от STM32 и DSP проца ADAU1452 Получается просто бомбезная штука. Жду петличный микрофон с алиэкспресс (Boya M1, который весь интернет заполонил:) )чтоб записать видео, показать и расказать что получилось. Кстати она ещё и с Android магнитолами работает, т.е. с китайских майфунов можно выдернуть процессорный звук. |
Цитата:
|
Плата.
|
Вложений: 7
Всем привет! Прошивка дляSTM32F303RB на столько разрослась что в конечном итоге в неё не поместиться, придётся использовать более объёмистую с 256кБ памяти STM32F303RC. На данный момент используется 103кб памяти из 128, это без учёта переменных которые будут управлять процессором без участия Android.
Сейчас уже работает абсолютно всё, сегодня сделали массивы переменных которые при включении зажигания будут считываться с энэргонезависимой памяти (EEPROM) в оперативную память STM32, потом при запросе с Android будут перекачены туда а при отключении зажигания если есть изменения записываться на EEPROM чтоб при следующем включении, все наши настройки сохранились, это просто чума)) работать со всеми этими банками памяти. Скинул фотку для хранения данных 1-го параметрического эквалайзера, их там 10шт + куча ползунков и вертелок. Но ничего скоро этот зверёк заработает в полную силу. Определился с функциональными блоками в SigmaStudia, прикрепил фотки, пока что всё останется так. 6 каналов широкополсных, 2 канала для низов, 2 канала для мидов, 2 канала для пищалок. В общем 12 каналов. (по дефолту будет так, а вообще можно со всеми 12 каналами вертеть как угодно). Казалось всё просто, на деле же, работы оказалось на много больше:smile2:. Ещё одна новость, это то что мне помогает писать ПО друг, он учился на программиста, так что процесс пойдёт быстрее. Ах да плату можно настроить командами типа АТ, для этого сделал менюшку, там ещё будт подменюшки и т.д. в общем потом сделаю описание на сайте. Фото приложил (Там пока просто накидано для тестов, но потом всё сделаю логичней:)). |
Можно я тебе совет дам? Делай контрольную сумму еепрома. А потом заодно и меня научишь. ;)
Сколько ячеек используешь? Одну (0-255 )или больше? |
Вложений: 3
Цитата:
Прикрепил пару фоток, так выглядят массивы, запарился их забивать это тока крошечная часть. |
А ты после записи еепрома кроме контроля КС ещё раз вычитывай еепром. По идее можно создавать временную переменную, работать с ней, а потом стирать для чистки оперативки.
Можно хотя бы КС считать. Вроде так и делают в автомобилях. Ну и потом совпадает - не совпадает. И серийник тоже в какой нить ячейке сделай;) Какой кондер на еепром вешал? 0,1? |
Кстати как раз думал над способом повторного считывания, здесь ещё посоветовали дублировать массивы в EEPROM, если не совпадает КС в одной ячейке читаем с другой.
Кондёр на 0.1uF, никогда бы не подумал что он на столько важен)) |
Вопросики не совсем по этому девайсу,но...есть ли возможность (программка) перенастраивать stm из под андроида? В идеале (наверное утопия) - т.с. на лету. И можно ли слить и расковырять прошивку из stm,чтобы как-то ее отредактировать?
|
В общем удалось сделать сохранение всех настроек из оперативной памяти в EEPROM, т.е. теперь при отключении зажигания всё сохраняется, допустим установили определённую громкость или настроили эквалайзер, при следующем включении всё запуститься с вашими настройками.
Ещё хочу приделать функцию вежливой громкости, которая при включении плавно прибавит до установленной громкости, при отключении плавно убавит до нуля. |
Делай сразу настройку максимальной громкости при включении зажигания. Еепром же внешний, правильно? У проца ресурс записи не очень, около ста тысяч.
|
Вложений: 2
EEPROM внешний, Зачем громкость на максимум? При использовании этого проца громкость будет выставляться при помощи цапа а не с системы Android. EEPROM внешний 24LC256 он подключен к STM32 у него циклов записи 1 000 000 хватит на всю жизнь.
Откуда инфа что у проца ресурс не очень? А вообще, у проца нет пзу, а только озу. Соответственно у него нет понятия ресурс, хоть триллион раз меняй регистры ничего не будет. Поэтому при каждом включении её нужно инициализировать так как при отключении питания прошивка в DSP теряется, на данный момент вся инициализация идёт с STM32 (с памяти STM32 перекачивается в DSP прошивка которая сгенерирована в SigmaStudia и выставляются регистры) Кстати в STM32 прошивка для DSP занимает целых 49кБ памяти. Если увеличить задержки для всех 12 выходных каналов до 25-30ms, прошивка в STM32F303RB уже не влазит и занимает 170кб памяти. + прошивка самой STM32 ~70кБ. так что STM32F303RC будет в самый раз. на данный момент пока тестирую всё на STM32F303RB у неё 128кб памяти. 128 кб STM32F303RB 49кб + 70кб = 119кб практический на пределе) и ещё оперативки из 40 кб используется 29кб 256 кб STM32F303RC 170кб + 70кб = 240кб Закинул пару фоток. |
Громкость - если заглушить на очень громко, чтобы потом оно включалось на уровне, который я настрою (20)
Если заглушить тихо, то на этом уровне и включать. Еепром как и флеш в проце имеет меньший ресурс, чем внешний. Откуда знаю уже не помню, вроде из даташита. По крайней мере атмеги , про стм не скажу. Про ОЗУ это и так понятно. |
Вложений: 1
Саша, объясни плиз! Как будет управление DSP от Android?
Правильно я понял, что вот эти коды что генерирует sigmastudio (ниже скрин) ты пропишешь в android приложении и будешь транслировать их по Bluetooth. Bluetooth DSP слушает команды посылаемые от Android и передает их на STM, STM их просто перенаправляет на ADAU |
Вся передача будет по USB. От блютус пока что отказался (возможно в будущем приделаю)
У этих переменных что на скрине есть ещё адреса, они хранятся на STM32, + на STM32 еще храняться все стандартные настройки под тип тех что на скрине. На android формируются эти переменные определёнными формулами и передаются по usb на STM32 дальше им присваиваются адреса и отправляются на DSP (далее они сохраняются в оперативной памяти если произошло отключение то записываются в энэргонезависимую память EEPROM. при включении считываются с энэргонезависимой памяти в оперативную память и передаются на DSP) И таких переменных с разными адресами примерно 500-600штук. Я запарился их вбивать. В общем этот механизм довольно сложный, хотя на первый взгляд кажется простым. |
Я понял, спасибо!
Посижу еще помучаюсь с передачей по Bluetooth каналу команд |
Вложений: 9
Всем привет! Начали приходить комплектующие для сборки первой партии.
|
фильм со сборкой будет?
|
Вложений: 1
Цитата:
Пока что начал рисовать схемы устройства. Прикрепил схему USB хаба в PDF здесь. |
Цитата:
|
Цитата:
|
Вложений: 8
опечатки есть уж (Исправлю), очень много всего: схемы, платы, прошивки, программы и т.п))
Решил скинуть скриншоты приложения. Интерфейс по началу будет самым простым, так как сейчас основной упор на внутренние алгоритмы обработки, передачи и приёму информации с платы dixom-c12, которые по сути не видны пользователю. В общем за интерфейс возьмусь попозже, я думаю важнее стабильная работа нежели красивая обёртка) |
Цитата:
|
Цитата:
В общем андройд трудновато даётся, всё приходится изучать. |
Цитата:
|
Интерфейс можно потом подправить, щас нужно отладить связь
|
Я то же считаю, что на данном этапе лучше уделить больше внимания бэкэнду.
|
Цитата:
Нифигасе у тебя здоровья!!! |
Цитата:
|
Цитата:
|
Вложений: 4
basurman С железо на 100% разбираюсь сам, с программной частью иногда помогает друг, он учился на программиста. Проект получился сложный, но оно того стоит:yes4:
И так по делу, пришли 50шт. RCA разъёмы "RS-409". для подключения межблочных кабелей. И очень меня расстроили, они немного больше чем я думал, в итоге на плате помещаются не все разъёмы. Нашёл один нестандартный выход это повернуть AUX вход в сторону платы :rolleyes2: всё равно его нужно удлинять и выводить кудато в бардачок, предусмотрел чтобы в месте подключения Aux провода не было никаких торчащих элементов. Думаю норм вариант:smile1: Очень повезло что не заказал печатные платы) почти все элементы для сборки уже получил, на днях на завод в количестве 20шт. |
Вложений: 9
Нарисовал всю схему питания платы и её управлением.
Также заказал печатные платы 20шт + 2 трафареты с рамкой и электрохимической полировкой на верхнюю и нижнюю стороны всё обошлось в 15 тыс руб. (из них доставка 6,5 тыс, обыскал кучу контор никто не хочет делать доставку дешевле) В России вообще сдурели, всё обходится не меньше 30 тыс, + доставка. Ссылка на PDF формат схемы |
Цитата:
Почему ты используешь для управления REM связку 2х транзисторов?! Если уже давно существуют интеллектуальные ключи да еще с защитой по току! :bye:Тогда даже предохранители там можно не ставить ( такая схема используется в управлении всем штатным светом в бмв X5 X6. Только ключи по I2C шине управляются ) Как пример глянь мои или Сканча проекты! Есть ключи в SOP-8 корпусе, не требуют обвязки и резисторов:secret:. Максимум - блокировочные конденсаторы 0.1uF. |
Вложений: 1
Цитата:
Выбор пал на AO4801 из за её цены (она дешевая) и идеально подходит для этих целей, а BC817 так вообще копейки стоит. В общем такой подход из за дешевизны компонентов. Плата и так получилась дорогой. Даташит на AO4801 |
Вложений: 5
Нарисовал схему обвязки STM32, управления портами USB3-4, датчиком холла и режимом OTG.
Ссылка на PDF формат схемы |
Ребята, наконец то всё заработало! Теперь все настройки которые храняться в STM32 без проблем переносятся в андройд приложение и выставляют ползунки и переключатели точ в точ).
Всё это было реализовать сложно так как все эти переменные храняться в массивах данных фотки которых я выкидывал на форум раньше, да ещё и в 16 ричном формате с плавающей запятой до 7го знака. Записал демонстрационное видео |
И че там сложного? Организовываешь структуру и передаешь ее одним махом. Аля блочное чтение/запись.
|
Цитата:
и полный кикл от включения до отключения выглядит примерно так: 1) инициализируем структуру данных (массивы из дефолтных настроек) 2) записываем прошивку в DSP 3) читаем из EEPROM настройки и заполняем структуру 4) присваиваем каждому элементу управления из структуры адресса которые зашиты в DSP 5) передаём данные настроек из структуры в DSP 6) по запросу с android передаём данные по USB на android 7) на android принимаем 16 ричные значения 8) Производим обратное конвертировани при помощи формул БИХ фильтров 9) Ковертированые данные выглядят примерно так 0.92342223 их конвертируем в понятный для человека вид в виде целых чисел. 10) чтоб отправить данные опять ковертируем из целых чисел в не целые 11) конвертируем значения при помощи формул БИХ 12) отправляем по USB в STM32 13) заполняем структуру новыми данными 14) отправляем новые данные на DSP 15 ) при отключении пишем структуру с новыми данными в EEPROM как то так:be: не так уж просто, я на всё это кучу времени потратил чтоб всё работало без ошибок. Самая запара в расчётах коэфициентов БИХ фильтров, как и писал выше. |
Нафига столько конвертаций? В твоем случае все должен делать СТМ включая расчет фильтров. Ты только передаешь значения громкости, усиления для фильтра, тип и тд., а сама стм уже ведет нужный расчет и закидывает в дсп по нужным адресам.
Для дсп сигма сама формирует все адреса, нужно только закинуть их раз в таблицу и забыть. Потом поменял прошивку и поменял адреса дсп, которые нужно менять...все. Ничего сложного, если уже знать что и как ))) Со временем сам многое улучшишь/упростишь. ЗЫ. Я же сразу говорил, что сильно большой "пирог" решил за раз укусить...надо было постепенно усложнять девайс. |
Часовой пояс GMT +4, время: 19:59. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot