Кто-нибудь сталкивался с ICN2038S (MBI5038)

Обсуждаем цифровые устройства...
Ответить
Встал на лапы
Сообщения: 113
Зарегистрирован: Сб янв 11, 2014 21:25:55

Сообщение Alex-Elektron »

Доброго времени суток! Дорогие форумчане, произошла такая вещь: использовал я сперва одни световые китайские модули со сдвиговиками SN16207S (инфы по ним нет), которые работали по принципу задвинул данные, дёрнул защёлку - получил данные на выход. Эти сдвиговики простые до безобразия и никаких проблем с ними не было. Теперь пришли светодиодные модули ТОЙ ЖЕ МОДЕЛИ, но с другим сдвиговиком, естественно, со старым кодом ничё не заработало. А стоят в них теперь сдвиговики ICN2038 и у этих сдвиговиков аж два конфигурационных регистра на борту (!). Нашёл микруку, с которой была слизана ICN2038, это оказалась MBI5038.

Собсно, сам вопрос: кто-нибудь работал с этой(ми) микрухой? Из ДШ я понял, что данные защёлкиваются только тогда, когда при поднятом LATCH подаём три клока. И у меня даже получилось рандомно вывести несколько пикселей. И самое интересное - в каждом байте происходит дикий сдвиг или вообще не выводятся ровно три (!) пикселя. Кто чем подскажет?
Реклама
Друг Кота
Аватара пользователя
Сообщения: 35639
Зарегистрирован: Вс янв 25, 2009 21:16:04
Откуда: Москва

Сообщение Brigadir »

Плохо ты даташит изучил: Я мельком глянул - содержит 16 битовый сдвиговый регистр. (и не один. Общая память содержит 64 строчки по 32 бита)
И все их надо заполнить 1 и 0. (как тебе надо). То есть: если ты впихнул всего 3 бита, то остальные будут нулики. Долго долго ждать, пока они все выскочат на выходе.
А чо - нормальная микра. Надо как нибудь куда то её пристроить.
А поболтать?
Реклама
Мучитель микросхем
Сообщения: 446
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Откуда: 69.Ржев

Сообщение a797945 »

"...данные защёлкиваются только тогда, когда при поднятом LATCH подаём три клока..."
я такое в даташите на MBI5038 не увидел.
клоки вовремя 1 на LE нужны для общения с регистром конфигурации, а так :
с 16ю клоками закидываете 16 бит, останавливаете клок и после тычка на LE (т.е. с возвратом на 0) - на выходе получаете 16бит в параллель, если есть разрешение на работу выходных ключей (OE и чего-то еще по температуре).
для записи в регистр конфигурации:
пишешь битики, за 4 клока до последнего бита (D0) поднимаешь LE, после 4го клока снимаешь LE - данные отправляются в регистр конфигурации.
я такое насмотрел.
может у Вас что-то с защитой не так, я анг.я. не очень, в эту тему не вникал.
Последний раз редактировалось a797945 Ср мар 28, 2018 18:36:13, всего редактировалось 2 раза.
Друг Кота
Аватара пользователя
Сообщения: 6643
Зарегистрирован: Чт авг 09, 2012 01:09:39
Откуда: Ливны

Сообщение korob »

a797945 писал(а):с 16ю клоками закидываете 16 бит, останавливаете клок и после тычка на LE (т.е. с возвратом на 0)
Добавлю - Clock останавливать не обязательно, важно снять высокий уровень LE до прихода следующего фронта Clock (по спаду LE данные "защёлкиваются" в регистр хранения). :roll:

UPD:

Как я понял из даташита на MBI5038 - если не "отпускать" высокий уровень на LE (Load Enable), то начиная с 4-ого фронта сигнала Clock данные будут писаться в регистр конфигурации. :roll:
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Сообщения: 113
Зарегистрирован: Сб янв 11, 2014 21:25:55

Сообщение Alex-Elektron »

Выше я упомянул, что MBI5038 - это то, с чего была слизана ISN2038. В модуле стоит именно ISN2038 (http://www.xlix.ru/datasheet/icn2038s.pdf). На пятой странице, если я правильно понял, говорится, что чтобы задвинуть данные в буфер, надо при поднятой защёлке три раза тыцнуть клоком. Собственно, я так и сделал, и при этом появилось хоть что-то на световых модулях, в отличае от того, когда я просто дёргал защёлкой один раз (0->1->0) после записи данных и ничего не происходило. Так что я пока не понимаю, когда надо дёргать защёлкой и с какого уровня в какой.
Вложения
ICN2038.png
(46.23 КБ) 807 скачиваний
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6643
Зарегистрирован: Чт авг 09, 2012 01:09:39
Откуда: Ливны

Сообщение korob »

В даташите конкретно на ISN2038 ничего необычного на первый взгляд не видно: :roll: :dont_know:
СпойлерИзображение
Вложения
Diagram.PNG
(114.71 КБ) 845 скачиваний
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.
Реклама
Встал на лапы
Сообщения: 113
Зарегистрирован: Сб янв 11, 2014 21:25:55

Сообщение Alex-Elektron »

Т.е., если у меня развертка 1/4, то я при запрещённом OE наваливаю в сдвиговики данные каждой первой строки светоовых модулей, затем делаю тыц защёлкой и разрешаю выход опусканием OE (при этом каждая первая строка начинает светится огнями), а после продолжаю накидывать данные для каждых 2х 3их 4ых строк, и когда их необходимо поджечь, дёргаю OE?

Добавлено after 12 minutes 2 seconds:
И если OE является как бы "разрешалкой" для показа следующих данных из кольцевого буфера, то напрашивается ещё один вопрос: как тогда рулить яркостью светового модуля, если раньше для этого юзался ШИМ на OE?
Друг Кота
Аватара пользователя
Сообщения: 6643
Зарегистрирован: Чт авг 09, 2012 01:09:39
Откуда: Ливны

Сообщение korob »

OE (Output Enable) здесь имеет ту же функциональность что и всегда, и является независимым (и не накладывает зависимости на остальные управляющие сигналы) сигналом.
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.
Встал на лапы
Сообщения: 113
Зарегистрирован: Сб янв 11, 2014 21:25:55

Сообщение Alex-Elektron »

В таком случае, я запутался ещё больше
Друг Кота
Аватара пользователя
Сообщения: 6643
Зарегистрирован: Чт авг 09, 2012 01:09:39
Откуда: Ливны

Сообщение korob »

Чтож, в таком случае советую "поиграть" с одним регистром. В частности с сигналом LE. :roll: :dont_know:
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.
Мучитель микросхем
Сообщения: 446
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Откуда: 69.Ржев

Сообщение a797945 »

выложенный даташит показался мне довольно странным
и тем не менее, заявлено - сдвиговый регистр с двумя защелками, на стр.7 показана работа с их участием (с обоими). при этом по спаду LE данные защелкиваются в первом регистре, по спаду на OE из первого данные защелкиваются во второй (он же выход). можно закидывать по 32бита.
что подразумевается как буфер и как можно пользоваться раздельной записью в регистры (стр.5) внятно не раскрыто. можно подумать, что при опущенном OE и длительности LE 12 клоков выводиться будет сразу.
дополню - на диаграммах (что на стр.7, что на стр.13) смена данных на выходе нарисована в присутствии импульсов на клоке, что бы было явно указано нужен ли импульс на клоке для переноса данных из регистра1 в регистр2 или не нужен я не увидел.
во общем нужны эксперименты.
Последний раз редактировалось a797945 Чт мар 29, 2018 07:16:37, всего редактировалось 1 раз.
Друг Кота
Аватара пользователя
Сообщения: 6643
Зарегистрирован: Чт авг 09, 2012 01:09:39
Откуда: Ливны

Сообщение korob »

"Утро вечера мудренее."© :))
В замешательство ввело представление ICN2038 как копии/аналога MBI5038. :? Но как оказалось они имеют существенно различающуюся логику работы. Значит что я понял после более внимательного прочтения даташита на ICN2038?

Данные из регистра сдвига отправляются либо в регистр хранения по спаду LE после 3-х тактов Clock, либо в регистр конфигурации №1 по спаду LE после 11-и тактов Clock, или в регистр конфигурации №2 по спаду LE после 12-и тактов Clock. Т.е грузим данные, поднимаем LE, ждём 3 такта Clock, опускаем LE и данные отправляются в регистр хранения (защёлкиваются). Если ждём 11 или 12 тактов Clock, то данные записываются в соответствующий конфигурационный регистр. Однако чем занимается в этот момент (с поднятым LE) сам регистр сдвига остаётся загадкой. :? :dont_know: То ли он продолжает двигать данные (3, 11 или 12 тактов, пока поднят LE), или же он останавливает сдвиг и ждёт опускания LE, после чего в зависимости от числа "пропущенных" тактов отправляет данные в нужный регистр. В первом случае получается что нужно поднимать LE за 3 такта до окончания передачи блока данных, т.е. после передачи 13-ого бита., и опускать после передачи 16-ого. Ну а во втором случае поднимать LE после окончания передачи блока данных, делать паузу в загрузке данных в регистр сдвига на 3 такта (приостановить только передачу данных, не прерывая Clock), после чего возобновить выгрузку данных в регистр. :roll:

Я понял это примерно так. :) ТС остаётся выяснить чем занимается регистр сдвига при поднятом LE.
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.
Встал на лапы
Сообщения: 113
Зарегистрирован: Сб янв 11, 2014 21:25:55

Сообщение Alex-Elektron »

В общем, очень даже помогли ваши рассуждения, за что большое спасибо! В итоге, добился, чего хотел. С конфигурационными регистрами пока не разбирался, ибо незачем. Данные, которые мы хотим увидеть ан светодиодных панелях, записываются просто: если нам надо вкатить 128 бит данных, то начинаем их вкачивать, как в обычные сдвиговики типа hc595. Затем, перед тем, как задвинуть последние 3 бита, поднимаем защёлку, задвигаем их, опускаем защёлку. Дальше просто радуемся жизни.
Встал на лапы
Сообщения: 113
Зарегистрирован: Сб янв 11, 2014 21:25:55

Сообщение Alex-Elektron »

Товарищи! Работал по алгоритму сообщением выше с китайскими LED-модулями на сдвиговиках ICN2038S, причём нормально до поры до времени, пока не словил хорошую помеху от сети и не получил плохо читаемую надпись "нет сигнала". То есть, надпись-то отображалась, но как будто поверх неё записались какие-то левые данные (или надпись была записана поверх левых данных).
нет сигнала-min.jpg
Нет сигнала
(254.74 КБ) 803 скачивания
Вспомнил про то, что в ДШ на ICN2038S что-то писалось про двойную защёлку. Чтобы разобраться с управляющими сигналами, купили контроллер для управления LED-экранами HUDI HD-C10. Легче не стало. При показе данных на каждую 4ю линию (всего их 4, развёртка 1/4, Z или S -образная, не помню, в какую сторону) он успевает два (2! Может, это связанно как-то с двойной защёлкой?) раза записать выводимые данные. Если у кого-то хватит терпения, прошу помочь разобраться, как всё-таки управляются эти ПОДНЕБЕСНЫЕ модули.

Сейчас вывожу такую картинку для отладки, причём на максимальной яркости:
LED-модули-min.jpg
LED-модули
(228.1 КБ) 629 скачиваний
Снял Logic Analyserом сигналы с LED-модулей:
1) Общим планом, чтобы была видна структура пакетов.
Общий план.png
Общий план
(49.41 КБ) 568 скачиваний
2) Увеличен масштаб пакетов, пронумерован согласно нумерации на общем плане.
1.png
(48.93 КБ) 781 скачивание
2.png
(48.59 КБ) 725 скачиваний
продолжение вложений в следующем сообщении

Добавлено after 19 minutes 19 seconds:
3.png
(48.57 КБ) 703 скачивания
4.png
(48.01 КБ) 742 скачивания
Прошу обратить внимание на запись данных в регистр конфигурации (11 импульсов клока при поднятой защёлке в файле 1.png), информации о котором я не нашёл, и на то, что в каждую линию (A,B,C,D) LED-контроллер пишет данные два раза, дёргая при этом ногу управления текущей линией и ногу OE, причём синхронно. Очень хочется понять, как всё-таки управлять этими LED-модулями.

На всякий случай, прикрепляю логи Logic 1.2.11 (файл весит аж 27 Мб, поэтому залил на яндекс.диск):
https://yadi.sk/d/ZEfRT7KT3W4nX3

Добавлено after 15 minutes 3 seconds:
Передёргивание текущей линии (например A) и OE происходит на середине передачи второй посылки. Не понимаю, почему и зачем это надо. Полная посылка состоит из 128 бит, т.к. экран из двух модулей имеет разрешение 16х64 пикселя.
4.1.png
(48.96 КБ) 654 скачивания
Ещё я обратил внимание на то, что "первый" пакет данных записывается при опущенной защёлке, а "второй" - при поднятой.
Вложения
4.1.png
(48.96 КБ) 743 скачивания
Ответить

Вернуться в «Цифровая техника»