Задать вопрос
PavelK
@PavelK

Правильно ли я понял временную диаграмму сигналов?

Приветствую!
Есть термоголовка:
fff4059326cd48f68bbe7e1769a79a21.jpg
Для управления есть вот такая временная диаграмма:
fc2b391eb0fd478aa4c0b59903565d09.jpg
Подключаю к Ардуине, делаю так:

1. Устанавливаю уровень пина входных данных (0 или 1 как мне нужно)
2. Жду 10 мс
3. Устанавливаю высокий уровень пина синзронизации
4. жду 10мс
5. Устанавливаю низкий уровень пина синзронищации
6. цикл 1-5 пока все данные не отправлены
7. Устанавливаю низкий уровень пина перезаписи
8. жду 10мс
9. Устанавливаю высокий уровень пина перезаписи
10. Жду 10мс
11. Устанавливаю высокий уровень пина стробирование
12. жду 10 мс
13. Устанавливаю низкий уровень пина стробирование
14. Цикл 11-13 для стробирования всех 6 пинов стробов

Хоть в итоге она и работает, но выдаёт мусор, по которому я не могу понять где именно ошибся.
  • Вопрос задан
  • 334 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
AlanDrakes
@AlanDrakes
Не так.
Данные загружаются в регистр сдвига поблочно по переднему фронту тактового сигнала.
Грубо говоря, подключите DI к MOSI (SPI), CLK к SCK (SPI), загрузите какое-то число байт (я бы предположил, что это будет либо (384/3 = 128 бит), либо (384 / 6 = 64 бит). То есть, 16 или 8 байт. Можете загрузить и 16, лишние будут вытолкнуты из регистра. Советую грузить значение 0x55 - так будут видны пиксели через один.
Затем подать строб LATCH (дёрнуть его вниз) на произвольное время (достаточно поставить рядом команды сброса и установки пина).
Подать команду выбора на соответствующие ключи - STB1~STB6 на заданное время.
Протянуть бумагу.
Посмореть на результат.

Похоже, здесь вашу головку уже препарировали.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы