Разъяснение поведения при включении драйвера дисплея MAX7219

max7219 startup

Каково точное значение раздела «Начальное включение питания» технического описания MAX7219, которое можно найти на странице 7?

Там написано:

При первоначальном включении все регистры управления сбрасываются, дисплей гаснет, и MAX7219/MAX7221 переходят в режим отключения. Запрограммируйте драйвер дисплея перед использованием дисплея. В противном случае он изначально будет настроен на сканирование одной цифры, он не будет декодировать данные в регистрах данных, а регистр интенсивности будет установлен на минимальное значение.

Большинство из этого ясно. Но, в частности, что означает "дисплей выключен"? иметь в виду? Означает ли это, что внутренняя SRAM MAX7219 очищается как часть последовательности включения питания, или это означает, что, поскольку дисплей установлен в режим отключения при включении питания, дисплей будет пустым.

Я много искал и не смог найти окончательного утверждения. Какая из этих интерпретаций верна или, возможно, есть другая интерпретация?

Почему это важно? На самом деле праздное любопытство. Я читал техническое описание, что ОЗУ было очищено и, следовательно, не ожидалось, что придется очищать его вручную.

Поэтому я этого не делал, и мне было интересно, откуда берется вспышка случайных данных при включении в моем банке дисплеев до первой записи данных дисплея. И я слишком поздно понял, что неправильно прочитал техническое описание или техническое описание не применимо к клону, который я использовал.

Мне интересно, есть ли у кого-то окончательный ответ из какого-то глубокого расследования или, возможно, инсайдерской информации. Похоже, что нет, и в любом случае это может быть несовместимо.

Для клонов MAX7219 в моей коллекции SRAM не очищается при включении питания. Я не знаю, относится ли это к подлинному MAX7219 или к другим клонам, если уж на то пошло. В будущем я буду просто предполагать, что нет, и обнулю SRAM вручную.

То, что на линии выбора микросхемы (CS) установлен подтягивающий резистор, чтобы смягчить неустойчивое поведение, является превосходным. Случайный шум здесь может легко привести к неожиданным результатам.

Тем не менее, следует отметить, что если линия CS не является линией выбора ведомого устройства (SS) по умолчанию для группы контактов SPI, недостаточно использовать только подтягивающий резистор.

Функция запуска SPI позаботится о том случае, если на выводе SS по умолчанию произойдет сбой низкого уровня, когда он станет выходным, если соответствующий бит в выходном регистре не установлен в 1 до установки вывода в режим вывода.

Для вывода SS по умолчанию begin() сначала выполняет цифровую запись HIGH, устанавливая внутренний подтягивающий резистор (и бит выходного регистра в 1), а затем pinMode в OUTPUT. резистор глюков нет.

Однако, если вывод CS отличается от назначенного SS, то тот же процесс должен выполняться кодом пользователя. Если его забыть, даже на подтянутом контакте будет глючить низкий уровень, поскольку выходной регистр с битом, установленным в 0, передается на контакт, когда он настроен как выход.

Это легко исправить, используя тот же метод, что и в библиотеке SPI: digitalWrite HIGH на вывод CS, а затем установите этот вывод в положение OUTPUT. И, конечно же, потяните вверх.

, 👍-2

Обсуждение

Я немного запутался. Похоже, у вас нет никакого способа прочитать ОЗУ в устройстве. Итак, если бы было различие между выключением дисплея и очисткой ОЗУ (я подозреваю, что нет), как бы вы это заметили или какое вам дело? Ваш вопрос в том виде, в котором он написан, вероятно, лучше подходит для ESE., @timemage

Если механизм не описан в техпаспорте, то будет сложно определить, как достигается гашение, и оно может даже различаться между различными клонами/подделками. Однако, если вы спрашиваете, потому что вы столкнулись с неустойчивым/случайным поведением при запуске системы, может помочь установка подтягивающего резистора 10k на вывод load/cs., @6v6gt

Вы тщательно отредактировали свой первоначальный пост, поэтому теперь не ясно, осталась ли проблема. Однако смысл внешнего подтягивающего резистора на выводе load/cs заключается в том, что он сводит к минимуму риск нестабильности при запуске системы, которой подвержены эти микросхемы MAX7219, в то время как выводы MCU все еще остаются плавающими. То есть до того, как была активирована внутренняя подтяжка., @6v6gt


2 ответа


-1

Думаю, это достаточно ясно из таблицы данных.

все регистры управления сбрасываются

Отображаемые цифры — это регистры, поэтому они будут содержать нули.

Отображение одной цифры, нахождение в режиме отключения и минимальная интенсивность — вот что произойдет, если все регистры будут установлены на ноль.

Я много искал и не смог найти однозначного утверждения.

Почему это важно знать? При включении он будет пустым, как указано. Предположительно, вы настроите его так, как хотите, прежде чем выйти из режима выключения.

,

таблица данных содержит фразу «В таблице 2 перечислены 14 адресуемых цифровых и управляющих регистров». ... неясно, включает ли «все регистры управления сброшенные» цифровые регистры ... как вы сказали, это действительно имеет значение?, @jsotola


0

В техническом описании Maxim 2021 есть как минимум одна ошибка: все биты регистра выключения — режима выключения — не имеют значения. Дисплей не пуст после холодной настройки, для пяти кадров при 29 кадрах в секунду случайные и меняющиеся светодиоды загораются на моей матрице 32x32. Если я сбрасываю свой 8051, когда он отображает мой шаблон, дисплей гаснет, а затем на мгновение появляется последнее изображение перед тем, как я выполнил сброс, за которым следует пустота и мой шаблон прокрутки.

,

В том виде, в котором он написан сейчас, ваш ответ неясен. Пожалуйста, [редактируйте], чтобы добавить дополнительные детали, которые помогут другим понять, как это относится к заданному вопросу. Вы можете найти больше информации о том, как писать хорошие ответы [в справочном центре](/help/how-to-answer)., @Community

Неясно, какое отношение имеет 8051 к вопросу, заданному автором. Пожалуйста, [отредактируйте] и уточните свой ответ., @Greenonline