Помогите раскурить SPI (не спайс)

mobistrike
mobistrike аватар
Offline
Зарегистрирован: 19.08.2016

Досталась  мне нахаляву дохлая автомагнитола . Плевать на нее. Дисплей у нее интересный. На чипе pt6523.

Работает по протоколу похожему на SPI. Вот даташит на pt6523 https://www.elatec-elco.com/fileadmin/user_upload/electronic-components/Datasheets/Accesories/LCD_Driver_50/PT6523.pdf

Если я правильно понял работает так :

1. Подаем на CS нолик

2.Передаем 41H (инициализация чипа)

3. Подаем на CS единичку

4.Передаем 156 бит данных,где каждый бит это один сегмент дисплея. Причем биты передаются "задом наперед"

5.Передаем 4 служебных бита

Завести дисплей удалось а в от с передачей данных не выходит. Знаний маловато. Не получается сделать правильный "комплект"  из 19 перевернутых битов. 

Обращаюсь за помощью к коллективному разуму.

Набросал тестовый скетч

#include <SPI.h> // подключаем библиотеку SPI
const int chipSelectPin = 10; //pin для CS
int test = 255;

void setup() {

  pinMode(chipSelectPin, OUTPUT);
  SPI.begin();
}

void loop() 
{
 
      digitalWrite(chipSelectPin, LOW);  // вкл CS
     SPI.transfer(0x82);                  //выбираем наш чип (первые 8 бит, 41H согласно даташиту)   
      digitalWrite(chipSelectPin, HIGH); // выкл CS

  //*************************19 байт данных   
       for (int k=0; k<255; k++)
       {
             SPI.transfer(test);
         delay(10);
               }
                
 //**********************     

//*************4 служебных бита    
        SPI.transfer(0);
        SPI.transfer(0);
        SPI.transfer(0);
        SPI.transfer(0);
//*************************************
digitalWrite(chipSelectPin, LOW);  // вкл CS
delay(1000);
test--;
}

А вот фото этого чуда

На фото включены все сегменты - в данных 156 единичек

Обратная сторона луны

mobistrike
mobistrike аватар
Offline
Зарегистрирован: 19.08.2016

Дисплей еще интересен тем что в корпусе установлен энкодер и много кнопок.

Подсветка тускловата из за того что подал 5   вместо 8  вольт. 

mobistrike
mobistrike аватар
Offline
Зарегистрирован: 19.08.2016

 

Раскурил сам .

Вот тестовый скетч. Последовательно включает все ячейки дисплея.

Не претендует на "прямизну" но работает. 

Вопрос решен.


#include <SPI.h> // подключаем библиотеку SPI
const int chipSelectPin = 10; //pin для CS
byte test = 1;
byte M1[8]={128,64,32,16,8,4,2,1};



void setup() {
  pinMode(chipSelectPin, OUTPUT);
  SPI.begin();
            }

void loop() {
   if (test==1){ //****************** 1 проход из 20
           for (int  s=0;s<8;s++){
              digitalWrite(chipSelectPin, LOW);  // вкл CS
              SPI.transfer(0x82);                  //выбираем наш чип (первые 8 бит, 41H согласно даташиту)   
              digitalWrite(chipSelectPin, HIGH); // выкл CS
              SPI.transfer(M1[s]);
    
              for (int k=1;k<20;k++){
              SPI.transfer(0);
              delay (10);
             } 
           }
         }
//**************************** 1 проход из 20

     if (test>1){ //****************** проходы 2 - 20
     
      for (int s=0;s<8;s++){
          digitalWrite(chipSelectPin, LOW);  // вкл CS
          SPI.transfer(0x82);                  //выбираем наш чип (первые 8 бит, 41H согласно даташиту)   
          digitalWrite(chipSelectPin, HIGH); // выкл CS

              for (int w=1;w<test;w++){
              SPI.transfer(0);
               delay (10);
                    }
   SPI.transfer(M1[s]);
            for (int w=1;w<20-test;w++){
             SPI.transfer(0);
             delay (10);
            }
          }
        }
//****************** проходы 2 - 20


test++;
if (test==20){test=1;}

}

Вот видео  https://youtu.be/f0tlwG2pI_E

 

ronixx
ronixx аватар
Offline
Зарегистрирован: 20.12.2018

Привет. покажи фото или скажи пожалуйста какие пины использовал с ардуино

bwn
Offline
Зарегистрирован: 25.08.2014

ronixx пишет:

Привет. покажи фото или скажи пожалуйста какие пины использовал с ардуино

Хм, а какие еще пины можно использовать на хардварном SPI? )))))

ronixx
ronixx аватар
Offline
Зарегистрирован: 20.12.2018

Короче вчера подключил все таки дисплей от магнитолы к ардуино нано. Драйвер СТ6523. Надпись хелло ворлд бегала, су..а радости не было предела , я этот дисплей с того года , летом привез из другого города от друзей. Но потом падает паяльник и задевает провод данных от микроконтроллера и вырывает ножку данных под корень. Су..а я чуть не заплакал)) ночь мучений и 15 мин удовлетворения. Очень обидно

mobistrike
mobistrike аватар
Offline
Зарегистрирован: 19.08.2016

ronixx пишет:
Короче вчера подключил все таки дисплей от магнитолы к ардуино нано. Драйвер СТ6523. Надпись хелло ворлд бегала, су..а радости не было предела , я этот дисплей с того года , летом привез из другого города от друзей. Но потом падает паяльник и задевает провод данных от микроконтроллера и вырывает ножку данных под корень. Су..а я чуть не заплакал)) ночь мучений и 15 мин удовлетворения. Очень обидно

А че , нормальный такой секас ))

Я тож со своим мучался , но примения ему так и не нашел . Так и валяется ..