Так что если провод не плоский шлейф, а что то самодельное - то нужно 3 репитера.
Гирлянда на RGB светодиодах
Re: Гирлянда на RGB светодиодах
12 элементов, репитер на 74HC00D стоит после 8. Гирлянда продолжает моргать в такт
Репитер собрал на той же плате, немного подрезав дорожки и кинув перемычек.
Так что если провод не плоский шлейф, а что то самодельное - то нужно 3 репитера.
Так что если провод не плоский шлейф, а что то самодельное - то нужно 3 репитера.
- Riniy
- Мучитель микросхем
- Сообщения: 406
- Зарегистрирован: Ср окт 27, 2010 04:20:09
- Откуда: Сахалин -> Татарстан
Re: Гирлянда на RGB светодиодах
Время переключения одного элемента 74HC00D составляет примерно 10nS (для репитера надо 2 элемента=20nS). Поэтому, при большом количестве повторителей будет большая задержка по времени и может произойти срыв синхронизации сигналов. Для предотвращения этого репитер надо ставить одновременно и на сигнал DATA, благо в 1 микросхеме 4 элемента. 
Re: Гирлянда на RGB светодиодах
Data и так пробегает через регистры. А 20 ns это мало, время переключения SCL в милисекундах измеряется, на 30 элементов хватит.
Re: Гирлянда на RGB светодиодах
После первого репитера глюк начал появляться уже на 7 элементе. Расстояние между ними уменьшилось.
Re: Гирлянда на RGB светодиодах
Экспериментировал с рассеивателями, заметил нехорошую странность.
Гирлянда 30 звеньев, запускал тестовую программу:
Первый цвет - зеленый
синий
зел + син
красный
желтый (зел + кр)
кр + син
кр + син + зел
При питании ниже 5 вольт (4,2-4,8) все нормально
При напряжении от 4,9 до 5,5 вольт на последних пяти звеньях вместо желтого (зел + кр) горит кр + син.
С остальными цветами при любом питании все ОК.

Новых прошивок пока нет?
Гирлянда 30 звеньев, запускал тестовую программу:
Первый цвет - зеленый
синий
зел + син
красный
желтый (зел + кр)
кр + син
кр + син + зел
При питании ниже 5 вольт (4,2-4,8) все нормально
При напряжении от 4,9 до 5,5 вольт на последних пяти звеньях вместо желтого (зел + кр) горит кр + син.
С остальными цветами при любом питании все ОК.

Новых прошивок пока нет?
Re: Гирлянда на RGB светодиодах
Это то с чем я борюсь репитерами. Не согласованность линии тактирования. Или уменьшайте резистор на конце, или снижайте напряжение или нужен репитер. Прошивок новых нет, пока не соберу все 30 элементов проверять новую программу не смогу.
- Riniy
- Мучитель микросхем
- Сообщения: 406
- Зарегистрирован: Ср окт 27, 2010 04:20:09
- Откуда: Сахалин -> Татарстан
Re: Гирлянда на RGB светодиодах
Что, если вместо 1 терминального резюка на 200 Ом, ставить на каждый сегмент подтягивающий резистор по линии CLK на 6,2 кОм. По общему сопротивлению из 30 сегментов подтяжка будет =206Ом (Параллельное соединение 30 резисторов). Либо, распределить их равномерно по всей гирлянде, например, резистор на каждый 3 сегмент (получаем по 2кОм), на каждый 5-й - 1,2кОм
Re: Гирлянда на RGB светодиодах
Неа - http://www.pcbtech.ru/pages/view_page/95
В первом варианте я использовал шлейф, про согласование не задумывался, чисто случайно угадал с кабелем. Во втором варианте использую самодельный кабель, он в плане пеердачи данных полностью не пригоден, задумался о согласовании и пришлось почитать мат. часть
В первом варианте я использовал шлейф, про согласование не задумывался, чисто случайно угадал с кабелем. Во втором варианте использую самодельный кабель, он в плане пеердачи данных полностью не пригоден, задумался о согласовании и пришлось почитать мат. часть
Re: Гирлянда на RGB светодиодах
Финал, он близок. 20 элементов 
Надо было у китайцев заказывать собранную гирлянду
Надо было у китайцев заказывать собранную гирлянду
Re: Гирлянда на RGB светодиодах
Люди!!! Кому-нибудь можно заказать готовую электронику без гирлянды?
Re: Гирлянда на RGB светодиодах
Fallk писал(а):Надо было у китайцев заказывать собранную гирлянду
Вот именно (цена вопроса ~1000р за 50 элементов в случае отдельных элементов на проводах). Дело даже не в том, что в конечном итоге выходит дешевле. Очень уж неудобно использовать для управления регистры - куча проводов, необходимость репитеров, невозможность индивидуального управления яркостью. Лет пять назад - да, альтернатив было немного. Но сейчас - лучше взять специализированные чипы, а вот контроллером-то можно и самостоятельно позаниматься, "для души". ЦМУ сделать, например, с выводом на адресуемую ленту.
Re: Гирлянда на RGB светодиодах
rx3apf писал(а):а вот контроллером-то можно и самостоятельно позаниматься, "для души". ЦМУ сделать, например, с выводом на адресуемую ленту.
Ну если Вы готовы на микроконтроллере без специализированного аппаратного модуля програмно выдержать жесткие требования к паузам - то удачи
Alex52 писал(а): Люди!!! Кому-нибудь можно заказать готовую электронику без гирлянды?
Нихрена поставленного ТЗ не понял. Контроллер что ли? Так он из девяти деталей состоит, чего там сложного?
Re: Гирлянда на RGB светодиодах
Вот на столе лежит ленточка полученных WS2812B (первый раз такое - за 10 дней из Гонконга приехали !. А пока ехали, на ebay еще несколько продавцов с ними появилось, даже с более низкими ценами). Значит, надо опробовать, как оно живьем. Выберу время, попробую. Пока прикидки.
Что касается управления:
1. В простом варианте, когда нужно только загрузить состояние, и расходы времени не лимитируют, то все вообще тривиально - просто по тактам рассчитать диаграмму, выполнять с закрытыми прерываниями. Кто не писал программный передатчик UART ? Тут почти то же самое.... За 10 ms можно загрузить больше трех сотен точек. При желании вообще в восемь потоков параллельно.
2. Если жалко время (нужно в фоновом режиме что-то еще делать), то несколько сложнее. Можно использовать таймер в режиме PWM, но прерывания придется обслуживать часто, даже на AVR@16 MHz всего 20 тактов на бит. Не пойдет. Но можно (оговорюсь, пока только прикинул, не попробовал, но буду делать именно этот вариант) иначе - берем UART в режиме SPI (ATmega48/88/168/328 или другие камни, имеющие этот режим) и один таймер в режиме PWM. Для определенности примем тактовую 16 MHz (хотя ее можно выбрать достаточно произвольно). Делитель UART = 20, период таймера тоже 20. Длительность импульса таймера (ширина PWM) - 7 единиц. Собираем MOSI и OC через "исключающее ИЛИ" - все !
Тонкость в том, чтобы обеспечить синхронный запуск таймера и SPI, и вовремя подгружать данные. Есть 160 тактов на байт, при этом двойная буферизация на передачу, так что запас очень хороший, а накладные расходы будут порядка 10...15 процентов максимум.
Оно реализуемо и на PIC - USART в синхронном режиме будет делать то же самое (насколько я помню, у PIC16 синхронный режим "честный", в отличии от AVR) плюс опять же таймер. Но производительность у PIC хуже плюс неудобство адресации памяти, поэтому для этой задачи AVR выглядит предпочтительнее.
Без таймера тоже можно, но уже не так красиво (отдельный модулятор на одновибраторе).
Что касается управления:
1. В простом варианте, когда нужно только загрузить состояние, и расходы времени не лимитируют, то все вообще тривиально - просто по тактам рассчитать диаграмму, выполнять с закрытыми прерываниями. Кто не писал программный передатчик UART ? Тут почти то же самое.... За 10 ms можно загрузить больше трех сотен точек. При желании вообще в восемь потоков параллельно.
2. Если жалко время (нужно в фоновом режиме что-то еще делать), то несколько сложнее. Можно использовать таймер в режиме PWM, но прерывания придется обслуживать часто, даже на AVR@16 MHz всего 20 тактов на бит. Не пойдет. Но можно (оговорюсь, пока только прикинул, не попробовал, но буду делать именно этот вариант) иначе - берем UART в режиме SPI (ATmega48/88/168/328 или другие камни, имеющие этот режим) и один таймер в режиме PWM. Для определенности примем тактовую 16 MHz (хотя ее можно выбрать достаточно произвольно). Делитель UART = 20, период таймера тоже 20. Длительность импульса таймера (ширина PWM) - 7 единиц. Собираем MOSI и OC через "исключающее ИЛИ" - все !
Тонкость в том, чтобы обеспечить синхронный запуск таймера и SPI, и вовремя подгружать данные. Есть 160 тактов на байт, при этом двойная буферизация на передачу, так что запас очень хороший, а накладные расходы будут порядка 10...15 процентов максимум.
Оно реализуемо и на PIC - USART в синхронном режиме будет делать то же самое (насколько я помню, у PIC16 синхронный режим "честный", в отличии от AVR) плюс опять же таймер. Но производительность у PIC хуже плюс неудобство адресации памяти, поэтому для этой задачи AVR выглядит предпочтительнее.
Без таймера тоже можно, но уже не так красиво (отдельный модулятор на одновибраторе).
Re: Гирлянда на RGB светодиодах
Ну что же - будем ждать готового решения. Делайте на PIC - оно мне ближе 
Re: Гирлянда на RGB светодиодах
Не, на PIC не буду - я их уже почти не применяю. И в данном случае все ж хочется иметь запас производительности, если, скажем, делать ЦМУ - то там PIC16 пролетит однозначно, ресурсов не хватит. И программно реализовать PWM - тоже не получится, опять же по причине низкой производительности (даже на AVR придется повозиться, цикл достаточно критичный).
Re: Гирлянда на RGB светодиодах
Воооот - а нам советуете. Это же мне прийдеться изучать PIC32, тратить время на освоение нового камня, а я ведь нифига не програмист, так - быдлокодер, только asm и освоил. Даже С какое нить лень да и жалко времени на изучение.
Re: Гирлянда на RGB светодиодах
PIC32 не предлагаю, STM32 тоже. К тому же я с ними никогда не работал. А на AVR это как два пальца об асфальт, на нем и буду. По моему опыту (десяток платформ) - его ассемблер исключительно прост в освоении.
На сях, кстати, я тоже не пишу - уже больше тридцати лет все только и почти исключительно на ассемблерах...
На сях, кстати, я тоже не пишу - уже больше тридцати лет все только и почти исключительно на ассемблерах...
Последний раз редактировалось rx3apf Сб ноя 16, 2013 15:32:18, всего редактировалось 1 раз.
- Riniy
- Мучитель микросхем
- Сообщения: 406
- Зарегистрирован: Ср окт 27, 2010 04:20:09
- Откуда: Сахалин -> Татарстан
Re: Гирлянда на RGB светодиодах
Все верно, сделать программный интерфейс для WS2812b просто, на 1 светик надо отправить 24 бита (по 1 байту на цвет), по похожему принципу как RC (ИК-пульт) или 1-wire, который еще жестче по выдержке времени. Я встретил такие светодиоды еще в мае, но было поздно, детали все уже были куплены и обратного хода нет. Так что есть план на следующий год!
Re: Гирлянда на RGB светодиодах
Ну что же - если получится на AVR сделать программу передачи данных для WS, можно будет взять мой код и перегнать его в асемблер для AVR. Математика то останется неизменной. Только регистры да операторы поменяються. Вместо подпрограммы передачи по SPI будет подпрограмма передачи по WS