Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Вопрос Декодирование MP3

Тема в разделе "Раздел для начинающих", создана пользователем Arthur, 8 янв 2017.

  1. Arthur

    Arthur Авторитетный участник сообщества

    Сообщения:
    803
    Симпатии:
    89
    Привет.

    Пришли по почте TDA1543 (Dual 16-bit DAC (economy version) (I2S input format), http://www.lampizator.eu/lampizator/LINKS AND DOWNLOADS/DATAMINING/tda 1543.pdf ) и усилки 6 Ваттные.

    Изначально хотел поиграться с GitHub - bbx10/SFX-I2S-web-trigger: ESP8266 Sound F/X I2S web trigger и с GitHub - espressif/ESP8266_MP3_DECODER: A demo that should be run with ESP8266 Non-OS SDK .

    С ними буду баловаться в ближайшее время.

    На будущее (чтобы не особо скучно было :) ) составляю план, с чем Я буду ковыряться :)...

    Потом наткнулся на Wiieva: esp8266 + stm32 в формфакторе Arduino , от него копнул сырцы, наткнулся на то, что там данные буфферами отдаются с еспшки на STM32F. Стало интересно про STM32 (говорил мне дядя Саша - займись стмками!, да Я не послушался тогда, сославшись на то, что контора медным тазом накрывалась :( ), увидел STM32-MP3NL/COD - Audio Engine MP3 Codec and Utilities - STMicroelectronics - STMicroelectronics и http://www.st.com/content/ccc/resou...df/jcr:content/translations/en.DM00024441.pdf .

    Возникли вопросы:
    1) Вышеуказанный MP3 кодек, как Я понимаю, платный и бесплатно его не скачать? Или всё-таки в чем-то типа SDK его можно раздобыть забесплатно?
    2) Как паять LQFP в домашних условиях - только паяльной станцией, феном и паяльной пастой?
    3) С каких ресурсов проще стартануть новичку в STM32? - понять, как прошить :), чем прошить, есть ли для STM32 IDE / SDK, как подёргать ножками...
    4) Если кто подскажет дешёвые отладочные платы на STM32F - был бы благодарен. Я нашёл шибко дорогие платы - за 2300 - 5000 рублей ( Совет ПО Развитию STM32 STM32F429IGT6 STM32F429ARM Cortex M4 Различные Интерфейсы STM32F Серии Доска = Open429I C Стандарт купить на AliExpress ) - Я не готов столько денег выбрасывать на своё хобби, мне бы дешевее найти.

    P.S. Так, что-то нашёл по dev tools - STM32F105RB - Mainstream Connectivity line, ARM Cortex-M3 MCU with 128 Kbytes Flash, 72 MHz CPU, CAN, USB 2.0 OTG - STMicroelectronics
     
    Последнее редактирование: 8 янв 2017
  2. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.295
    Симпатии:
    1.319
    В конфигурации по умолчанию, этот код будет выводить 16-битный моно звук. Стерео аудио возможно, но еще не был реализован.
    Моно до 48 кГц 16 бит + требуется микросхема внешней памяти.
    Внешний буфер в STM32F1xx - это несколько килобайт. Больному ESP8266 не поможет.
    На том-же коде давно реализован буфер более 16 килобайт на ESP8266. Но толку никакого - стерео нема. Из-за загрузки проца обслуживанием I2S и использования в данной версии RTOS, ESP8266 ничего не успевает и требует большого буфера - работает рывками... Если взять 320 кбит, как описано к тесту "bitrates up to 320KBit/s and sample rates of up to 48KHz - mono", то это ~32 килобайта в секунду. Значит, что входной буфер кончится через 0.5 секунды. Пинг на 500 ms...
    Сделайте поиск по форуму MP3. Зачем новая тема?
     
    Arthur нравится это.
  3. Arthur

    Arthur Авторитетный участник сообщества

    Сообщения:
    803
    Симпатии:
    89
    Потому, что возникли вопросы именно по STM32, на котором Я хотел бы побаловаться с MP3 :)

    1) Вышеуказанный MP3 кодек, как Я понимаю, платный и бесплатно его не скачать? Или всё-таки в чем-то типа SDK его можно раздобыть забесплатно?
    2) Как паять LQFP в домашних условиях - только паяльной станцией, феном и паяльной пастой?
    3) С каких ресурсов проще стартануть новичку в STM32? - понять, как прошить :), чем прошить, есть ли для STM32 IDE / SDK, как подёргать ножками...
    4) Если кто подскажет дешёвые отладочные платы на STM32F - был бы благодарен. Я нашёл шибко дорогие платы - за 2300 - 5000 рублей ( Совет ПО Развитию STM32 STM32F429IGT6 STM32F429ARM Cortex M4 Различные Интерфейсы STM32F Серии Доска = Open429I C Стандарт купить на AliExpress ) - Я не готов столько денег выбрасывать на своё хобби, мне бы дешевее найти.
     
  4. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.055
    Симпатии:
    177
    Отладочные платы: уточни потребности. А так из самых дешевых полно stm32f030, stm32c103f8t6. Как вариант можно рассмотреть клоны Arduino M0, там atmel arm. Дороже но привычнее.
    Программируется вот такими свистками: Горячие Продажи ST LINK Stlink ST Link V2 Мини STM8 STM32 Симулятор Скачать Программист Программирование С Крышкой купить на AliExpress их полно на ali
    Самая нормально собранная среда для младших stm32 ИМХО EmBlocks (EmBitz) STM32 + EmBlocks - мигаем светодиодами - Ravenium
    Встает без проблем, сразу распознает программатор, настроен gdb так что можно отлаживать прямо в устройстве.
     
    Arthur нравится это.
  5. Arthur

    Arthur Авторитетный участник сообщества

    Сообщения:
    803
    Симпатии:
    89
    Побаловаться, подрыгать ножками и запустить MP3 декодирование. Думаю, под это нужно как можно большее кол-во RAM в STM?
     
  6. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.055
    Симпатии:
    177
    Память в stm статическая. Быстрая но дорогая, с ее увеличением чипы резко дорожают. Поскольку тебе скорость рам не так важна может лучше заняться например Rtl а то и вовсе на Orange Pi Zero перебраться? Дешевле выйдет.
     
  7. Arthur

    Arthur Авторитетный участник сообщества

    Сообщения:
    803
    Симпатии:
    89
    Реально дешевле? Апельсинка стоит около 2500 р... А СТМка стоит около 3 баксов за чип... Отладочная плата для СТМки - дело исключительное, стоит почему-то дорого...
     
  8. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.055
    Симпатии:
    177
  9. Arthur

    Arthur Авторитетный участник сообщества

    Сообщения:
    803
    Симпатии:
    89
    Вот это гораздо более интересная платка! Я про СТМку.
    А про Пи - хочу взять с 2 ГБ оперативы - 2016 Горячая Orange Pi Плюс 2E H3 Quad Core 1.6 ГГЦ 2 ГБ RAM 4 К развития с Открытым исходным кодом плата за raspberry pi 2 купить на AliExpress - что уж мелочиться...

    Правда, под это деньги будут чутка позже, не до платок сейчас...
     
  10. Arthur

    Arthur Авторитетный участник сообщества

    Сообщения:
    803
    Симпатии:
    89
  11. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.055
    Симпатии:
    177
    возьми линуксовый lame и сильно обкусай по бокам
     
    Arthur нравится это.
  12. goodwin

    goodwin Читатель

    Сообщения:
    123
    Симпатии:
    22
    Декодер Helix (приложил). Подшаманенен мной для Keil под статические буферы. Требуется порядка 30 кб RAM . В сети можно найти оригинал для GCC. Прекрасно работает в LPC17xx при тактовой 72 МГц, поддерживает все битрейты, стерео. Использует примерно 60-70%. ресурсов контроллера. А вот младшие STM32 (пробовал на STM32F105) жидковаты для MP3. "Скорострельности" не хватает (битрейт 320, стерео) при 72 МГц тактовой даже при исполнении кода из RAM.
     

    Вложения:

    • helix.zip
      Размер файла:
      80,8 КБ
      Просмотров:
      16
    Vladimirvladimir и Arthur нравится это.
  13. Arthur

    Arthur Авторитетный участник сообщества

    Сообщения:
    803
    Симпатии:
    89
  14. Arthur

    Arthur Авторитетный участник сообщества

    Сообщения:
    803
    Симпатии:
    89
    STM32F407VET6 тоже считается "младшей серией"?
     
  15. goodwin

    goodwin Читатель

    Сообщения:
    123
    Симпатии:
    22
    Уже в STM32F20x, все должно быть пучком... (лично не проверял).
     
    Arthur нравится это.
  16. Arthur

    Arthur Авторитетный участник сообщества

    Сообщения:
    803
    Симпатии:
    89
    Оки, появились новые стимулы покупать платку :).
    Спасибо всем Вам, мужики :) .
     
  17. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.055
    Симпатии:
    177
    Нет :) это уже 4-й кортекс с аппаратным плавающим умножением и делением, его за это даже зовут dsp
     
    Arthur нравится это.
  18. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.295
    Симпатии:
    1.319
    Но у него мало SRAM. Для сетевых приложений MP3. Давно существуют замены - PIC32, младший из RTL871x и т.д. с 512 килобайт SRAM.

    У STM32F407 настолько хилый SDIOH? У RTL стандартный SDIOH (т.е. не требует сильного участия CPU - описывается таблица в RAM для блоков DMA хоть на всю память на сектора до 4-х кило и дается команда контролеру), по умолчанию драйвер читает по 1 сектору, но даже при memcpy() (типа больший буфер :)) на больший блок выходит за 8 мегабайт в сек на картах. Теор-hard максимум не достижим для простых SD карт - они все значительно тормознее контроллера...
    Выходит STM32F4 уже устарел совсем.
    STM32H7 выглядит более подходящим со своим 1 Mег RAM для простого проигрывателя MP3 с интернет сети, но не имеет WiFi или BLE(BT)
    Мегагерцы CPU для MP3 роли не играют. ~160MHz достаточно за глаза.
     
    Последнее редактирование: 9 янв 2017
  19. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.055
    Симпатии:
    177
    Вот как раз DMA у stm32 на редкость нормальный. Не надо путать проблему процессора и проблему программиста...
     
  20. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.295
    Симпатии:
    1.319
    Вы о чем? О SDIOH? Тыркаться с командами и заряжать через HAL DMA?
    Ну это не надо, если есть нормальный SDIOH контроллер. Он работает с ADMA. Это немного другой DMA в чипах ARM. Имеет доступ ко всем типам памяти и работает по таблицам - сам грузит куда и что залить.... При этом остальные штатные каналы DMA у ARM остаются. Это реализовано и в RTL8710.
    Предположим, вам надо считать дцать секторов из SD. Создаете табличку (из 16 байт на сегмент с указателями в них на цепочку следующего описателя) и даете команды контролеру залить эти N секторов хоть в шахматном порядке в RAM или наоборот (если запись в SD). Потом проверяете состояние исполнения (лучше по прерыванию).
    Какая тут проблема у программиста? :confused: В правильном выборе режимов работы SD на 1.2В и установке 50MHz клока? Может в количестве повторов команд чтения и записи для контроллера? Или в чем?
    Я думаю, что проблема одна - в правильном выборе контроллера. Зачем брать более дорогой чип, если он не соответствует задаче и не годиться для неё. Для спортивного интереса можно попробовать спаять и на 74-ой логике :)
    Не зря называется ADMA - Advanced DMA. У STM не нашел. Может в новых сериях?
     
    Последнее редактирование: 10 янв 2017

Поделиться этой страницей