PT6311B
Есть драйвер для ВЛИ pt6311lq. Хочу подключить пока к ардуино. В принципе алгоритм написан в датащите, но не совсем понятно. Может кто-то разжевать что к чему? Не понимаю как отчистить рам
- Реклама
Спойлер
Код: Выделить всё
#include <SPI.h>
int CS = 7;
void setup() {
// put your setup code here, to run once:
pinMode(CS, OUTPUT);
digitalWrite(CS, HIGH);
delay(200);
SPI.begin();
writeRegister(0b01000001);//cmd2
writeRegister(0b11000000);//cmd3
}
void loop() {
// put your main code here, to run repeatedly:
}
void writeRegister(byte data) {
digitalWrite(CS, LOW);
SPI.transfer(data);
digitalWrite(CS, HIGH);
}- Сообщения: 7853
- Зарегистрирован: Ср фев 11, 2009 20:35:58
Я понимаю в чем суть адреса, меня эта Н в конце маленько смущает. Это типо H-hex чтобы не писать 0x?
- Реклама
H - значит hex.
Все очень просто.
Область рам (озу) драйвера - каждый бит это один сегмент дисплея.
От 0 до 2FH это 0 до 47 в десятичном значении (можете подсчитать сами).
В команде 3
в первых 6 битах мы определяем какие сегменты
включаем (тоже самое можно и по таблице озу).
Hex написание более компактно чем bin, но bin более понятно 47dec - 2FH - 101111bin (если расписать какому биту
соответствует какой сегмент.
Очищать (записывать значение 0) лучше сразу всю область озу, чтобы не было недоразумений с засветкой
неиспользуемых сегментов.
Как вы конструктивно подключили драйвер.
Рекомендую, по крайней мере для экспериментов, использовать плату от старых двд в комплекте с блоком питания.
Будет дешевле и быстрее.

Все очень просто.
Область рам (озу) драйвера - каждый бит это один сегмент дисплея.
В команде 3
включаем (тоже самое можно и по таблице озу).
Hex написание более компактно чем bin, но bin более понятно 47dec - 2FH - 101111bin (если расписать какому биту
соответствует какой сегмент.
Очищать (записывать значение 0) лучше сразу всю область озу, чтобы не было недоразумений с засветкой
неиспользуемых сегментов.
Как вы конструктивно подключили драйвер.
Рекомендую, по крайней мере для экспериментов, использовать плату от старых двд в комплекте с блоком питания.
Будет дешевле и быстрее.
Сделал нормальную плату наконец с нормальным преобразователем на кф1211еу1, контроллер поставил mega88p
Набросал код, в ардуино иде для простоты отладки
Но не пашет
Набросал код, в ардуино иде для простоты отладки
Спойлер
Код: Выделить всё
#include <SPI.h>
int CS = 14;
void setup() {
// put your setup code here, to run once:
delay(200);
pinMode(CS, OUTPUT);
digitalWrite(CS, HIGH);
SPI.setBitOrder(LSBFIRST);
SPI.setClockDivider(SPI_CLOCK_DIV32);
SPI.setDataMode(SPI_MODE3);
SPI.begin();
digitalWrite(CS, LOW);
SPI.transfer(0b01000000); //cmd2 - write data
digitalWrite(CS, HIGH);
digitalWrite(CS, LOW);
SPI.transfer(0b11000000); //cmd3
for(int i = 0x00; i < 0x2F; i++) SPI.transfer(0); //data - clear ram
digitalWrite(CS, HIGH);
digitalWrite(CS, LOW);
SPI.transfer(0b00001100); //cmd1 - display settings
digitalWrite(CS, HIGH);
digitalWrite(CS, LOW);
SPI.transfer(0b10001100); //cmd4 - display setings
digitalWrite(CS, HIGH);
digitalWrite(CS, LOW);
SPI.transfer(0b01000001); // write to led port
SPI.transfer(0b00010101); // on led1, led3, led5
digitalWrite(CS, HIGH);
}
void loop() {
// put your main code here, to run repeatedly:
delay(100);
}Сам экспериментировал на пик.
У меня заработало (см выше).
Напряжение накала?
Питание анодно сеточное какое?
Подключено как в даташите?
Вот алгоритм программы PT6311 абсолютно аналогичен 6312
Без правильной инициализации может не показывать.
У вас похоже на мой
Мем_clear- очитска внутренней памяти. В принципе на начальном этапе не влияет.
А работу со светодиодами можете пока тоже можно исключить.
А здесь видимо основной цикл?
Но там ничего не происходит и ничего не будет выводиться.
Смотрите на прилагаемом алгоритме, какие нужно произвести действия.
В ардуино не знаю, а других компиляторах сначало нужно настраивать сам микроконтроллер.
Когда рыскал по интернету, по моему и для ардуино были примеры программ.
У меня заработало (см выше).
Напряжение накала?
Питание анодно сеточное какое?
Подключено как в даташите?
Вот алгоритм программы PT6311 абсолютно аналогичен 6312

Без правильной инициализации может не показывать.
У вас похоже на мой
Спойлер
Код: Выделить всё
void PT_init (void)
{
STB = 1;
SDO = 1;
SCL = 1;
Delay_ms(200);
PT_Transmit(0b01000000); // Command 2 (0x40) (Normal mode, increment adress,
STB = 1;
PT_Transmit(0b11000000); // Command 3 (0xC0) (address is set at “00H”.)
STB = 1;
//---------------
Mem_clear();
//-------------------------------
//PT_Transmit(dat);
PT_Transmit(0b00000011); // Command 1 (00XX0XXX : 8 digits, 20 segments)
STB = 1;
PT_Transmit(0b10000111); // Command 4 (0x87)(10XX00111 display OFF, Pulse width = 1/16.)
STB = 1;
}А работу со светодиодами можете пока тоже можно исключить.
А здесь видимо основной цикл
Код: Выделить всё
void loop() {
// put your main code here, to run repeatedly:
delay(100);
}Но там ничего не происходит и ничего не будет выводиться.
Смотрите на прилагаемом алгоритме, какие нужно произвести действия.
В ардуино не знаю, а других компиляторах сначало нужно настраивать сам микроконтроллер.
Когда рыскал по интернету, по моему и для ардуино были примеры программ.
[uquote="daaar",url="/forum/viewtopic.php?p=3787862#p3787862"]Сделал нормальную плату наконец с нормальным преобразователем на кф1211еу1, контроллер поставил mega88p
Набросал код, в ардуино иде ...
Но не пашет[/uquote]
Сделайте пересылку не на аппаратном SPI, а программным ногодрыгом для начала.
Тем более, что мега88 в "типовой набор" ардуинки не входит - то или от DIY или MiniCore должны быть установлены.

Набросал код, в ардуино иде ...
Но не пашет[/uquote]
Сделайте пересылку не на аппаратном SPI, а программным ногодрыгом для начала.
Тем более, что мега88 в "типовой набор" ардуинки не входит - то или от DIY или MiniCore должны быть установлены.
Стоит MiniCore. pt6311 подключен как в датащите. Попробю вручную байты передавать тогда
Добавлено after 35 minutes 48 seconds:
Нашел косяк. Всё работает! Ошибка глупейшая была
Добавлено after 35 minutes 48 seconds:
Нашел косяк. Всё работает! Ошибка глупейшая была
Пожалуйста. Осталось побороть засветку сегментов

А вот что за индикатор я не знаю, сзади написано, но гуглёж совсем к другому индикатору приводит. Индикатор взял в местном магазине за 40р

А вот что за индикатор я не знаю, сзади написано, но гуглёж совсем к другому индикатору приводит. Индикатор взял в местном магазине за 40р
Стабилизируем ток анодов/снижаем напружку на анодах.
Регулировка яркости для подобного дисплея была где-то в схемах модернизации часиков на КР145ИК1901...

Регулировка яркости для подобного дисплея была где-то в схемах модернизации часиков на КР145ИК1901...
Засветку исправил. Стабилитрон поставил на 4,7 вольта, до этого стоял какой-то случайный. Всё работает прямо отлично. Думаю взять десяток таких индикаторов
а светодиодыв схеме зачем указаны? че оне индицируют?
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
В какой схеме? В коде писал значения в регистр светодиодов чтобы понять, принимает микросхема данные или нет
Светодиоды как дополнительная фишка, основной индикатор люминесцентный, а светодиоды индикаторы режимов
работы схемы.
Такое было в видиках, двд.
работы схемы.
Такое было в видиках, двд.


