Статистика
Время:
Зарегистрированных: 88403
Последним зарегистрирован: 777KVP777
Рекорд посещаемости: 12585
Групп пользователей: 4
 Группы:
[Admin] [Cоучастник] [Автор] [Модератор]
 Сейчас на сайте
 Всего: 522
 Гостей: 519
 Анонимных: 0
 Пользователей: 3
 Зарегистрированные:
Прокурор Дерсу Узала liontesla
Forum Rules Внимание!

Внимание! Перед тем как создавать тему на форуме, воспользуйтесь поиском! Пользователь создавший тему, которая уже была, будет немедленно забанен! Читайте правила названия тем. Пользователи создавшие тему с непонятными заголовками, к примеру: "Помогите, Схема, Резистор, Хелп и т.п." также будут заблокированны навсегда. Пользователь создавший тему не по разделу форума будет немедленно забанен! Уважайте форум, и вас также будут уважать!

Страницы: (6) 1 2 3 [4] 5 6  ( Перейти к первому непрочитанному сообщению ) Ответить Новая тема Новый опрос

> Мультимедиа-плеер с OLED-дисплеем, на STM32F407
ведущий специалист
Сообщение: # 768100   Feb 20 2018, 04:10 PM
Quote Post


Соучастник
****

Группа: Cоучастник
Сообщений: 787
Пользователь №: 22294
Регистрация: 14-July 07
Место жительства: Спб



QUOTE (Gospodin_Riba @ Feb 20 2018, 02:29 PM)

Тоесть всё упирается только в денежную реетабельность?

Увы нет. Суть в том - чтобы если сделал сам - дай другому повторить. Ну а сам понимаешь, с процом с шарами на пузе народ посмотрит - скажет... дааа, крут чел, и закроет страничку. Так же мысль в том, к примеру, ну куплю я за полтора рубля stm32h7 разведу под него плату за еще полтора рубля, куплю классный дисп + еще рубль..... Да. возможно это будет играть хорошо музыку мало жрать акума позволит погонять в танчики ну и к примеру стримить мжпег. Но увы - это будет единственный прибор в мире, так как тот, кто захочет повторить - прикинет бюджет сходит в магазин и купит ГОТОВЫЙ приборчик.
PMEmail PosterICQ
Top
Kitano8
Сообщение: # 768101   Feb 20 2018, 04:34 PM
Quote Post


Прохожий


Группа: Cоучастник
Сообщений: 33
Пользователь №: 101537
Регистрация: 24-June 13




Я бы собрал портативный девайс, который умеет и игрушки и видео с музыкой крутить.
Ну не бга конечно. Но для меня тема актуальна.
Покупать китайские поделки не хочется, есть у них интересные модели, но цена сравнима с консолями от Nintendo
PM
Top
Gospodin_Riba
Сообщение: # 769410   Mar 2 2018, 07:47 AM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




Ну а теперь к делу темы.
Нарисовал недостающие УГО и составил принципиальную схему плеера. Схема:

Присоединённое изображение (Нажмите для увеличения)
Присоединённое изображение


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
Gospodin_Riba
Сообщение: # 769411   Mar 2 2018, 07:48 AM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




Провёл ревизию среди своих радиодеталей и собрал из них комплект для сборки релиза.
Нарисовал недостающие футпринты на детальки, сделал нетлист.

Учитывая нелюбовь большинства к 4-слойным печатным платам, выкладываю протеловский файл с паутинкой: компонуйте как вам угодно, хоть на 1-слойке!
Все посадочные места нарисованы и пронумерованы в соответствие с выше выложенной схемой (это вам не Сплан с Лайаутом, тут сквозное проектирование от УГО до ПП smile.gif

Свой вариант разводки (ПП будет на 4-слойке), выложу когда сделаю.
Элементы на схеме, чьи номиналы со звёздочкой - с вероятностью 90% стоять не будут (подтяжки, оставлены на всякий случай).

Присоединённый файл ( Кол-во скачиваний: 194 )
Присоединённый файл  np_pcb.zip


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
Kitano8
Сообщение: # 769469   Mar 2 2018, 04:48 PM
Quote Post


Прохожий


Группа: Cоучастник
Сообщений: 33
Пользователь №: 101537
Регистрация: 24-June 13




Кнопка "next" на ресете?
Кварц ставить не будете?
PM
Top
ведущий специалист
Сообщение: # 769485   Mar 2 2018, 06:41 PM
Quote Post


Соучастник
****

Группа: Cоучастник
Сообщений: 787
Пользователь №: 22294
Регистрация: 14-July 07
Место жительства: Спб



Я тут тоже схемку мастырю. В принципе готово почти. Будет время вечером - постараюсь выложить свою версию. Осталось пририсовать ответный разъем жк и продумать как сделать зарядку аккума при выключенном плеере. Контроллер как и говорил ранее взял с встроенной 640кб срам.

Вопрос к тс, как критично ведет себя Ваш новый кодек к тактовой частоте процессора. Насколько хватит честных 120 мГц, поможет ли каким то макаром графический сопроцессор в стм ке и дисплей, висящий на фмц? (в новом stm32l4r9 заделали какой то новый graphic MMU) что за зверь - не могу сказать, пока не юзал. Если можно, то напишите реальные цыфры разрешения видоса в соотношении потребление памяти - тактовая частота.
(Думаю какой дисп примастырить к плееру, есть 3 кандидата разрешением 80х160 точек , классика 320х240 и 320х480 точек).
PMEmail PosterICQ
Top
Gospodin_Riba
Сообщение: # 769561   Mar 3 2018, 01:28 PM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




QUOTE
Кнопка "next" на ресете?

да

QUOTE
Кварц ставить не будете?

нет


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
Gospodin_Riba
Сообщение: # 769562   Mar 3 2018, 01:34 PM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




QUOTE (ведущий специалист @ Mar 2 2018, 06:41 PM)
Вопрос к тс, как критично ведет себя Ваш новый кодек к тактовой частоте процессора. Насколько хватит честных 120 мГц, поможет ли каким то макаром графический сопроцессор в стм ке и дисплей, висящий на фмц? (в новом stm32l4r9 заделали какой то новый graphic MMU) что за зверь - не могу сказать, пока не юзал. Если можно, то напишите реальные цыфры разрешения видоса в соотношении потребление памяти - тактовая частота.
(Думаю какой дисп примастырить к плееру, есть 3 кандидата разрешением 80х160 точек , классика 320х240 и 320х480 точек).

Новый это какой? Packman? Если он, то ещё не перенесен на STM32, я ушёл в железные работы, кодинг пока приостановил. В любом случае, так как являюсь его создателем, проблем перенести на контроллер быть не должно.

Откуда взялись "честные 120 МГц", когда в F407 официально разрешена 168 МГц ?
На счет граф-ускорителя, я пока ещё не курил l4r9, главное чтоб он открытым был, а не как в Олвиннерах MALI-400, котороенадо бульдозером давить, ибо клозет.

На F407 при 168 МГц MJPEG максимально идет до 24 FPS, H264 до 32 FPS. Это если без звука чисто видео. Разрешение 160x128 2 байта на точку. Для других разрешений высчитывается элементарно.


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
Gospodin_Riba
Сообщение: # 769662   Mar 4 2018, 02:26 PM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




За 2 выходных не напрягаясь особо:

Присоединённое изображение (Нажмите для увеличения)
Присоединённое изображение


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
Gospodin_Riba
Сообщение: # 769664   Mar 4 2018, 02:28 PM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




Размер вышел чуть шире, чем спичечный коробок. Размер брался исходя из размера аккумулятора и дисплея. Ещё завтра проверю и отправлю в производство.

Присоединённое изображение (Нажмите для увеличения)
Присоединённое изображение


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
vladlen
Сообщение: # 769675   Mar 4 2018, 05:13 PM
Quote Post


Фанат
******

Группа: Cоучастник
Сообщений: 2003
Пользователь №: 70096
Регистрация: 31-August 10




На такой плате возможно будет запустить этот плеер? (просто интересно)

Присоединённое изображение (Нажмите для увеличения)
Присоединённое изображение
PM
Top
Gospodin_Riba
Сообщение: # 769779   Mar 5 2018, 10:29 AM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




QUOTE (vladlen @ Mar 4 2018, 05:13 PM)
На такой плате возможно будет запустить этот плеер? (просто интересно)

Ещё как можно!

QUOTE
The STM32F767/777 lines offer the performance of the Cortex-M7 core (with double-precision floating point unit) running up to 216 MHz while reaching similar lower static power consumption (Stop mode) versus the STM32F427/429/437/439 lines.

Performance: At 216 MHz fCPU, the STM32F767/777 lines deliver 1082 CoreMark /462 DMIPS performance executing from Flash memory, with 0-wait states thanks to ST’s ART Accelerator. The DSP instructions and the floating point unit enlarge the range of addressable applications. External memory can be used with no performance penalty thanks to the L1 cache (I/D 16 Kbytes + 16 Kbytes).

Graphics: The new LCD-TFT controller interface with dual-layer support takes advantage of the Chrom?ART Accelerator™. This graphics accelerator creates content twice as fast as the core alone. As well as efficient 2-D raw data copy, additional functions are supported by the Chrom-ART Accelerator such as image format conversion or image blending (image mixing with some transparency). As a result, the Chrom-ART Accelerator boosts graphics content creation and saves the processing bandwidth of the MCU core for the rest of the application. In addition the STM32F767/777 lines embed a JPEG hardware accelerator for fast JPEG encoding and decoding off-loading the CPU which remains available for other tasks.


Из плюсов: частота выше, FPU двойной точности, аппаратный JPEG кодек, графический ускоритель, рисующий быстрее, чем ядро.

Из минусов: опять же крайне низкая частота по сравнению с теми же Олвиннерами и Блекфинами. Ну что млять, им мешает сделать частоту хотя бы 1 ГГц? Как сделано в v3s - в QFP корпусе DDR память и ядро.

Ну и про графический ускоритель не совсем понятно - за счет чего достигается удвоенная скорость отрисовки? Ведь тайминги дисплея ограничены, также как и разрядность шины - быстрее чем пропускная способность дисплея - не выплюнуть. Это же и касается l4r9, правда там ещё есть возможность организовать видеопамять для круглого (ахтунг!) дисплея в виде одномерного массива. Ну и DMA2D, который так расхваливает STM в своих контроллерах, уже давным-давно был в Блекфинах несколько десятков лет назад, не пойму, к чему такие бурные аплодисменты???

Ну и разгребать нужно будет, ковыряясь в конюшнях кало-КУБа, потому что под CMSIS или SPLкода я пока не увидел.

Тогда уж лучше вот это насиловать (у меня есть такая плата):

Присоединённое изображение (Нажмите для увеличения)
Присоединённое изображение


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
Gospodin_Riba
Сообщение: # 769780   Mar 5 2018, 10:31 AM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




Отчаянный потуг Альтиума представить плату с деталями в 3D, но за неименеем корректных моделей, представление получилось убогим:

Присоединённое изображение (Нажмите для увеличения)
Присоединённое изображение


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
Gospodin_Riba
Сообщение: # 769781   Mar 5 2018, 10:31 AM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




Ну и перечень элементов:

Присоединённое изображение (Нажмите для увеличения)
Присоединённое изображение


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
romanetz
Сообщение: # 769800   Mar 5 2018, 12:23 PM
Quote Post


Дедушка
*******

Группа: Cоучастник
Сообщений: 5363
Пользователь №: 99518
Регистрация: 13-March 13




QUOTE (Gospodin_Riba @ Mar 5 2018, 02:31 PM)
Отчаянный потуг Альтиума представить плату с деталями в 3D, но за неименеем корректных моделей, представление получилось убогим:

Рыба, корона не жмёт? Что в библиотеку заложишь, то и нарисует

Это сообщение отредактировал romanetz - Mar 5 2018, 12:24 PM


--------------------
https://github.com/romanetz
Linuxcnc project contributor
PMEmail Poster
Top
Gospodin_Riba
Сообщение: # 769807   Mar 5 2018, 01:58 PM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




QUOTE (romanetz @ Mar 5 2018, 12:23 PM)
QUOTE (Gospodin_Riba @ Mar 5 2018, 02:31 PM)
Отчаянный потуг Альтиума представить плату с деталями в 3D, но за неименеем корректных моделей, представление получилось убогим:

Рыба, корона не жмёт? Что в библиотеку заложишь, то и нарисует

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


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
intel
Сообщение: # 769831   Mar 5 2018, 04:46 PM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2484
Пользователь №: 144
Регистрация: 26-April 05
Место жительства: г. Салават



а что функции записи в плеере не будет ?


--------------------
Если радиоэлектроника наркотик , то я наркоман со стажем!!!


image
не курю и никогда не курил, мне 37, хочу себе 8ку
PMEmail Poster
Top
ведущий специалист
Сообщение: # 769901   Mar 6 2018, 10:07 AM
Quote Post


Соучастник
****

Группа: Cоучастник
Сообщений: 787
Пользователь №: 22294
Регистрация: 14-July 07
Место жительства: Спб



ТС делает упор на работу с видео. Судя по выходу дак проца - звук будет просто для озвучки. Какая нах запись, мне кажется она там и не вперлась.

По поводу процов - давно понятно что ST не старается донести до эмбедда технологии, а заработать как можно бабоса с данного сегмента. Конечно же они могут пихнуть 8 мег оперативки и заделать 2хядерную систему по полтора гигагерца на каждого, но это же будет мягко говоря неинтересно )))). Тенденция ST 20 мегагерц прироста тактовой в год. Ничего нового с такой политикой они не принесут, и как минимум года 2-3 нужно будет для ожидания маленького шедевра. Во мне сейчас их продукция подкупает потреблением и обилием софт поддержки... и всё. В остальном это голимый шлак как по ценам так и по технологиям.
PMEmail PosterICQ
Top
ведущий специалист
Сообщение: # 769904   Mar 6 2018, 10:13 AM
Quote Post


Соучастник
****

Группа: Cоучастник
Сообщений: 787
Пользователь №: 22294
Регистрация: 14-July 07
Место жительства: Спб



QUOTE (Gospodin_Riba @ Mar 5 2018, 10:29 AM)

Ну и про графический ускоритель не совсем понятно - за счет чего достигается удвоенная скорость отрисовки?

Не знаю как в 767, но в л4 есть мипи. Видимо на это ориентируется реклама по производительности видео. Опять же изучив вопрос глубже - понял что мипи у стм ок данной серии полноценно выведены по выводам только в бга корпусах, поэтому плюнул на мипи - развел дисп по штатной фмц.
PMEmail PosterICQ
Top
Kitano8
Сообщение: # 769906   Mar 6 2018, 12:10 PM
Quote Post


Прохожий


Группа: Cоучастник
Сообщений: 33
Пользователь №: 101537
Регистрация: 24-June 13




LTDC чем не устраивает?
PM
Top
Gospodin_Riba
Сообщение: # 769908   Mar 6 2018, 12:28 PM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




QUOTE (ведущий специалист @ Mar 6 2018, 10:07 AM)
По поводу процов - давно понятно что ST не старается донести до эмбедда технологии, а заработать как можно бабоса с данного сегмента. Конечно же они могут пихнуть 8 мег оперативки и заделать 2хядерную систему по полтора гигагерца на каждого, но это же будет мягко говоря неинтересно )))). Тенденция ST 20 мегагерц прироста тактовой в год. Ничего нового с такой политикой они не принесут, и как минимум года 2-3 нужно будет для ожидания маленького шедевра. Во мне сейчас их продукция подкупает потреблением и обилием софт поддержки... и всё. В остальном это голимый шлак как по ценам так и по технологиям.

На китайском форуме из NES-эмулятора выковорял SDK для STM, напиан в стиле "выставлять/сбрасывать биты в регистрах". Предел моих мечтаний smile.gif

Это SDK стандартизировано от STM или всё-же заслуга китайцев?

Прикладываю сорцы SDK. Очень приятно видеть "чистый поток сознания", а не муть, рожденную кало-КУБами...

Присоединённый файл ( Кол-во скачиваний: 180 )
Присоединённый файл  STM32_Crystal_Code.zip


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
Gospodin_Riba
Сообщение: # 769909   Mar 6 2018, 12:33 PM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




QUOTE (ведущий специалист @ Mar 6 2018, 10:07 AM)
ТС делает упор на работу с видео. Судя по выходу дак проца - звук будет просто для озвучки. Какая нах запись, мне кажется она там и не вперлась.

Кстати, по поводу звука, появилась идея потягаться с Flac-ом, наподобие как я тягался с MSU и Lagarith. Ну тоесть сделать lossless audio вдовесок к своему Packman-у по lossless video smile.gif

Тоже попытаться вейвлеты применить к звуку, арифметический кодер и дифференциальное кодирование (просмотреть в различных комбинациях и в разном порядке). Ну и конечно же заточить под разрядность STMовского DAC 12 бит, наподобие какзаточено видео для RGB 6:6:6


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
Gospodin_Riba
Сообщение: # 770014   Mar 7 2018, 11:54 AM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




QUOTE (Gospodin_Riba @ Mar 6 2018, 12:33 PM)
Кстати, по поводу звука, появилась идея потягаться с Flac-ом, наподобие как я тягался с MSU и Lagarith. Ну тоесть сделать lossless audio вдовесок к своему Packman-у по lossless video smile.gif

Тоже попытаться вейвлеты применить к звуку, арифметический кодер и дифференциальное кодирование (просмотреть в различных комбинациях и в разном порядке). Ну и конечно же заточить под разрядность STMовского DAC 12 бит, наподобие какзаточено видео для RGB 6:6:6

Не, лучше чем FLAC сжатия звука без потерь не бывает smile.gif Поэтому было решено применить FLAC, но только не к 16-битным семплам, а к 12 битным (для STM DAC).

Flac из PCM 16 бит весил 1 МБ.
А если все семплы исходного PCM-потока переделать из 16 в 12 бит, затем пожать Flac, то уже будет 683 кБ.
Выигрыш в 1,5 раза.
Хотя биты урезали в 1,333 раз.

Собрал FLAC-декодер, сорцы ниже. При декодировании Flac делается ещё увеличение амплитуды в 16 раз - преобразование 12 бит к 16 обратно.

Попробую перенести на STM и посмотреть чё и сколько будет кушать.... smile.gif

Присоединённый файл ( Кол-во скачиваний: 166 )
Присоединённый файл  FLAC.zip


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
Gospodin_Riba
Сообщение: # 770207   Mar 8 2018, 10:09 AM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




Перенёс FLAC на STM32F407. Вместе с MJPEG работает. Чудесно, когда библиотека сделана в виде 1 файла. smile.gif

Выкладываю сорец под Keil.
FatFS + MJPEG + FLAC + SD + OLED:

Это сообщение отредактировал Gospodin_Riba - Mar 8 2018, 10:13 AM

Присоединённый файл ( Кол-во скачиваний: 154 )
Присоединённый файл  nanoPlay_FLAC.zip


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
Gospodin_Riba
Сообщение: # 770208   Mar 8 2018, 10:11 AM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




Файлы для тестов вышеприведенной прошивки:

Присоединённый файл ( Кол-во скачиваний: 135 )
Присоединённый файл  Test.zip


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
Gospodin_Riba
Сообщение: # 770210   Mar 8 2018, 10:12 AM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




Ну и конвертеры

Присоединённый файл ( Кол-во скачиваний: 151 )
Присоединённый файл  Convert.zip


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
Gospodin_Riba
Сообщение: # 770919   Mar 13 2018, 11:36 AM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




Пока печатная плата в производстве, решил уделить время на свой кодек PakMan.
Перенес код на STM32F407.

Жутко тормозил. wacko.gif Пришлось отказаться от арифметического кодера и применить Хаффмана. Пошло быстрее. Произвёл замеры: кодирование Хаффмана в 2 раза быстрее арифметического.

Тем не менее, воспроизведение звука(FLAC) всё ещё лажало, пришлось взяться за оптимизацию.

Оптимизацию провёл 3 способами:
1) Оптимизация алгоритма
2) Применил SIMD-инструкции и DSP-инструкции
3) Задействовал DMA для построчной отрисовки, в то время как считается следующая строка (памяти на кадр не хватило, потому что требуется 3 байта на точку и ещё предыдущий фрейм хранить для восстановления по межкадровой разности)

Итого : вышел отличный симбиоз FLAC + PakMan (Huffman) 4.gif 1227689077.gif

НО, по эффективности сжатия кодек проиграл MSU, и сравнялся с Lagarith.

Для примера: сжатие Хаффманом 240 МБ, с арифметическим кодером: 205 МБ.

Ещё были траблы с железом (на макете) - отрисовка через DMA выдавала кадр со смещенными вниз пикселами в столбце. А также очень редко вылазил сбой порядка байт, красный и синий цвета менялись местами. А программно отрисовавыло нормально.

2 дня трахался, прежде чем понял причину глюков. Оказалось, что была наводка на строб чтения (nRD) дисплея. Так как он не используется, я его подтянул на схеме резистром 10 кОм к питанию. Для обезглючивания номинал подтяжки поставил 1 кОм. После замены глюки со строкой и сбоем цвета ушли.

Причем это принципиально лишь когда дисплей переведен в режим 262 тыс цветов(3 байта на точку). В режимах 65 тыс(2 байта на точку) таких глюков нет. Возможно контроллеру дисплея сносило башню, от передач по 3 байта вместо 2-х.

Ну и тактовую SD карты пришлось уменьшить в 1,5 раза. Так как были сбои при чтении больших порций данных (2 файла: FLAC и видео).

Всё что написал в этом посте, касается лишь кодека PakMan. Остальные программы по-прежнему работают.

Это сообщение отредактировал Gospodin_Riba - Mar 13 2018, 11:39 AM


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
Gospodin_Riba
Сообщение: # 771931   Mar 21 2018, 02:35 PM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




Пришли платы, так что скоро буду собирать.

В софте изменения:
1) Возвращена максимальная скорость чтения SD карты
2) Найден глюк, связанный с оптимизацицией
4) Нашёл новый FLAC плеер на ARM-ассемблере (Cortex-A7) - адаптировал его под Cortex-M4 (STM32)
5) Оптимизирован декодер PackMan.
6) Улучшено сжатие

Исходники и новая статья будут позже.

Это сообщение отредактировал Gospodin_Riba - Mar 21 2018, 02:36 PM

Присоединённое изображение (Нажмите для увеличения)
Присоединённое изображение


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top
ведущий специалист
Сообщение: # 771960   Mar 21 2018, 05:23 PM
Quote Post


Соучастник
****

Группа: Cоучастник
Сообщений: 787
Пользователь №: 22294
Регистрация: 14-July 07
Место жительства: Спб



С SD непонятно. Тоже сталкивался, когда начинаешь ее часто "аттаковать" она вообще висает в непонятном положении. Как удалось победить?

В каком формате всетаки идет вывод на экран (888 или 565?) так и не понял.

Не проще тогда было бы перетащить на платформу кортекс м7 с а7 вроде как поприятнее будет не? У st есть великолепные f76х серия .

Конечно да, снимаю шляпу.... озадачить ф407 флак+ неведомый пакман с выдачей на 100% загрузки - чудеса просто творишь....

Видал ряд эмбеддеров (японец особо) гонят 407й вплоть до 250 мгц тактовой. Не пробывал? Поможет ли?

PS. FLAC на ассемблере внедрил в код м4го... слов нет - eek2.gif

Это сообщение отредактировал ведущий специалист - Mar 21 2018, 05:25 PM
PMEmail PosterICQ
Top
Gospodin_Riba
Сообщение: # 772009   Mar 22 2018, 10:29 AM
Quote Post


Фанат
******

Группа: Автор
Сообщений: 2137
Пользователь №: 116127
Регистрация: 26-April 16




QUOTE
С SD непонятно. Тоже сталкивался, когда начинаешь ее часто "аттаковать" она вообще висает в непонятном положении. Как удалось победить?

Я задействовал DMA режим карты. Пришлось разбираться с выравниванием данных, потому что библиотека FatFs иногда подставляет невыровненные указатели (адреса не кратны 4). И карта сама запустилась на 24 МГц CLK с чтением обильного количества данных.

Тема: https://electronix.ru/forum/index.php?showtopic=146208

Пробовал High Speed Mode задействовать, но эррата на 407-й подосрала - BYPASS MODE не работает, пришлось делитель PLL_Q уменьшать - эррата разрешает до 75 МГц подымать, у меня получалось кочегарить карту до 52 МГц тактовой CLK, при этом FatFs работала! И совсем необязательно давать карте команду CMD6 на хай-спид, работало и без неё.

Использую micro SD HC 4 GB класс скорости 4, маркировка на карте: C04G TAIWAN.

Для форматирования и записи - программа SDFormatter, есть слухи что стандартными виндовскими средствами запись и форматирование неоптимально по скорости.

QUOTE
В каком формате всетаки идет вывод на экран (888 или 565?) так и не понял.


В PackMan : 666 - это 888 с двумя don't care младшими битами в каждой цветовой компоненте.
В остальных прошивках - 565.

QUOTE
Не проще тогда было бы перетащить на платформу кортекс м7 с а7 вроде как поприятнее будет не? У st есть великолепные f76х серия .


Я уже просто пол-года назад приобрёл несколько F407-х для цифрового пейджера на LoRa, и теперь их надо как-то с пользой применить smile.gif

Ведущий специалист, интересно узнать твое мнение по ARM Kinetis, ссылка:
https://electronix.ru/forum/index.php?showtopic=142964

У них нет MMU, поэтому у всех маньяков запускать ОСи на них нестоИт, поэтому следует ждать "чисто железного подхода" наподобие как в DSP Ti, AD smile.gif

QUOTE
Конечно да, снимаю шляпу.... озадачить ф407 флак+ неведомый пакман с выдачей на 100% загрузки - чудеса просто творишь....


Там на асме написан код LPC-фильтра, который самый ресурсоёмкий. Надо было сообразить несколько вещей:

1) Что переходы для STM должны быть в Thumb-режиме, а значит программный счетчик кратен 2, а не 4, как в ARM режиме - иными словами правильно сформировать вычисление адреса для перехода на нужный элемент JumpTable:

CODE

;   cmp r2, #9              ;check if order is too high for unrolled loops
;   addls pc, pc, r2, lsl #2;jump to our unrolled decode loop if it exists

   lsl   r5,r2,#1          ;Thumb!
   cmp   r2,#9
   addls pc,pc,r5

;jumptable

   b default              ;order too high, go to default routine
   b exit                  ;zero order filter isn't possible, exit function
   b order1
   b order2
   b order3
   b order4
   b order5
   b order6
   b order7
   b order8


и

CODE

;   add pc, pc, r7, lsl #2  ;jump into accumulator chain

   lsl r7,r7,#1            ;Thumb!
   add pc,pc,r7

;jumptable

   b dsave                ;padding
   b dsave
   b oneleft
   b twoleft


2) Жирные сложения со сдвигом на значение регистра заменить на 2 инструкции:

CODE

;   add r14, r12, r14, asr r1;shift sum by qlevel bits and add residual

   asr r14,r14,r1
   add r14,r14,r12


3) Осторожно использовать регистры в 1) и 2), некоторые не должны быть изменены по соображениям алгоритма.

4) Переход был слишком далёким, пришлось расширить поле адреса:

CODE

;   beq exit

   beq.W exit


Все строки с ";" - комментарий (как было раньше), ниже как я сделал.
Речь идёт о плеере FLAC для RockBox (они на базе RockChip):

CODE

 ;             __________               __   ___.                          ;
 ;   Open      \______   \ ____   ____ |  | _\_ |__   _______  ___          ;
 ;   Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /          ;
 ;   Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <          ;
 ;   Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \          ;
 ;                     \/            \/     \/    \/            \/          ;
 ; $Id: arm.S 17847 2008-06-28 18:10:04Z bagder t3901.gif                          ;
 ;                                                                          ;
 ; Copyright (C) 2006 by Thom Johansen                                      ;


На первый взгляд, ничего сложного, НО это надо было всё найти и пропустить через себя. Малейшая ошибка - программа виснет или звук идёт с шипением или другими артефактами. С раза наверное 20-го заработало! smile.gif

5) Ну и конечно же -не забывать про:

CODE

/* Taken from rockbox/firmware/export/system.h */

   static inline unsigned short swap16(unsigned /*short*/ long value)
       /*
         result[15..8] = value[ 7..0];
         result[ 7..0] = value[15..8];
       */
   {
       //return (value >> 8) | (value << 8);

       __asm("REV16 value,value");
       return value;
   }

   static inline unsigned long swap32(unsigned long value)
       /*
         result[31..24] = value[ 7.. 0];
         result[23..16] = value[15.. 8];
         result[15.. 8] = value[23..16];
         result[ 7.. 0] = value[31..24];
       */
   {
/*
       unsigned long hi = swap16(value >> 16);
       unsigned long lo = swap16(value & 0xffff);
       return (lo << 16) | hi;
*/

       __asm("REV value,value");
       return value;
   }
#endif


потому что битстрим - это серьёзно! biggrin.gif

QUOTE
Видал ряд эмбеддеров (японец особо) гонят 407й вплоть до 250 мгц тактовой. Не пробывал? Поможет ли?


Основная задержка на сегодня - это чтение с карты памяти. Я подымал частоту до 240 МГц для версии с Арифметическим кодером, не хватило! Конечно, заиканий звука было меньше, но были! Арифметический кодер затратен по вычислениям и он вместе с чтением SD карты тянет вниз всю систему.

С Хаффманом+ RLE (об этом ниже) - всё превосходно работает на 168 МГц с картой памяти класса скорости 4. А вот с картой у которой класс не обозначен (2ГБ) - работает с редким заиканием.

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

Основная проблема карт - их большое время обработки команды, скорость чтения тут уже играет не решающую роль. Нужна карты с меньшими задержками перед чтением.

Ситуация ещё печальна тем, что в последних SDMicro выпилены команды чтения нескольких блоков сразу (MultiBlock read/write) .

Это сообщение отредактировал Gospodin_Riba - Mar 22 2018, 10:33 AM


--------------------
По всем вопросам пишите на почту: repstosw2018 [собака] gmail [точка] com
Энтузиазм заканчивается, когда начинается Кризис. Рождается Капитализм :)
PMEmail Poster
Top

Настройки темыСтраницы: (6) 1 2 3 [4] 5 6  Ответить Шустрый ответ Новая тема Новый опрос


 




  banner DIPTRACE - САМЫЙ ЛУЧШИЙ ТАКСИРОВЩИК ПЕЧАТНЫХ ПЛАТ
Portal-X