PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Звуковые процессоры (http://pccar.ru/forumdisplay.php?f=188)
-   -   Аудиопроцессор для планшетов. Настраиваемый с андроид. (http://pccar.ru/showthread.php?t=24040)

oleg707 24.10.2017 17:31

Цитата:

Сообщение от Alekssandr (Сообщение 393759)
Ура товарищи. Удалось запихать в STM32 прошивку для DSP котурую генерирует SigmaStudio. Терь на плате можно хранить целых 2 прошивки, одна в eeprom DSP которую можете сделаете сами в визуальном редакторе если захотите, вторая будет храниться в stm32 и будет обновляться вместе с прошивкой для stm32, переключение между прошивками с приложения на андройд.

Ещё в блютус модуле обнаружим прикольные функции которые выводят с подключенного телефона по hands free уровень сотового сигнала и имя оператора, думаю будет полезно видить при звонке с планшета какой уровень сигнала не доставая телефон.

Молодца, красавец!:yes4:

Alekssandr 24.10.2017 22:47

oleg707 От души!

Если често Я сам иногда охереваю от возможностей этой платы) точнее от STM32 и DSP проца ADAU1452

Получается просто бомбезная штука. Жду петличный микрофон с алиэкспресс (Boya M1, который весь интернет заполонил:) )чтоб записать видео, показать и расказать что получилось.

Кстати она ещё и с Android магнитолами работает, т.е. с китайских майфунов можно выдернуть процессорный звук.

sandr2010 24.10.2017 22:57

Цитата:

Сообщение от Alekssandr (Сообщение 393785)
Кстати она ещё и с Android магнитолами работает, т.е. с китайских майфунов можно выдернуть процессорный звук.

Уточните - она это кто/что? SigmaStudio? Или плата?

Alekssandr 25.10.2017 08:53

Плата.

Alekssandr 30.10.2017 23:52

Вложений: 7
Всем привет! Прошивка дляSTM32F303RB на столько разрослась что в конечном итоге в неё не поместиться, придётся использовать более объёмистую с 256кБ памяти STM32F303RC. На данный момент используется 103кб памяти из 128, это без учёта переменных которые будут управлять процессором без участия Android.

Сейчас уже работает абсолютно всё, сегодня сделали массивы переменных которые при включении зажигания будут считываться с энэргонезависимой памяти (EEPROM) в оперативную память STM32, потом при запросе с Android будут перекачены туда а при отключении зажигания если есть изменения записываться на EEPROM чтоб при следующем включении, все наши настройки сохранились, это просто чума)) работать со всеми этими банками памяти. Скинул фотку для хранения данных 1-го параметрического эквалайзера, их там 10шт + куча ползунков и вертелок. Но ничего скоро этот зверёк заработает в полную силу.

Определился с функциональными блоками в SigmaStudia, прикрепил фотки, пока что всё останется так. 6 каналов широкополсных, 2 канала для низов, 2 канала для мидов, 2 канала для пищалок. В общем 12 каналов. (по дефолту будет так, а вообще можно со всеми 12 каналами вертеть как угодно).

Казалось всё просто, на деле же, работы оказалось на много больше:smile2:. Ещё одна новость, это то что мне помогает писать ПО друг, он учился на программиста, так что процесс пойдёт быстрее.

Ах да плату можно настроить командами типа АТ, для этого сделал менюшку, там ещё будт подменюшки и т.д. в общем потом сделаю описание на сайте. Фото приложил (Там пока просто накидано для тестов, но потом всё сделаю логичней:)).

oleg707 31.10.2017 01:28

Можно я тебе совет дам? Делай контрольную сумму еепрома. А потом заодно и меня научишь. ;)
Сколько ячеек используешь? Одну (0-255 )или больше?

Alekssandr 31.10.2017 02:53

Вложений: 3
Цитата:

Сообщение от oleg707 (Сообщение 394002)
Можно я тебе совет дам? Делай контрольную сумму еепрома. А потом заодно и меня научишь. ;)
Сколько ячеек используешь? Одну (0-255 )или больше?

Хороший совет, обязательно подумаю, ато пока кондёр не повесил на ножки питания EEPROM там всяких ошибок было море. В ячейки пишу побайтово массивами. В принципе EEPROM нужна тока во время включения и выключения, нужно будет как-то настроить чтоб в этои моменты ничего другого не происходило чтоб данные в EEPROM легли точ в точ. Ячеек будет использовано около 5-7 тыс.

Прикрепил пару фоток, так выглядят массивы, запарился их забивать это тока крошечная часть.

oleg707 31.10.2017 12:17

А ты после записи еепрома кроме контроля КС ещё раз вычитывай еепром. По идее можно создавать временную переменную, работать с ней, а потом стирать для чистки оперативки.
Можно хотя бы КС считать. Вроде так и делают в автомобилях. Ну и потом совпадает - не совпадает.
И серийник тоже в какой нить ячейке сделай;)

Какой кондер на еепром вешал? 0,1?

Alekssandr 31.10.2017 15:38

Кстати как раз думал над способом повторного считывания, здесь ещё посоветовали дублировать массивы в EEPROM, если не совпадает КС в одной ячейке читаем с другой.

Кондёр на 0.1uF, никогда бы не подумал что он на столько важен))

sandr2010 03.11.2017 08:48

Вопросики не совсем по этому девайсу,но...есть ли возможность (программка) перенастраивать stm из под андроида? В идеале (наверное утопия) - т.с. на лету. И можно ли слить и расковырять прошивку из stm,чтобы как-то ее отредактировать?

Alekssandr 05.11.2017 00:35

В общем удалось сделать сохранение всех настроек из оперативной памяти в EEPROM, т.е. теперь при отключении зажигания всё сохраняется, допустим установили определённую громкость или настроили эквалайзер, при следующем включении всё запуститься с вашими настройками.

Ещё хочу приделать функцию вежливой громкости, которая при включении плавно прибавит до установленной громкости, при отключении плавно убавит до нуля.

oleg707 05.11.2017 01:26

Делай сразу настройку максимальной громкости при включении зажигания. Еепром же внешний, правильно? У проца ресурс записи не очень, около ста тысяч.

Alekssandr 05.11.2017 01:41

Вложений: 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кб

Закинул пару фоток.

oleg707 05.11.2017 12:42

Громкость - если заглушить на очень громко, чтобы потом оно включалось на уровне, который я настрою (20)
Если заглушить тихо, то на этом уровне и включать.

Еепром как и флеш в проце имеет меньший ресурс, чем внешний. Откуда знаю уже не помню, вроде из даташита. По крайней мере атмеги , про стм не скажу. Про ОЗУ это и так понятно.

Senia 05.11.2017 15:34

Вложений: 1
Саша, объясни плиз! Как будет управление DSP от Android?
Правильно я понял, что вот эти коды что генерирует sigmastudio (ниже скрин) ты пропишешь в android приложении и будешь транслировать их по Bluetooth. Bluetooth DSP слушает команды посылаемые от Android и передает их на STM, STM их просто перенаправляет на ADAU

Alekssandr 06.11.2017 02:35

Вся передача будет по USB. От блютус пока что отказался (возможно в будущем приделаю)

У этих переменных что на скрине есть ещё адреса, они хранятся на STM32, + на STM32 еще храняться все стандартные настройки под тип тех что на скрине. На android формируются эти переменные определёнными формулами и передаются по usb на STM32 дальше им присваиваются адреса и отправляются на DSP (далее они сохраняются в оперативной памяти если произошло отключение то записываются в энэргонезависимую память EEPROM. при включении считываются с энэргонезависимой памяти в оперативную память и передаются на DSP)

И таких переменных с разными адресами примерно 500-600штук. Я запарился их вбивать.

В общем этот механизм довольно сложный, хотя на первый взгляд кажется простым.

Senia 06.11.2017 11:31

Я понял, спасибо!
Посижу еще помучаюсь с передачей по Bluetooth каналу команд

Alekssandr 13.11.2017 13:14

Вложений: 9
Всем привет! Начали приходить комплектующие для сборки первой партии.

sirota 13.11.2017 16:53

фильм со сборкой будет?

Alekssandr 14.11.2017 13:38

Вложений: 1
Цитата:

Сообщение от sirota (Сообщение 394680)
фильм со сборкой будет?

Вчера пришёл микрофон, заказывал как раз чтоб ролики записывать, устройство получилось довольно сложное. При помощи видео контента будет проще донести информацию что да как.

Пока что начал рисовать схемы устройства. Прикрепил схему USB хаба в PDF здесь.

oleg707 15.11.2017 03:29

Цитата:

Сообщение от Alekssandr (Сообщение 394721)
Вчера пришёл микрофон, заказывал как раз чтоб ролики записывать, устройство получилось довольно сложное. При помощи видео контента будет проще донести информацию что да как.

Пока что начал рисовать схемы устройства. Прикрепил схему USB хаба в PDF здесь.

А КАК это PNP мосфет?!:ohmy2::be::big:

basurman 15.11.2017 04:37

Цитата:

Сообщение от oleg707 (Сообщение 394748)
А КАК это PNP мосфет?!:ohmy2::be::big:

да очепятался, P канальными.

Alekssandr 17.11.2017 14:32

Вложений: 8
опечатки есть уж (Исправлю), очень много всего: схемы, платы, прошивки, программы и т.п))

Решил скинуть скриншоты приложения. Интерфейс по началу будет самым простым, так как сейчас основной упор на внутренние алгоритмы обработки, передачи и приёму информации с платы dixom-c12, которые по сути не видны пользователю. В общем за интерфейс возьмусь попозже, я думаю важнее стабильная работа нежели красивая обёртка)

oleg707 17.11.2017 15:01

Цитата:

Сообщение от Alekssandr (Сообщение 394877)
опечатки есть уж (Исправлю), очень много всего: схемы, платы, прошивки, программы и т.п))
........ В общем за интерфейс возьмусь попозже, я думаю важнее стабильная работа нежели красивая обёртка)

Ты неправ. Не откладывай интерфейс на потом.

Alekssandr 17.11.2017 17:10

Цитата:

Сообщение от oleg707 (Сообщение 394878)
Ты неправ. Не откладывай интерфейс на потом.

Как бы я отложил тока красоту а заготовки на будущее со всеми названиями ID элементов я делаю сразу.

В общем андройд трудновато даётся, всё приходится изучать.

oleg707 17.11.2017 18:09

Цитата:

Сообщение от Alekssandr (Сообщение 394884)
Как бы я отложил тока красоту а заготовки на будущее со всеми названиями ID элементов я делаю сразу.

В общем андройд трудновато даётся, всё приходится изучать.

как я тебя понимаю:yes2:

Senia 17.11.2017 18:40

Интерфейс можно потом подправить, щас нужно отладить связь

Rage2 19.11.2017 13:35

Я то же считаю, что на данном этапе лучше уделить больше внимания бэкэнду.

basurman 21.11.2017 02:15

Цитата:

Сообщение от Alekssandr (Сообщение 394671)
Всем привет! Начали приходить комплектующие для сборки первой партии.

И ты один с этим воюешь?:huh2::blink2:
Нифигасе у тебя здоровья!!!

oleg707 21.11.2017 13:16

Цитата:

Сообщение от basurman (Сообщение 395076)
И ты один с этим воюешь?:huh2::blink2:
Нифигасе у тебя здоровья!!!

а ты думаешь, почему так долго. У меня на более простые проекты года уходят, чтобы вылизать.

basurman 21.11.2017 16:30

Цитата:

Сообщение от oleg707 (Сообщение 395092)
а ты думаешь, почему так долго. У меня на более простые проекты года уходят, чтобы вылизать.

А че мне думать, я это все знаю. Про года ты загнул. Этот проект возможно и глобальный, спору нет работа большая.

Alekssandr 22.11.2017 18:39

Вложений: 4
basurman С железо на 100% разбираюсь сам, с программной частью иногда помогает друг, он учился на программиста. Проект получился сложный, но оно того стоит:yes4:

И так по делу, пришли 50шт. RCA разъёмы "RS-409". для подключения межблочных кабелей. И очень меня расстроили, они немного больше чем я думал, в итоге на плате помещаются не все разъёмы.
Нашёл один нестандартный выход это повернуть AUX вход в сторону платы :rolleyes2: всё равно его нужно удлинять и выводить кудато в бардачок, предусмотрел чтобы в месте подключения Aux провода не было никаких торчащих элементов. Думаю норм вариант:smile1:

Очень повезло что не заказал печатные платы) почти все элементы для сборки уже получил, на днях на завод в количестве 20шт.

Alekssandr 02.12.2017 14:57

Вложений: 9
Нарисовал всю схему питания платы и её управлением.

Также заказал печатные платы 20шт + 2 трафареты с рамкой и электрохимической полировкой на верхнюю и нижнюю стороны всё обошлось в 15 тыс руб. (из них доставка 6,5 тыс, обыскал кучу контор никто не хочет делать доставку дешевле) В России вообще сдурели, всё обходится не меньше 30 тыс, + доставка.

Ссылка на PDF формат схемы

oleg707 02.12.2017 15:45

Цитата:

Сообщение от Alekssandr (Сообщение 395789)
Нарисовал всю схему питания платы и её управлением.

Также заказал печатные платы 20шт + 2 трафареты с рамкой и электрохимической полировкой на верхнюю и нижнюю стороны всё обошлось в 15 тыс руб. (из них доставка 6,5 тыс, обыскал кучу контор никто не хочет делать доставку дешевле) В России вообще сдурели, всё обходится не меньше 30 тыс, + доставка.

Ссылка на PDF формат схемы

привет, только сейчас увидел. :shok:
Почему ты используешь для управления REM связку 2х транзисторов?!

Если уже давно существуют интеллектуальные ключи да еще с защитой по току! :bye:Тогда даже предохранители там можно не ставить ( такая схема используется в управлении всем штатным светом в бмв X5 X6. Только ключи по I2C шине управляются )
Как пример глянь мои или Сканча проекты!
Есть ключи в SOP-8 корпусе, не требуют обвязки и резисторов:secret:. Максимум - блокировочные конденсаторы 0.1uF.

Alekssandr 02.12.2017 16:37

Вложений: 1
Цитата:

Сообщение от oleg707 (Сообщение 395792)
привет, только сейчас увидел. :shok:
Почему ты используешь для управления REM связку 2х транзисторов?!

Всё просто, AO4801 это P канальный мосфет в корпусе SOIC8, чтоб его полностью закрыть нужно подать на GATE напряжение что и на SOURS, если это делать без транзистора BC127 как минимум выгорит ножка микроконтроллера ATTINY24.
Выбор пал на AO4801 из за её цены (она дешевая) и идеально подходит для этих целей, а BC817 так вообще копейки стоит. В общем такой подход из за дешевизны компонентов. Плата и так получилась дорогой.

Даташит на AO4801

Alekssandr 02.12.2017 20:04

Вложений: 5
Нарисовал схему обвязки STM32, управления портами USB3-4, датчиком холла и режимом OTG.


Ссылка на PDF формат схемы

Alekssandr 06.12.2017 23:44

Ребята, наконец то всё заработало! Теперь все настройки которые храняться в STM32 без проблем переносятся в андройд приложение и выставляют ползунки и переключатели точ в точ).

Всё это было реализовать сложно так как все эти переменные храняться в массивах данных фотки которых я выкидывал на форум раньше, да ещё и в 16 ричном формате с плавающей запятой до 7го знака.

Записал демонстрационное видео

awtoap 07.12.2017 00:19

И че там сложного? Организовываешь структуру и передаешь ее одним махом. Аля блочное чтение/запись.

Alekssandr 07.12.2017 00:59

Цитата:

Сообщение от awtoap (Сообщение 396084)
И че там сложного? Организовываешь структуру и передаешь ее одним махом. Аля блочное чтение/запись.

Легко на словах а на деле, всё это на много сложнее.

и полный кикл от включения до отключения выглядит примерно так:
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: не так уж просто, я на всё это кучу времени потратил чтоб всё работало без ошибок. Самая запара в расчётах коэфициентов БИХ фильтров, как и писал выше.

awtoap 07.12.2017 02:19

Нафига столько конвертаций? В твоем случае все должен делать СТМ включая расчет фильтров. Ты только передаешь значения громкости, усиления для фильтра, тип и тд., а сама стм уже ведет нужный расчет и закидывает в дсп по нужным адресам.
Для дсп сигма сама формирует все адреса, нужно только закинуть их раз в таблицу и забыть. Потом поменял прошивку и поменял адреса дсп, которые нужно менять...все. Ничего сложного, если уже знать что и как ))) Со временем сам многое улучшишь/упростишь.

ЗЫ. Я же сразу говорил, что сильно большой "пирог" решил за раз укусить...надо было постепенно усложнять девайс.


Часовой пояс GMT +4, время: 19:59.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot