1,235us на 1 бит, 1,235 * 32 = 39,52us и теперь это все умножим на 254 светика 39,52 * 254 = 10038 и + сигнал сброса 50us = 10088us
1.25 * 24 = 30.
О, как это я так? Попробовал я ваш ШИМ с этого сайта, не нравится мне, светодиод имеет какое-то "дрожание", то есть не просто горит, а "дрожит". Количество светиков влияет на это "дрожание", чем меньше светиков тем меньше заметно это "дрожание". Частота контроллера, ну не знаю, до 48МГц разгонял, кажется "дрожание" меньше заметно.
Берем байт цвета, каждый бит нужно преобразовать в 8-ми битное значение которое потом DMA при копировании дополнит нулем. Для этого цвет используем в качестве индекса в массиве, получаем адрес во флеше и два раза копируем по 32 бита, затем повторяем копирование для двух оставшихся цветов. Все, 24 байта в буфере, потрачено несколько десятков тактов, а передаваться при помощи DMA они будут 30 * (48...128) тактов в случае применение дешевых мк... Двух таких буферов вполне достаточно(хватит и 2*8 байт), никто не заставляет сразу заполнять буфер для 254 диодов.
Цитата:
Попробовал я ваш ШИМ с этого сайта, не нравится мне, светодиод имеет какое-то "дрожание", то есть не просто горит, а "дрожит".
Накидал тестовый вариант для G0. 128 MHz, ничего не дрожит. Спойлер
Накидал тестовый вариант для 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
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
От 128 MHz тактировался таймер и сам мк, хотя для таймера можно частоту еще вдвое поднять, если выдержит.
Я об этом и говорю, надо на ESP переходить или на одноплатный мини компьютер. Плиз, от 32МГц проверьте или того лучше от 24МГц.
Dimon456 писал(а):
Количество светиков влияет на это "дрожание", чем меньше светиков тем меньше заметно это "дрожание". Частота контроллера, ну не знаю, до 48МГц разгонял, кажется "дрожание" меньше заметно.
Я об этом и говорю, надо на ESP переходить или на одноплатный мини компьютер.
G0 - это бюджетные мк, официально стоят как F0, просто пока китайцы их не продают в объемах предполагающих низкие цены
Цитата:
Плиз, от 32МГц проверьте или того лучше от 24МГц.
Что должно поменяться? При 32MHz в периоде шима 40 тактов, ровно 0.4 us не получается, будет небольшая погрешность, 12.8 тактов придется округлить до 13, при этом чем больше частота, тем меньше погрешность. К DMA можно прикрутить и SPI, но там делители 2/4/8..., дополнительно на F0 можно менять количество передаваемых бит, что позволяет в некоторых случаях получать очень схожие результаты, но SPI один и он уже занят, а таймеров шесть и на большей части ног есть выход шима. К тому же если лента не висит на SPI, то можно моргать и одновременно читать с SD, сделав загрузку новых скриптов незаметной.
всяко меньше 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
Теперь этот вопрос разберем. Вывод на ленту происходит по команде скрипта
Код:
PNT WT
пока вывод на ленту не закончится не зачем менять "цветовое состояние" какого либо светодиода. Все равно придется ждать окончания вывода на ленту.
Если и делать DMA это только чтобы уйти от SPI и перейти к ШИМу, что это даст? Сверх точные тайминги?
Все кто этот плеер сделал даже и не обратили внимание что тайминги не соответствуют. Даже Serzh2000 с его WS2811 понятия не имеет что не попадает в эти 10мс.
Dimon456, в теме жаловаллись, что при смене эффектов может все подвисать на пол секунды, потому я и написал, что перевод обновления ленты на ШИМ среди прочего может помочь данной проблемы избежать. Естественно поскольку изначально все писалось без учета шима и DMA, то старый подход не сработает, потому мне без надобности знать как там все реализовано.
Цитата:
Если и делать DMA это только чтобы уйти от SPI и перейти к ШИМу, что это даст? Сверх точные тайминги?
Точные тайминги, возможность на одном таймере реализовать 4 канала, увеличить число диодов до 330 и все равно 9ms из каждых 10-ти мк просто нечего будет делать, следовательно его можно было бы чем-то дополнительно нагрузить.
Dimon456, вы ковыряетесь с плейером из любви к искусству, а тов. Reflector в тему зашёл исключительно с целью продвижения STM32, и слово целесообразность в его лексиконе отсутствует. Не нужно обострять ситуацию, ничего хорошего из этого не выйдет.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
увеличить число диодов до 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мс мк будет крутиться в цикле и ничего не делать. Что вы собираетесь параллельно выполнять?
То есть если я вас правильно понял, то вы выводите за 1мс все 330 светодиодов?
330 светодиодов физически не могут обновляться за 1ms, но за 1-2ms можно выполнить скрипт и подготовить данные для DMA и пока они будут передаваться можно заниматься чем-то другим.
Reflector писал(а):
Все равно придется ждать и какой-то флаг проверять.
Проверять придется, но в самом конце, когда все задачи уже выполнены.
Цитата:
между WT=25 и командой PM=021526 должно пройти 0x25*10=370мс мк будет крутиться в цикле и ничего не делать. Что вы собираетесь параллельно выполнять?
не сочтите за грубость, но не могли бы вы ничего не собираться делать в другой теме? не нужно срать в этой. неужели вам не достаточно тем про STМ32, где вы можете блистать своими знаниями в полной мере? это, кстати, и к VladislavS тоже относится. как только вам захочется поумничать на счет своего любимого конька, сразу смотрите вот в это место сайта:
как только там увидите STM32 вместо AVR - вот тогда и можете изливать свои мысли, а до тех пор пусть они в ваших котелках булькают, а сюда не проливаются. договорились?
прошу модераторов проследить за соблюдением порядка.
Коллеги, добрый вечер. Сегодня получил 5 шт. плат под проект уважаемого ARV. Мне нужна только одна, соответственно готов отправить ПР четыре штуки. Если у кого есть необходимость и желание - пишите. Стоимость платы 0,0000 руб - прошу оплатить только стоимость пересылки. ЗЫ Для ARV - я только начал знакомиться с Вашим проектом, понимание очень близко к вышеозвученной стоимости ПП, так что начинайте бояться - в процессе изучения я Вас закидаю тупыми вопросами ЗЫЗЫ Отправляю только ПП, Остальное для личного использования, так сказать. Но все обсуждаемо .
_________________ У победы много отцов, поражение всегда сирота.
Последний раз редактировалось Volodya_Tver Вт апр 21, 2020 21:11:19, всего редактировалось 2 раз(а).
я уже дрожу - особенно после того, как Вы не сумели правильно упомянуть мой ник
Я дико извиняюсь - исправил, зрение уже не то, что в молодости, даже телескопы не всегда помогают. По поводу "Схватки" - мне действительно интересно понять принцип работы скриптов, но в силу отсутствия опыта и знаний, тяжело будет сразу во все "въехать". Поэтому надеюсь и рассчитываю на Вашу помощь.
_________________ У победы много отцов, поражение всегда сирота.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 44
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения