Перебіжками, в три прийоми зібрав та запустив макет транспорту на SD карті з використанням середнього процесора.
Раніше я використовував більшу плату з процесором STM32F407.
В ньому доволі непогані ресурси - 168 MHz, Ehernet, USB OTG, 2xI2S, 3xSPI, 6xUSART, 2xDMA, SDIO.
Відповідно зібрати на ньому такий транспорт було не складно - SD карта читалась SDIO - 4 bit режим, 48 MHz, - швидкість потоку даних майже 200 Mbit - по швидкості як 2x100 Mbit Ehernet.
Для підключення мікросхеми ЦАП використовувались 2xSPI, які можуть працювати на швидкості 36 MHz, але для підключення ЦАП з лихвою вистачало 4,5 MHz.
У мене ще давно була ідея спробувати в якості експерименту використати дешевий мікроконтролер STM32F103.
72 MHz, USB Devise, 2xSPI, 3xUSART, 2xDMA - ціна синьої плати з таким процесором 70 грн.
Рік назад я знайшов проект читання SD карти таким процесором.
Але він був зібраний на повільних бібліотеках.
І дозволяв читати данні з швидкістю 1.2 Mbit
Для відтворення стерео аудіопотоку 16/44,1 потрібно 1.6 Mbit - швидкості читання не вистачало, тільки моно...
Але, в час карантину я знайшов ще декілька проектів читання даних з SD карти на кращих бібліотеках, оптимізованих по швидкості.
Заміряв швидкості читання, один з проектів дозволяє читати данні з швидкістю 2.7 Mbit - цього з запасом вистачає для відтворення формату 16/44,1 (Audio CD)
Недавно добрався в три заходи зібрати проект і буквально вчора зранку запустив відтворення звуку на 1540 лівого каналу.
А сьогодні зранку також правого і відповідно двох.
Структура така:
SD карта читається SPI1 - 1 bit режим, 18 MHz, - швидкість потоку саме даних читання файлової системи майже 2,7 Mbit.
Для підключення мікросхеми ЦАП лівого каналу використовувались SPI2, який може працювати на швидкості 18 MHz, але для підключення ЦАП з лихвою вистачало 4,5 MHz.
І на цьому все, SPI1 та SPI2 використані, - нема куди підключити мікросхему ЦАП правого каналу..(
Раніше мене це зупинило, але не тепер, - тепер я знаю три варіанти виходу з ситуації.
Я обрав найпростіший і найкласичніший.
Для підключення мікросхеми ЦАП правого каналу використовувались USART2 в синхронному режимі, який може працювати на швидкості 4,5 MHz, чого для підключення ЦАП з цілком вистачало.
Для швидкої передачі двох байт через USART2 використано режим DMA.
Відповідно перебіжками по пів години написав фрагменти програми.
А сьогодні зранку включив та послухав. що працює.
В найближчому майбутньому почну планомірний та розмірений відхід від використання більшої плати й перехід на меншу.
Переписування програм, дочіплювання дисплея і т.д.
Потрібне спрощення, оптимізація структури.
І доведення до презентабельного, транспортабильного і в принципі завершеного макету.
По правді, мене самого здивувало, що вдалося реалізувати транспорт на SD карті з 1540 на процесорі STM32F103.
Оригінальність ідей та концептуальність підходу - реалізувати простими шляхами складні завдання..)