Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

PT6311B

Вс ноя 03, 2019 20:16:01

Есть драйвер для ВЛИ pt6311lq. Хочу подключить пока к ардуино. В принципе алгоритм написан в датащите, но не совсем понятно. Может кто-то разжевать что к чему? Не понимаю как отчистить рам

Re: PT6311B

Вс ноя 03, 2019 20:25:26

Что конкретно не понятно ?
Там всего 4 команды. Как можно в них запутаться ? :dont_know:

Re: PT6311B

Пн ноя 04, 2019 06:57:01

Спойлер
Код:
#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

И не понятно что за адреса эти и что за H в конце

Вот с этого и начни изучение.

Re: PT6311B

Пн ноя 04, 2019 10:12:00

Я понимаю в чем суть адреса, меня эта Н в конце маленько смущает. Это типо H-hex чтобы не писать 0x?

Re: PT6311B

Пт ноя 08, 2019 11:59:00

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

Re: PT6311B

Вс фев 09, 2020 13:08:15

Сделал нормальную плату наконец с нормальным преобразователем на кф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

Сам экспериментировал на пик.
У меня заработало (см выше).
Напряжение накала?
Питание анодно сеточное какое?
Подключено как в даташите?
Вот алгоритм программы 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

Сделал нормальную плату наконец с нормальным преобразователем на кф1211еу1, контроллер поставил mega88p
Набросал код, в ардуино иде ...
Но не пашет

Сделайте пересылку не на аппаратном SPI, а программным ногодрыгом для начала.
Тем более, что мега88 в "типовой набор" ардуинки не входит - то или от DIY или MiniCore должны быть установлены.
:roll:

Re: PT6311B

Пн фев 10, 2020 18:03:49

Стоит MiniCore. pt6311 подключен как в датащите. Попробю вручную байты передавать тогда

Добавлено after 35 minutes 48 seconds:
Нашел косяк. Всё работает! Ошибка глупейшая была

Re: PT6311B

Вт фев 11, 2020 15:51:14

Всё работает!

Раз похвалился, фотку работающего дисплея выкладывай.

Re: PT6311B

Вт фев 11, 2020 18:45:04

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

Re: PT6311B

Ср фев 12, 2020 10:17:47

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

Re: PT6311B

Ср фев 12, 2020 11:44:36

daaar Дисплей похоже модернизация известного Изображение
40 руб, дёшево.
Засветка похоже слишком высокое анодно сеточное напряжение.
Во многих устройствах прекрасно работает на 24 вольтах.

Re: PT6311B

Ср фев 12, 2020 17:40:50

Засветку исправил. Стабилитрон поставил на 4,7 вольта, до этого стоял какой-то случайный. Всё работает прямо отлично. Думаю взять десяток таких индикаторов

Re: PT6311B

Чт фев 13, 2020 04:55:18

а светодиодыв схеме зачем указаны? че оне индицируют?

Re: PT6311B

Чт фев 13, 2020 10:07:06

В какой схеме? В коде писал значения в регистр светодиодов чтобы понять, принимает микросхема данные или нет

Re: PT6311B

Пт фев 14, 2020 14:04:59

Светодиоды как дополнительная фишка, основной индикатор люминесцентный, а светодиоды индикаторы режимов
работы схемы.
Такое было в видиках, двд.
Ответить