Arlleex 129 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба Приветствую! Хочу сделать многоканальный контроллер подсветки клавиатуры. Клавиатура достаточно больших размеров, порядка 1x1 метра. Кнопок порядка полусотни. Кнопки подсвечиваются светодиодами, сгруппированными по 4-8 штук. Как соединять (параллельно/последовательно) особой роли не играет. Сначала хотел сделать все на одной мелкой плате и выводить "силовую" лапшу на светодиоды непосредственно с нее. Но в силу возможной расширяемости устройства, хочу эту мелкую плату оставить лишь в роли управляющей. Для каждого индикатора (вернее, их 2 цвета под одной кнопкой) нужно управлять яркостью и логическим режимом - включена/выключена. Тянуть с управляющей платы сотню ШИМ-сигналов как-то совсем не хочется. Подумал, что можно рядом с каждой кнопкой поставить мелкий LED-драйвер, который и яркостью будет рулить, и к общей шине подключаться для управления. Стал искать микросхемы готовых LED-драйверов, но... все не то и все не так В общем, хочу подобрать LED-драйвер со следующими основными (для меня) характеристиками: 1. Корпус не BGA. 2. Минимальное количество внешних компонентов. 3. Питание самих светодиодов (желательно) не более 12В. 4. Свой внутренний, регулируемый программно, задатчик яркости. 5. 2 канала (под каждый цвет свой канал). 6. Не высокая цена (до 100р/шт.). 7. Управление по какой-нибудь одно- или двухпроводной шине (задание яркости, включение/выключение). Может есть какой-нибудь "народный" контроллер... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 129 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба Нашел что-то подходящее. TLC59731 от Texas Instruments. Может, кому-то тоже будет интересно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 151 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба 1 час назад, Arlleex сказал: порядка 1x1 метра 40 минут назад, Arlleex сказал: кому-то тоже будет интересно Если имеете ввиду 1 м2 стеклотекстолита, то вряд ли кому-то такое будет интересно, это не стройматериал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 129 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба 6 минут назад, Plain сказал: Если имеете ввиду 1 м2 стеклотекстолита... А причем тут стеклотекстолит? Я про микросхему написал же. А нравится тем, что каскадное соединение поддерживает и дешевая очень. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 56 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба ws2811, 2812 В общем смотрите сами Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 117 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба STP16CPS05 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 129 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба 2 часа назад, HardEgor сказал: В общем смотрите сами Тоже интересные варианты. Как я понимаю, в них можно прошить стартовые адреса, по которым контроллер на шине по количеству перепадов на линии данных определит, что данные адресованы ему. Прикольно. Но надежно ли? Ловим в середине посылки лишний клок и здрасьте приехали. Еще не понял, как задаются эти самые адреса. В первых гуглорядах продаются готовые программаторы адресов, которые я, естественно, покупать не хочу; если и надо установить адреса, то с управляющего МК один раз (в процессе настройки). Вопрос только - как. Сходу найти протокол раздачи адресов не удалось. Но если он есть в открытом доступе, то это очень круто, потому что этот самый WS2821 продается в любом продуктовом. К тому же DMX-512 - вроде как а-ля стандартизированный протокол, что есть хорошо. 1 час назад, Сергей Борщ сказал: STP16CPS05 К сожалению, и дороже, и в размерах больше моего варианта. Но и у моего есть минусы - что-то он малодоставаем, даже в местном Чип и Дипе не купить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 117 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба 2 минуты назад, Arlleex сказал: Как я понимаю, в них можно прошить стартовые адреса, Нет. Адресов как таковых нет. Просто каждый "светодиод", пропуская через себя поток данных, "откусывает" себе от его начала 3 или 4 байта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 172 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба 4 минуты назад, Сергей Борщ сказал: Просто каждый "светодиод", пропуская через себя поток данных, "откусывает" себе от его начала 3 или 4 байта. Это называется соединение "daisy chain". 8 минут назад, Arlleex сказал: Но надежно ли? Ловим в середине посылки лишний клок и здрасьте приехали. Если такое допускать, то тогда любой обмен по SPI ненадёжен. Так как в любом такое может быть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 129 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба 1 час назад, Сергей Борщ сказал: Нет. Адресов как таковых нет. Просто каждый "светодиод", пропуская через себя поток данных, "откусывает" себе от его начала 3 или 4 байта. Ну да, я и говорю. Но вот прочитал пару статей - пишут, что надо устанавливать стартовые адреса. Иначе как понять, какому светодиоду с какого бита в потоке данных начинать выдирать информацию. Полагаю, работает это так. Допустим, для простоты, одному светодиоду нужен 1 байт данных. Идет поток в 64 бита. Линии данных светодиодов соединены параллельно, на них заводится этот сигнал данных. Каждый светодиод, в зависимости от его адреса A, начинает отсчитывать количество бит A*8, после чего внутри разрешает прием во внутренний сдвиговый регистр, и откусывает себе байт. И так до STOP-бита (не знаю, как он там в DMX-512 правильно зовется). 1 час назад, jcxz сказал: Тогда любой обмен по SPI ненадёжен. Так как в любом такое может быть. Меня порадовало тут то, что сигнал данных заводится параллельно, а не как в сдвиговых регистрах микросхемы, предложенной мной - отвалится одна из них, и все что за ней тоже не будет работать. А в WS2821 - будет. Это, конечно, существенный плюс. Я, полагаясь на возможную неидеальность при передаче данных, предусматриваю периодическое обновление цепочки светодиодов; например, раз в 2 секунды заслать на всю эту цепочку то же самое логическое состояние, которое выставлено в управляющем МК. Так хотя бы вероятность получить неверно зажженный светодиод, который так и останется гореть, будет меньше. P.S. Хотя, я тут подумал, в варианте с TLC59731 можно завести SDO последней микросхемы на вход МК и мониторить то, что было отправлено (хотя бы косвенно по "болтанке" лог. уровня). И либо этот тест встроить в штатное ПО, работающее в цикле вместе с обновлением состояния индикаторов, либо проверять один раз при старте ПО (а-ля целостность аппаратуры). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 172 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба 18 минут назад, Arlleex сказал: Ну да, я и говорю. Но вот прочитал пару статей - пишут, что надо устанавливать стартовые адреса. Иначе как понять, какому светодиоду с какого бита в потоке данных начинать выдирать информацию. По той ссылке, что Вы отквотили, описываются 2 протокола SPI и DMX. Так вот для случая SPI там описано подключение "daisy chain". Т.е. - адреса не нужны, а адресация осуществляется позицией в битовом потоке, как сказал Сергей. Среди минусов такого подключения, кроме указанных там, есть ещё такой: задержка распространения, накапливающаяся с ростом числа узлов в цепи. Что сильно ограничивает частоту SCLK. Если только в каждом узле преднамеренно не вносить задержку и в SCLK. Цитата Каждый светодиод, в зависимости от его адреса A, начинает отсчитывать количество бит A*8, после чего внутри разрешает прием во внутренний сдвиговый регистр, и откусывает себе байт. И так до STOP-бита (не знаю, как он там в DMX-512 правильно зовется). Не нужно ничего этого. По фронту сигнала CS (завершению передаваемого фрейма) данные из сдвигового регистра внутри каждого узла защёлкиваются в регистр данных. Какое было в этот момент значение в сдвиговом регистре - это и есть данные адресованные данному узлу. Далее - содержимое регистра данных используется до следующего фронта на CS. Так что адреса не нужны. 18 минут назад, Arlleex сказал: Меня порадовало тут то, что сигнал данных заводится параллельно, а не как в сдвиговых регистрах микросхемы, предложенной мной - отвалится одна из них, все что за ней тоже не будет работать. А в WS2821 - будет. Это, конечно, существенный плюс. Чтобы заводить параллельно, нужно прошивать адреса в каждый. А это уже - существенный минус на производстве. Да и дорожек больше и нагрузка на передатчик больше (в том числе емкостная) при большом числе узлов. Если будете подсвечивать например стандартную клавиатуру на каждую кнопку по 3 LED (RGB), то обычный выход МК имхо не потянет 102 приёмника. Надо будет буфер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 56 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба 33 минуты назад, Arlleex сказал: Как я понимаю, в них можно прошить стартовые адреса, по которым контроллер на шине по количеству перепадов на линии данных определит, что данные адресованы ему. Прикольно. Но надежно ли? Ловим в середине посылки лишний клок и здрасьте приехали. Тогда делайте подключение драйвера каждого светодиода дифференциальной линией (как в DMX и даже готовые чипы есть для RS-485). Да, дороговато и несколько сложнее, зато надежнее :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 172 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба 28 минут назад, Arlleex сказал: Ну да, я и говорю. Но вот прочитал пару статей - пишут, что надо устанавливать стартовые адреса. Иначе как понять, какому светодиоду с какого бита в потоке данных начинать выдирать информацию. Или Вы про какой чип/интерфейс говорили? Я про SPI. Типа WS2801 Там кстати и линия задержки для SCLK предусмотрена, так что с частотой SCLK не должно быть проблем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 129 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба 1 час назад, jcxz сказал: По той ссылке, что Вы отквотили, описываются 2 протокола SPI и DMX. Так вот для случая SPI там описано подключение "daisy chain". Т.е. - адреса не нужны, а адресация осуществляется позицией в битовом потоке, как сказал Сергей. Это то да. Daisy chain - это, по сути, длинный сдвиговый регистр. 1 час назад, jcxz сказал: Не нужно ничего этого. По фронту сигнала CS (завершению передаваемого фрейма) данные из сдвигового регистра внутри каждого узла защёлкиваются в регистр данных. Какое было в этот момент значение в сдвиговом регистре - это и есть данные адресованные данному узлу. Так что адреса не нужны. Ну как это не нужно? И где в DMX-512 сигнал CS. Может, я поспешно выдвигаю идеи и свое видение, как это все работает, так что заранее извиняюсь, если несу фигню Просто даже в статье по той ссылке Цитата Для того, чтобы производить перезапись DMX адресов необходимы специальные редакторы, например RA-DMX-ID-WS2821. Некоторые модели пиксельных контроллеров имеют встроенные редакторы адресов, например, DMX K-1000D или DMX K-8000D. В процессе записи адресов используется провод с маркировкой ADR (ADI, ADIN), который впоследствии, для воспроизведения программ уже не применяется. Если в выбранном контроллере нет встроенного редактора или выхода для подключения провода ADI, то он должен быть соединен с общим проводом GND, что предотвратит влияние на него внешних помех и наводок. Цитата В итоге хотелось бы вкратце осветить положительные стороны обоих протоколов SPI и DMX. Преимущества оборудования использующего интерфейс SPI: 1. Не нужно записывать адреса, а значит, и покупать редактор адресов. (что намекает на то, что в DMX нужно) 2. Можно спокойно менять местами пиксели (отрезки ленты или модули), это не повлечет за собой изменения в рисунке эффекта. ... 58 минут назад, HardEgor сказал: Тогда делайте подключение драйвера каждого светодиода дифференциальной линией (как в DMX и даже готовые чипы есть для RS-485). Да, дороговато и несколько сложнее, зато надежнее :) Слишком жирно для такой задачи - я тоже сначала эту идею рассматривал невольно P.S. 50 минут назад, jcxz сказал: Или Вы про какой чип/интерфейс говорили? Я про SPI. Типа WS2801 Там кстати и линия задержки для SCLK предусмотрена, так что с частотой SCLK не должно быть проблем. да, теперь понял о чем шла речь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 172 22 ноября, 2019 Опубликовано 22 ноября, 2019 · Жалоба 3 минуты назад, Arlleex сказал: Ну как это не нужно? И где в DMX-512 сигнал CS. Внимательнее мой пост прочитайте: 20 минут назад, jcxz сказал: Так вот для случая SPI там описано подключение "daisy chain". Т.е. - адреса не нужны, а адресация осуществляется позицией в битовом потоке Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться