Страница 1 из 1
PT6311B
Добавлено: Вс ноя 03, 2019 20:16:01
daaar
Есть драйвер для ВЛИ
pt6311lq. Хочу подключить пока к ардуино. В принципе алгоритм написан в датащите, но не совсем понятно. Может кто-то разжевать что к чему? Не понимаю как отчистить рам
Re: PT6311B
Добавлено: Вс ноя 03, 2019 20:25:26
Аlex
Что конкретно не понятно ?
Там всего 4 команды. Как можно в них запутаться ?

Re: PT6311B
Добавлено: Пн ноя 04, 2019 06:57:01
daaar
Спойлер
Код: Выделить всё
#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);
}
Получается командой 3 я ставлю значение регистра 0x00. В датащите есть такая строчка:
The address is considered valid if it has a value of “00H” to “2FH”. И не понятно что за адреса эти и что за H в конце
Re: PT6311B
Добавлено: Пн ноя 04, 2019 09:15:21
otest
И не понятно что за адреса эти и что за H в конце
Вот с этого и начни изучение.
Re: PT6311B
Добавлено: Пн ноя 04, 2019 10:12:00
daaar
Я понимаю в чем суть адреса, меня эта Н в конце маленько смущает. Это типо H-hex чтобы не писать 0x?
Re: PT6311B
Добавлено: Пт ноя 08, 2019 11:59:00
pcb432
H - значит hex.
Все очень просто.
Область рам (озу) драйвера - каждый бит это один сегмент дисплея.

От 0 до 2FH это 0 до 47 в десятичном значении (можете подсчитать сами).
В команде 3

в первых 6 битах мы определяем какие сегменты
включаем (тоже самое можно и по таблице озу).
Hex написание более компактно чем bin, но bin более понятно 47dec - 2FH - 101111bin (если расписать какому биту
соответствует какой сегмент.
Очищать (записывать значение 0) лучше сразу всю область озу, чтобы не было недоразумений с засветкой
неиспользуемых сегментов.
Как вы конструктивно подключили драйвер.
Рекомендую, по крайней мере для экспериментов, использовать плату от старых двд в комплекте с блоком питания.
Будет дешевле и быстрее.

Re: PT6311B
Добавлено: Вс фев 09, 2020 13:08:15
daaar
Сделал нормальную плату наконец с нормальным преобразователем на кф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);
}
Но не пашет
Re: PT6311B
Добавлено: Пн фев 10, 2020 15:01:47
pcb432
Сам экспериментировал на пик.
У меня заработало (см выше).
Напряжение накала?
Питание анодно сеточное какое?
Подключено как в даташите?
Вот алгоритм программы 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;
}
Мем_clear- очитска внутренней памяти. В принципе на начальном этапе не влияет.
А работу со светодиодами можете пока тоже можно исключить.
А здесь видимо основной цикл
Код: Выделить всё
void loop() {
// put your main code here, to run repeatedly:
delay(100);
}
?
Но там ничего не происходит и ничего не будет выводиться.
Смотрите на прилагаемом алгоритме, какие нужно произвести действия.
В ардуино не знаю, а других компиляторах сначало нужно настраивать сам микроконтроллер.
Когда рыскал по интернету, по моему и для ардуино были примеры программ.
Re: PT6311B
Добавлено: Пн фев 10, 2020 16:06:42
BOB51
[uquote="daaar",url="/forum/viewtopic.php?p=3787862#p3787862"]Сделал нормальную плату наконец с нормальным преобразователем на кф1211еу1, контроллер поставил mega88p
Набросал код, в ардуино иде ...
Но не пашет[/uquote]
Сделайте пересылку не на аппаратном SPI, а программным ногодрыгом для начала.
Тем более, что мега88 в "типовой набор" ардуинки не входит - то или от DIY или MiniCore должны быть установлены.

Re: PT6311B
Добавлено: Пн фев 10, 2020 18:03:49
daaar
Стоит MiniCore. pt6311 подключен как в датащите. Попробю вручную байты передавать тогда
Добавлено after 35 minutes 48 seconds:
Нашел косяк. Всё работает! Ошибка глупейшая была
Re: PT6311B
Добавлено: Вт фев 11, 2020 15:51:14
pcb432
Всё работает!
Раз похвалился, фотку работающего дисплея выкладывай.
Re: PT6311B
Добавлено: Вт фев 11, 2020 18:45:04
daaar
Пожалуйста. Осталось побороть засветку сегментов

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

Re: PT6311B
Добавлено: Ср фев 12, 2020 10:17:47
BOB51
Стабилизируем ток анодов/снижаем напружку на анодах.
Регулировка яркости для подобного дисплея была где-то в схемах модернизации часиков на КР145ИК1901...

Re: PT6311B
Добавлено: Ср фев 12, 2020 11:44:36
pcb432
daaar Дисплей похоже модернизация известного

40 руб, дёшево.
Засветка похоже слишком высокое анодно сеточное напряжение.
Во многих устройствах прекрасно работает на 24 вольтах.
Re: PT6311B
Добавлено: Ср фев 12, 2020 17:40:50
daaar
Засветку исправил. Стабилитрон поставил на 4,7 вольта, до этого стоял какой-то случайный. Всё работает прямо отлично. Думаю взять десяток таких индикаторов
Re: PT6311B
Добавлено: Чт фев 13, 2020 04:55:18
musor
а светодиодыв схеме зачем указаны? че оне индицируют?
Re: PT6311B
Добавлено: Чт фев 13, 2020 10:07:06
daaar
В какой схеме? В коде писал значения в регистр светодиодов чтобы понять, принимает микросхема данные или нет
Re: PT6311B
Добавлено: Пт фев 14, 2020 14:04:59
pcb432
Светодиоды как дополнительная фишка, основной индикатор люминесцентный, а светодиоды индикаторы режимов
работы схемы.
Такое было в видиках, двд.