Обсуждаем цифровые устройства...
Ответить

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

Ср мар 28, 2018 13:59:34

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

Собсно, сам вопрос: кто-нибудь работал с этой(ми) микрухой? Из ДШ я понял, что данные защёлкиваются только тогда, когда при поднятом LATCH подаём три клока. И у меня даже получилось рандомно вывести несколько пикселей. И самое интересное - в каждом байте происходит дикий сдвиг или вообще не выводятся ровно три (!) пикселя. Кто чем подскажет?

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

Ср мар 28, 2018 15:14:57

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

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

Ср мар 28, 2018 18:24:47

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

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

Ср мар 28, 2018 18:29:49

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

UPD:

Как я понял из даташита на MBI5038 - если не "отпускать" высокий уровень на LE (Load Enable), то начиная с 4-ого фронта сигнала Clock данные будут писаться в регистр конфигурации. :roll:

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

Ср мар 28, 2018 19:05:44

Выше я упомянул, что MBI5038 - это то, с чего была слизана ISN2038. В модуле стоит именно ISN2038 (http://www.xlix.ru/datasheet/icn2038s.pdf). На пятой странице, если я правильно понял, говорится, что чтобы задвинуть данные в буфер, надо при поднятой защёлке три раза тыцнуть клоком. Собственно, я так и сделал, и при этом появилось хоть что-то на световых модулях, в отличае от того, когда я просто дёргал защёлкой один раз (0->1->0) после записи данных и ничего не происходило. Так что я пока не понимаю, когда надо дёргать защёлкой и с какого уровня в какой.
Вложения
ICN2038.png
(46.23 KiB) Скачиваний: 766

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

Ср мар 28, 2018 19:20:13

В даташите конкретно на ISN2038 ничего необычного на первый взгляд не видно: :roll: :dont_know:
СпойлерИзображение
Вложения
Diagram.PNG
(114.71 KiB) Скачиваний: 558

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

Ср мар 28, 2018 19:44:18

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

Добавлено after 12 minutes 2 seconds:
И если OE является как бы "разрешалкой" для показа следующих данных из кольцевого буфера, то напрашивается ещё один вопрос: как тогда рулить яркостью светового модуля, если раньше для этого юзался ШИМ на OE?

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

Ср мар 28, 2018 19:50:00

OE (Output Enable) здесь имеет ту же функциональность что и всегда, и является независимым (и не накладывает зависимости на остальные управляющие сигналы) сигналом.

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

Ср мар 28, 2018 20:08:19

В таком случае, я запутался ещё больше

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

Ср мар 28, 2018 20:17:24

Чтож, в таком случае советую "поиграть" с одним регистром. В частности с сигналом LE. :roll: :dont_know:

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

Ср мар 28, 2018 22:30:05

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

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

Чт мар 29, 2018 04:26:58

"Утро вечера мудренее."© :))
В замешательство ввело представление 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.

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

Чт мар 29, 2018 07:59:20

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

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

Чт май 17, 2018 13:04:59

Товарищи! Работал по алгоритму сообщением выше с китайскими LED-модулями на сдвиговиках ICN2038S, причём нормально до поры до времени, пока не словил хорошую помеху от сети и не получил плохо читаемую надпись "нет сигнала". То есть, надпись-то отображалась, но как будто поверх неё записались какие-то левые данные (или надпись была записана поверх левых данных).
нет сигнала-min.jpg
Нет сигнала
(254.74 KiB) Скачиваний: 766


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

Сейчас вывожу такую картинку для отладки, причём на максимальной яркости:
LED-модули-min.jpg
LED-модули
(228.1 KiB) Скачиваний: 593


Снял Logic Analyserом сигналы с LED-модулей:
1) Общим планом, чтобы была видна структура пакетов.
Общий план.png
Общий план
(49.41 KiB) Скачиваний: 534

2) Увеличен масштаб пакетов, пронумерован согласно нумерации на общем плане.
1.png
(48.93 KiB) Скачиваний: 751

2.png
(48.59 KiB) Скачиваний: 704


продолжение вложений в следующем сообщении

Добавлено after 19 minutes 19 seconds:
3.png
(48.57 KiB) Скачиваний: 672

4.png
(48.01 KiB) Скачиваний: 708

Прошу обратить внимание на запись данных в регистр конфигурации (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 KiB) Скачиваний: 623


Ещё я обратил внимание на то, что "первый" пакет данных записывается при опущенной защёлке, а "второй" - при поднятой.
Вложения
4.1.png
(48.96 KiB) Скачиваний: 719
Ответить