Плейер световых эффектов - помогите стать лучше

Обсуждаем контроллеры компании Atmel.
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Dimon456 »

Reflector писал(а):[uquote="Dimon456",url="/forum/viewtopic.php?p=3798219#p3798219"]1,235us на 1 бит, 1,235 * 32 = 39,52us и теперь это все умножим на 254 светика 39,52 * 254 = 10038 и + сигнал сброса 50us = 10088us[/uquote]
1.25 * 24 = 30.
О, как это я так?
Попробовал я ваш ШИМ с этого сайта, не нравится мне, светодиод имеет какое-то "дрожание", то есть не просто горит, а "дрожит".
Количество светиков влияет на это "дрожание", чем меньше светиков тем меньше заметно это "дрожание".
Частота контроллера, ну не знаю, до 48МГц разгонял, кажется "дрожание" меньше заметно.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Плейер световых эффектов - помогите стать лучше

Сообщение ARV »

Dimon456 писал(а):Попробовал я ваш ШИМ с этого сайта, не нравится мне
я прочитал в комментах
по 48 байт на каждый диод ленты
и выпал в осадок...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Reflector »

[uquote="ARV",url="/forum/viewtopic.php?p=3798368#p3798368"]я прочитал в комментах
по 48 байт на каждый диод ленты
и выпал в осадок...[/uquote]
Берем байт цвета, каждый бит нужно преобразовать в 8-ми битное значение которое потом DMA при копировании дополнит нулем. Для этого цвет используем в качестве индекса в массиве, получаем адрес во флеше и два раза копируем по 32 бита, затем повторяем копирование для двух оставшихся цветов. Все, 24 байта в буфере, потрачено несколько десятков тактов, а передаваться при помощи DMA они будут 30 * (48...128) тактов в случае применение дешевых мк... Двух таких буферов вполне достаточно(хватит и 2*8 байт), никто не заставляет сразу заполнять буфер для 254 диодов.
Попробовал я ваш ШИМ с этого сайта, не нравится мне, светодиод имеет какое-то "дрожание", то есть не просто горит, а "дрожит".
Накидал тестовый вариант для G0. 128 MHz, ничего не дрожит.
Спойлер

Код: Выделить всё

   uint8_t buf[9] = { 51, 109, 109, 51, 109, 109, 51, 51, 0 };
	
	PinA<6, AF1>::mode<PinMode::AF_PushPull>();
	
	Dma1Ch1 ch1;
	ch1.setPeriphRequest(DmaReq::Tim3_CH1);
	ch1.initMemToPeriph(buf, DmaSrc::_8b_Inc, &TIM3->CCR1, DmaDst::_16b, 9);
	
	Timer3 tim3;
	tim3.init(0, 128 * 1.25 - 1, TimMode::Upcounter, true);
	tim3.capCom1.initOutput(1, TimOutputMode::PwmMode1, CcrPreload::On);
	tim3.enableDmaRequests<TimDmaReq::CapCom1>();
	ch1.enable();
	tim3.enable();
Изображение
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Dimon456 »

ARV писал(а):я прочитал в комментах
по 48 байт на каждый диод ленты
и выпал в осадок...
Да причем тут это.
Reflector писал(а):Накидал тестовый вариант для G0. 128 MHz, ничего не дрожит.
И сколь ценник этого чуда? 18$ учитывая что высылают 5 штук.
И да, там на сайте 144МГц упоминается.
Давайте уж тогда на ESP перейдем или одноплатный мини компьютер.
Это что

Код: Выделить всё

AF1>::mode
класс? Сколь оперативной памяти жрет?
Reflector писал(а):F100 все равно ставить нет смысла
Ни кто и ставить не будет, будет F030.

И что вы, все, уперлись в эти 10мс?
32МГц выше 200 светиков перенастроить таймер на 15мс.
CNT=30
CNT=60
CNT=160
CNT=200
CNT=254
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Reflector »

[uquote="Dimon456",url="/forum/viewtopic.php?p=3798469#p3798469"]И сколь ценник этого чуда? 18$ учитывая что высылают 5 штук.[/uquote]
Цена в данном случае не важна, таймеры и DMA у G0/F0/F1 практически идентичны. Проверил на том что было под рукой.
И да, там на сайте 144МГц упоминается.
От 128 MHz тактировался таймер и сам мк, хотя для таймера можно частоту еще вдвое поднять, если выдержит.
Это что

Код: Выделить всё

AF1>::mode
класс? Сколь оперативной памяти жрет?
Там все на классах, класс пина, DMA, таймера, все три не потребляют ОЗУ вообще, по крайней мере с включенной оптимизацией.
И что вы, все, уперлись в эти 10мс?
32МГц выше 200 светиков перенастроить таймер на 15мс.
Железо позволяет за 10 ms обновлять множество каналов по 300 диодов на каждом, а дальше уже кто из него сколько выжмет :)
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Dimon456 »

Reflector писал(а):От 128 MHz тактировался таймер и сам мк, хотя для таймера можно частоту еще вдвое поднять, если выдержит.
Я об этом и говорю, надо на ESP переходить или на одноплатный мини компьютер.
Плиз, от 32МГц проверьте или того лучше от 24МГц.
Dimon456 писал(а):Количество светиков влияет на это "дрожание", чем меньше светиков тем меньше заметно это "дрожание".
Частота контроллера, ну не знаю, до 48МГц разгонял, кажется "дрожание" меньше заметно.
Dimon456 писал(а):И да, там на сайте 144МГц упоминается.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Reflector »

[uquote="Dimon456",url="/forum/viewtopic.php?p=3798581#p3798581"]Я об этом и говорю, надо на ESP переходить или на одноплатный мини компьютер.[/uquote]
G0 - это бюджетные мк, официально стоят как F0, просто пока китайцы их не продают в объемах предполагающих низкие цены :)
Плиз, от 32МГц проверьте или того лучше от 24МГц.
Что должно поменяться? При 32MHz в периоде шима 40 тактов, ровно 0.4 us не получается, будет небольшая погрешность, 12.8 тактов придется округлить до 13, при этом чем больше частота, тем меньше погрешность. К DMA можно прикрутить и SPI, но там делители 2/4/8..., дополнительно на F0 можно менять количество передаваемых бит, что позволяет в некоторых случаях получать очень схожие результаты, но SPI один и он уже занят, а таймеров шесть и на большей части ног есть выход шима. К тому же если лента не висит на SPI, то можно моргать и одновременно читать с SD, сделав загрузку новых скриптов незаметной.
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Dimon456 »

Reflector, красиво описываете, но как избавиться от "дрожания"? Может кондеры повесит на каждый светодиод?

Ладно, провел оптимизацию кода
СпойлерИзображение
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Reflector »

[uquote="Dimon456",url="/forum/viewtopic.php?p=3798716#p3798716"]как избавиться от "дрожания"?[/uquote]
Для начала берется ЛА и смотрится что с генерируемым сигналом не так.
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Dimon456 »

Reflector писал(а):то можно моргать и одновременно читать с SD, сделав загрузку новых скриптов незаметной.
Давайте начнем с этого пункта.
Это вам не WAV поток.
Большинство скриптов занимает меньше 512 байт.
Вот тот скрипт, который у меня на видео
Спойлер

Код: Выделить всё

CLR
RPC
PF=0A
REV
RPT
RPC
V0=TP
RPT
PM=V0
WT=02
LV0
INF
   
всяко меньше 512 байт.
Вы понятия не имеете как вот это
Спойлер

Код: Выделить всё

	uint16_t	seek;		//!< смещение
	uint16_t	next;		//!< позиция файла для следующего чтения
	uint16_t	readed;		//!< размер считанного блока
	char		*pos;		//!< указатель на текущую анализируемую позицию
работает. Я еще раз говорю, это вам на WAV поток. Хотя бы в протеусе посмотрите откуда и что читается и как буфер вообще заполняется.

В этом скрипте плеер может крутится пока не закончился отведенное время на зацикленный скрипт

Код: Выделить всё

uint16_t	run_limit;		//!< длительность исполнения зацикленного скрипта
За чем следующий читать? Вопрос куда читать? В какой буфер? И для чего?
Когда скрипт закончится или отведенное время будем читать следующий. На это уходит какие-то 10-20мс.
512байт * 8 = 4096 бит на скорости SPI 8.000.000 Бит в 1 секунду. Вы что смеетесь?
Reflector писал(а):К тому же если лента не висит на SPI
Теперь этот вопрос разберем.
Вывод на ленту происходит по команде скриптапока вывод на ленту не закончится не зачем менять "цветовое состояние" какого либо светодиода.
Все равно придется ждать окончания вывода на ленту.

Если и делать DMA это только чтобы уйти от SPI и перейти к ШИМу, что это даст? Сверх точные тайминги?

Все кто этот плеер сделал даже и не обратили внимание что тайминги не соответствуют.
Даже Serzh2000 с его WS2811 понятия не имеет что не попадает в эти 10мс.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Reflector »

Dimon456, в теме жаловаллись, что при смене эффектов может все подвисать на пол секунды, потому я и написал, что перевод обновления ленты на ШИМ среди прочего может помочь данной проблемы избежать. Естественно поскольку изначально все писалось без учета шима и DMA, то старый подход не сработает, потому мне без надобности знать как там все реализовано.
Если и делать DMA это только чтобы уйти от SPI и перейти к ШИМу, что это даст? Сверх точные тайминги?
Точные тайминги, возможность на одном таймере реализовать 4 канала, увеличить число диодов до 330 и все равно 9ms из каждых 10-ти мк просто нечего будет делать, следовательно его можно было бы чем-то дополнительно нагрузить.
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Dimon456 »

Reflector писал(а):увеличить число диодов до 330
ARV писал(а):и концептуально нынешняя реализация интерпретатора скриптов не позволит работать с более чем 254 светодиодами.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Плейер световых эффектов - помогите стать лучше

Сообщение ARV »

Dimon456, вы ковыряетесь с плейером из любви к искусству, а тов. Reflector в тему зашёл исключительно с целью продвижения STM32, и слово целесообразность в его лексиконе отсутствует. Не нужно обострять ситуацию, ничего хорошего из этого не выйдет.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Dimon456
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Dimon456 »

Reflector писал(а):увеличить число диодов до 330 и все равно 9ms из каждых 10-ти мк просто нечего будет делать
То есть если я вас правильно понял, то вы выводите за 1мс все 330 светодиодов?
Reflector писал(а):нужно обязательно большую часть времени проводить в цикле проверяя флаг готовности SPI
Все равно придется ждать и какой-то флаг проверять.

Код: Выделить всё

PC=252525	задаем какой-то цвет rgb
PM=011425	карта пикселей
WT=25 		вывод на ленту и задержка, задержка осуществляется на XX*10 миллисекунд
PC=00FF00	задаем другой цвет
PM=021526	другие пиксели
PNT			немедленный вывод наленту
между WT=25 и командой PC=00FF00 должно пройти 0x25*10=370мс мк будет крутиться в цикле и ничего не делать. Что вы собираетесь параллельно выполнять?
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Reflector »

[uquote="Dimon456",url="/forum/viewtopic.php?p=3799455#p3799455"]То есть если я вас правильно понял, то вы выводите за 1мс все 330 светодиодов?[/uquote]
330 светодиодов физически не могут обновляться за 1ms, но за 1-2ms можно выполнить скрипт и подготовить данные для DMA и пока они будут передаваться можно заниматься чем-то другим.
Reflector писал(а):Все равно придется ждать и какой-то флаг проверять.
Проверять придется, но в самом конце, когда все задачи уже выполнены.
между WT=25 и командой PM=021526 должно пройти 0x25*10=370мс мк будет крутиться в цикле и ничего не делать. Что вы собираетесь параллельно выполнять?
Ничего не собираюсь, это что-то меняет?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Плейер световых эффектов - помогите стать лучше

Сообщение ARV »

Reflector писал(а):Ничего не собираюсь, это что-то меняет?
не сочтите за грубость, но не могли бы вы ничего не собираться делать в другой теме? не нужно срать в этой. неужели вам не достаточно тем про STМ32, где вы можете блистать своими знаниями в полной мере?
это, кстати, и к VladislavS тоже относится.
как только вам захочется поумничать на счет своего любимого конька, сразу смотрите вот в это место сайта:
Изображение
как только там увидите STM32 вместо AVR - вот тогда и можете изливать свои мысли, а до тех пор пусть они в ваших котелках булькают, а сюда не проливаются. договорились?

прошу модераторов проследить за соблюдением порядка.
Вложения
snip_20200301171101.png
(3.17 КБ) 1521 скачивание
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Volodya_Tver
Прорезались зубы
Сообщения: 209
Зарегистрирован: Пт янв 19, 2018 17:08:01
Откуда: Тверь (Первомайка).

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Volodya_Tver »

Коллеги, добрый вечер. Сегодня получил 5 шт. плат под проект уважаемого ARV. Мне нужна только одна, соответственно готов отправить ПР четыре штуки. Если у кого есть необходимость и желание - пишите. Стоимость платы 0,0000 руб - прошу оплатить только стоимость пересылки.
ЗЫ Для ARV - я только начал знакомиться с Вашим проектом, понимание очень близко к вышеозвученной стоимости ПП, так что начинайте бояться - в процессе изучения я Вас закидаю тупыми вопросами :)
ЗЫЗЫ Отправляю только ПП, Остальное для личного использования, так сказать. Но все обсуждаемо :).
Изображение
Последний раз редактировалось Volodya_Tver Вт апр 21, 2020 21:11:19, всего редактировалось 2 раза.
У победы много отцов, поражение всегда сирота.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Плейер световых эффектов - помогите стать лучше

Сообщение ARV »

Volodya_Tver писал(а):начинайте бояться
я уже дрожу - особенно после того, как вы не сумели правильно упомянуть мой ник :)))
Volodya_Tver писал(а):закидаю тупыми вопросами
ничего, я вполне могу закидать вас тупыми ответами - и не уверен, что победитель этой схватки предопределен вами :)))

но вообще я приятно удивлен, что мой проект все-таки находит своих почитателей... :beer: 8)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Volodya_Tver
Прорезались зубы
Сообщения: 209
Зарегистрирован: Пт янв 19, 2018 17:08:01
Откуда: Тверь (Первомайка).

Re: Плейер световых эффектов - помогите стать лучше

Сообщение Volodya_Tver »

[uquote="ARV",url="/forum/viewtopic.php?p=3831170#p3831170"]
Volodya_Tver писал(а):начинайте бояться
я уже дрожу - особенно после того, как Вы не сумели правильно упомянуть мой ник :)))[/uquote]
Я дико извиняюсь - исправил, зрение уже не то, что в молодости, даже телескопы не всегда помогают.
По поводу "Схватки" - мне действительно интересно понять принцип работы скриптов, но в силу отсутствия опыта и знаний, тяжело будет сразу во все "въехать". Поэтому надеюсь и рассчитываю на Вашу помощь.
У победы много отцов, поражение всегда сирота.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Плейер световых эффектов - помогите стать лучше

Сообщение ARV »

Volodya_Tver писал(а):Поэтому надеюсь и рассчитываю на Вашу помощь.
нивапрос
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Ответить

Вернуться в «AVR»