Например TDA7294

Форум РадиоКот • Просмотр темы - RGB гирлянда (WS2812b)
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Вт сен 22, 2020 14:44:59

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 178 ]     ... , , , , 9
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Пт фев 22, 2019 11:10:18 
Мучитель микросхем
Аватар пользователя

Карма: 4
Рейтинг сообщений: 21
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Сообщений: 488
Откуда: Ижевск
Рейтинг сообщения: 0
мне хотелось бы без ардуины разобраться в процессе ) Как раз весь смысл в том чтобы запариться и разобраться как оно происходит ) Но пока туго


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Пт фев 22, 2019 12:33:24 
Вымогатель припоя

Карма: 14
Рейтинг сообщений: 39
Зарегистрирован: Вс янв 19, 2014 00:55:09
Сообщений: 575
Рейтинг сообщения: 1
Вот хороший пример без посторонних библиотек. Я оттуда брал ассемблер в качестве драйвера для светодиодов, а все остальное писал на СИ. Штучка рабочая. С нею тинька 85 на 8 мгц, без кварца, управлялась с 80 ледами вполне нормально.


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Вт мар 12, 2019 19:29:12 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 130
Рейтинг сообщений: 736
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 4753
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Давайте начнем сначала... Есть какая-нибудь приблуда недорогая, чтобы управлять этими светодиодами проще. Ну, SPI какой-нибудь или еще чего, чтобы тупо через DMA кидать в него байты, он уже сам со своими периодами разбирался. И чтобы массив данных соответствовал количеству светодиодов. И вообще, какие-то неудобоваримые.
В том же STM32 слово - это 32 бита. Для светодиода надо всего 24. Значит остается старшие/младшие 8 бит свободными... Куда их девать? А для АВР все наоборот, там всего 8 бит, значит надо тратить 3 байта на каждый светодиод. Тоже не шибко удобно.
Слышал где-то, что есть такие светодиоды, которые по SPI сразу работают, но стоят дороже. Может можно одну такую микру вытащить, а дальше она уже как обычно в цепочке с остальными диодами работать будет?

_________________
Станислав


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Шестое юбилейное мероприятие в процессе
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Вт мар 12, 2019 19:58:12 
Вымогатель припоя

Карма: 14
Рейтинг сообщений: 39
Зарегистрирован: Вс янв 19, 2014 00:55:09
Сообщений: 575
Рейтинг сообщения: 3
СКАЗОЧНИК писал(а):
В том же STM32 слово - это 32 бита. Для светодиода надо всего 24. Значит остается старшие/младшие 8 бит свободными... Куда их девать?
Отдать следующему светодиоду.Что в STM32, что в AVR - 3 байта на "точку" вынь да положь. :) Сейчас появились на рынке и 32-битные светодиоды RGBW, там добавился белый светодиод.
СКАЗОЧНИК писал(а):
Слышал где-то, что есть такие светодиоды, которые по SPI сразу работают, но стоят дороже.
Ага, даже устаревшие WS2801 стоят дороже WS2812, АРА102 еще дороже. За счет одного "лишнего" провода в шине, эти светодиоды гораздо менее строги к таймингам и управляются тоже гораздо быстрее. POI и виртуальные экраны на АРА102 строят давно.
СКАЗОЧНИК писал(а):
Может можно одну такую микру вытащить, а дальше она уже как обычно в цепочке с остальными диодами работать будет?
Не будет. Не хватит после нее одного проводка.


Вернуться наверх
 
Драйверы MOSFET/IGBT Infineon – силой нужно управлять!

Специалисты Infineon усовершенствовали традиционные кремниевые MOSFET и IGBT и выпустили компоненты на базе принципиально иных материалов – нитрида галлия и карбида кремния. Мы создали подборку полезных материалов, чтобы вы разобрались во всех тонкостях и стали экспертом по управлению силовыми приборами нового поколения CoolMOS, CoolGaN, CoolSiC!

Подробнее>>
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Вт мар 12, 2019 20:14:06 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 130
Рейтинг сообщений: 736
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 4753
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Как так? Китайцы светодиоды придумали, собственный протокол изобрели, а железное воплощение связи между интерфейсами нету!? :kill: :facepalm:

Да и отдать 8 бит следующему светодиоду из 32 как-то тоже не сподручно, как тогда организовывать массив, чтобы, например заполнить матрицу 100х100? и еще и мультики на нее выводить какие-нибудь?

И как я еще понял, если по DMA из памяти пулять, то там нет промежуточных звеньев... Т.е. либо целиком байт из массива и сразу в регистр отправки SPI, либо в регистр чтобы ШИМ настроить. И тогда вообще жуть получается, что каждый бит из 24 для светодиодов закодирован своим байтом. И на 100 светодиодов надо уже 24*100 = 2400 байт. Жуть.

_________________
Станислав


Вернуться наверх
 
Снижена цена на DC/DC и AC/DC преобразователи Mornsun в Компэл!

Хорошие новости для покупателей источников питания! Компэл снизил цены на всю продукцию Mornsun. В ассортименте – как широко известные и популярные позиции, так и новинки. Доступны AC/DC, неизолированные DC/DC-преобразователи или импульсные стабилизаторы (семейство K78/R3), изолированные DC/DC, и новейшее поколение R4.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Вт мар 12, 2019 21:10:29 
Вымогатель припоя

Карма: 14
Рейтинг сообщений: 39
Зарегистрирован: Вс янв 19, 2014 00:55:09
Сообщений: 575
Рейтинг сообщения: 3
СКАЗОЧНИК писал(а):
... как тогда организовывать массив, чтобы, например заполнить матрицу 100х100? ...
Массив байтовый - 1 кадр = 100х100х3 байт. Дальше, по указателю = (номеру пиксела х 3), заполняете 3 ячейки подряд значениями цветовых каналов GRB этого пиксела.
СКАЗОЧНИК писал(а):
И как я еще понял, если по DMA из памяти пулять, то там нет промежуточных звеньев... Т.е. либо целиком байт из массива и сразу в регистр отправки SPI, либо в регистр чтобы ШИМ настроить.
Про DMA толком не знаю, там вроде потоки какие-то, а вам нужно ведь дождаться отправки байта по SPI или комплита таймера, чтобы положить следующий байт в регистр SPI либо перестроить длительность ШИМа. По прерыванию - следующий байт и т.д.
СКАЗОЧНИК писал(а):
И на 100 светодиодов надо уже 24*100 = 2400 байт. Жуть.
Если напрямую посылать. На деле, не надо столько :)) Подготовили 2 байта: 1 - кодирует посылку "0", второй - посылку "1". Теперь побитово шерстите массив, и по состоянию проверяемого бита, отдаете ШИМу или SPI тот или иной подготовленный байт. И DMA не пригодится и между прерываниями чайкУ можно попить.
Можно попробовать еще сэкономить память, если не планируется много оттенков. Тогда в памяти надо создать массив - палитру всех используемых оттенков, а в кадровом массиве держать индексы палитры. Кадр уменьшается в 3 раза. Если палитра до 16 цветов, можно в одном байте закодить состояние 2-х пикселов. Так еще уполовинили массив.


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Ср мар 13, 2019 03:00:45 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 130
Рейтинг сообщений: 736
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 4753
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Точно блин! Я же не с АВРками, все думаю на уровне регистров.... А можно же прямо по адресам обращаться. )

_________________
Станислав


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Чт ноя 14, 2019 11:44:29 
Мучитель микросхем
Аватар пользователя

Карма: 4
Рейтинг сообщений: 21
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Сообщений: 488
Откуда: Ижевск
Рейтинг сообщения: 0
Всем здравствуйте! Дошли наконец снова руки до этих светодиодов ) Написал на тини13 программку, управляет 6 светодиодами. Успешно крутится алгоритм непрерывного спектра.

Дальше хотел сделать эффект кометы таким алгоритмом

unsigned char colors[12] = {0, 0, 0, 0, 0, 0, 20, 40, 60, 80, 120, 150}; // ну пусть будет такая яркость, пофиг, не суть, все RGB каналы будут одни и те же, цвет белый

// Тут двигаю все элементы массива вправо
tmp = colors [12];
for (k = 10; k <=0; k--) {
colors[k+1] = colors[k];
}
colors[0] = k;

// Теперь вызываю функцию вывода на диоды
set_color (colors[0], colors[0], colors[0]);
.
.
.
set_color(colors[5], colors[5], colors[5]);
delay_us (100); // Сброс, чтобы светодиоды зажглись

Ну а собственно дальше происходит какая то фигня ) Иногда комета пробегает, только зажигаясь рандомными цветами, иногда застревает или мерцает...

Может тини вообще не способна на такое? Хотя алгоритм непрерывного спектра спокойно крутится без единого глюка.

Или может вызов элемента массива занимает какое то время и рушит NOPы? Подскажите пожалуйста, ибо с программированием все довольно слабо ( Среда Coldevision, хотелось бы без сторонних библиотек, ибо цели 1) Разобраться 2) Подтянуть программирование
---

Если алгоритм сдвига массива вправо заменить на алгоритм непрерывного спектра, где просто использованы 3 переменные типа Unsigned char, то все работает, цвета плавно, ровно и корректно меняются. Прерывания не используется, в функции set_color тупо nop nop nop, переключить порт, nop nop... и т.д. Алгоритм непрерывного спектра уверенно работает на 20 светодиодах. Больше к сожалению у меня нету )


Вернуться наверх
 
Бытовой пирометр АКИП-9312 – просто удобно!

Диапазон 35 °С ...42°С (температура тела) погрешность 0,3 °С
Диапазон 0 °С ...100°С (бытовая сфера) погрешность 1,0 °С
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Чт ноя 14, 2019 13:07:41 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 17
Рейтинг сообщений: 238
Зарегистрирован: Ср янв 16, 2008 08:34:04
Сообщений: 2305
Откуда: KMV
Рейтинг сообщения: 0
Я управлять этими светодиодами не пробовал, но вот тут у Вас как-то нелогично...
Kotto писал(а):
for (k = 10; k <=0; k--)

_________________
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Чт ноя 14, 2019 13:15:05 
Мучитель микросхем
Аватар пользователя

Карма: 4
Рейтинг сообщений: 21
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Сообщений: 488
Откуда: Ижевск
Рейтинг сообщения: 0
А что вам кажется не логичным? Может конечно ошибка есть, но я как думаю...

tmp = colors [12]; // сохраняем последний элемент
for (k = 10; k <=0; k--) {
colors[k+1] = colors[k];
}
colors[0] = k; // последний элемент помещаем на место первого.

Всего у нас в массиве 0..11 элементов, 12 штук. Берем элемент 10 (k), помещаем его в следующую ячейку, k+1 (11), и так далее, весь массив у нас сдвигается по кругу вправо.

Если я где ошибаюсь, подскажите более точно, а то не понятно (


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Чт ноя 14, 2019 15:11:54 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 17
Рейтинг сообщений: 238
Зарегистрирован: Ср янв 16, 2008 08:34:04
Сообщений: 2305
Откуда: KMV
Рейтинг сообщения: 0
Kotto писал(а):
А что вам кажется не логичным?

Kotto писал(а):
for (k = 10; k <=0; k--)

Ну расскажу, как вижу...
Итак, присваиваете переменной k значение 10. Далее, проверяете это значение на условие меньше или равно нулю. Естественно 10 больше нуля, можно вычитать. Только вот какой тип переменной k? может ли его значение быть отрицательным? Почему не просто k !=0?
PS, я не программист, если что. Но я всегда стараюсь уходить от декремента в циклах. Тем более в вашем случае и с инкрементом можно было двигать массив вправо, написав colors[11-k] = colors[10-k];

Просто если дело не в задержках, к которым, как я читал, WS2812B критична, что даже код на ассемблере многие применяют, то проблема, как мне видится, именно в типе переменной k

_________________
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Чт ноя 14, 2019 20:38:50 
Мучитель микросхем
Аватар пользователя

Карма: 4
Рейтинг сообщений: 21
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Сообщений: 488
Откуда: Ижевск
Рейтинг сообщения: 0
Да, вы правы :facepalm: :facepalm: В целом заработало, но все равно подглюкивает, видимо разваливаются таймеры на нопах (


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Пт ноя 15, 2019 15:48:08 
Вымогатель припоя
Аватар пользователя

Карма: 15
Рейтинг сообщений: 134
Зарегистрирован: Вс дек 02, 2012 16:58:33
Сообщений: 625
Откуда: Украина, Киев
Рейтинг сообщения: 0
Если вам не обязательно делать гирлянду ногодрыгом и на тиньке, то давно открыт код на таймере с DMA на STM32F051.
Повторяйте, я вышлю прошивку для 10 эффектов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Сб ноя 16, 2019 21:25:19 
Мучитель микросхем
Аватар пользователя

Карма: 4
Рейтинг сообщений: 21
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Сообщений: 488
Откуда: Ижевск
Рейтинг сообщения: 0
Да я просто хочу сделать подсветку, использовать что то мощнее это как уничтожать тараканов ядерной бомбой мне кажется. Вот и стараюсь на тини13 или подобном восьминогом камне )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Пн ноя 18, 2019 10:36:58 
Вымогатель припоя
Аватар пользователя

Карма: 15
Рейтинг сообщений: 134
Зарегистрирован: Вс дек 02, 2012 16:58:33
Сообщений: 625
Откуда: Украина, Киев
Рейтинг сообщения: 0
Тогда вам не нужно постоянно слать данные. Достаточно одного раза, и гирлянда светится до выключения питания :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Пн ноя 18, 2019 17:09:04 
Мучитель микросхем
Аватар пользователя

Карма: 4
Рейтинг сообщений: 21
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Сообщений: 488
Откуда: Ижевск
Рейтинг сообщения: 0
Как раз таки нужно. Хочется какой нибудь анимации по интереснее. Ну да ладно, пока этот вопрос отложил, потом снова вернусь к нему, буду экспериментировать. Пока предполагаю что при обращении к массиву данных теряется время и идет развал времени посылки.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Ср дек 11, 2019 01:25:12 
Сверлит текстолит когтями
Аватар пользователя

Карма: 17
Рейтинг сообщений: 207
Зарегистрирован: Вс май 13, 2012 00:01:54
Сообщений: 1170
Рейтинг сообщения: 0
Как-то так. Обратите внимание PIC-у нужно 10МГц. Те он должен работать от кварца. На его стандартных 4МГц сформировать такты для WS-ов невозможно в принципе. Если нужен будет код для АТтини13 - могу выложить. Код на Бейсике. Вся фишка в том, что у ПИКа почти нет свободной оперативки.


Вложения:
PIC12F508_WS2812.zip [1.1 KiB]
Скачиваний: 83
PIC12F508_WS2812.hex [2.46 KiB]
Скачиваний: 83
PIC12F508_WS2812.JPG [142.54 KiB]
Скачиваний: 135
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RGB гирлянда (WS2812b)
СообщениеДобавлено: Ср дек 11, 2019 08:37:58 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 89
Рейтинг сообщений: 1751
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15364
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Kotto писал(а):
unsigned char colors[12] = {0, 0, 0, 0, 0, 0, 20, 40, 60, 80, 120, 150}; // ну пусть будет такая яркость, пофиг, не суть, все RGB каналы будут одни и те же, цвет белый
мой опыт показал, что при цвете RGB=0x010000 светодиод уже светится весьма заметно, меньше яркость сделать невозможно. поэтоу для "кометы" самое простое, это удваивать яркость: {0,1,2,4,8,16,32,64,128,255}. в принципе, в динамике на галз разницы в яркости свыше 64 уже не заметно - сливаются.

Добавлено after 3 minutes 53 seconds:
Kotto писал(а):
Хочется какой нибудь анимации по интереснее. Ну да ладно, пока этот вопрос отложил, потом снова вернусь к нему, буду экспериментировать. Пока предполагаю что при обращении к массиву данных теряется время и идет развал времени посылки.
какой посылки?! алгоритм у вас должен быть такой:
1. подготовили данные
2. выплюнули их в ленту светодиодов
3. перешли к п.1
во время п.2 никаких других действий не осуществляется, кроме как работа с времянкой, а во время п.1 нет никакого взаимодействия с лентой. как у вас может что-то разваливаться?!

если вас не ограничивает именно attiny13, томожете посмотреть в сторону моего проекта: https://radiokot.ru/forum/viewtopic.php ... 5#p3745305

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
удивительно, но при взгляде на многих сверху ничего не меняется...


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 178 ]     ... , , , , 9

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y