реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
klialex
сообщение Nov 27 2016, 21:26
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 27-11-16
Пользователь №: 94 388



Достался задаром полуразобраный, полусломаный аппарат Hundai H-CMMD4046, вернее дисплей от оного. Схема: Прикрепленный файл  selection.pdf ( 897.42 килобайт ) Кол-во скачиваний: 64

Задался целью подключить сей девайс в качестве домофонного дисплея в связке с камерой (композитный видеосигнал). Подключил все питания, на сам дисп + подсветка. Осталась настройка самого скалера. Происходит по i2c. Подключил анализатор saleae logic (кЕтай) на шину. Дамп: Прикрепленный файл  2_MHz__60_M_Samples.7z ( 225.3 килобайт ) Кол-во скачиваний: 41

Согласно даташита:Прикрепленный файл  DSA00103441.pdf ( 684.21 килобайт ) Кол-во скачиваний: 305
на TW8806 нашел в дампе обращения к основным регистрам. На ардуинке (ничего под рукой больше нет) побыстренькому набросал сначала сканер квадратной шины, подключил к соответствующим пинам дисплея, шина ответила наличием на ней устройства 0x45, что соответствует наблюдениям в логическом анализаторе.(7бит адрес) Затем все найденные пары основные регистры+значения залил в eeprom arduino:Прикрепленный файл  eeprom.7z ( 416 байт ) Кол-во скачиваний: 36
и скетчем
Код
#include <Wire.h>
#include <EEPROM.h>

void setup() {
  Wire.begin(); // join i2c bus (address optional for master)
}

void loop() {
  delay(1000);

  for (int i=0; i<=265; i=i+2){ //266 bytes in eeprom
  Wire.beginTransmission(69); // transmit to device #69 (0x45)
  // device address is specified in datasheet
  Wire.write(EEPROM[i]);            // sends adress (нечетная ячейка памяти)
  Wire.write(EEPROM[i+1]);             // sends  value byte (четная ячейка памяти)
  Wire.endTransmission();     // stop transmitting
  }

while(1);
}
выстрелил в шину. Вроде бы что-то дисплей ответил, картинка поменялась, начала мерцать и все, я в ступоре. Кто работал с таким скалером, что и куда минимально запихать в его регистры, чтобы осуществить мою мечту? Правильно ли отрабатывает ардуинка по сигналам с таким скетчем? Не понравились мне ACK и NACK на шине. Вроде на анализаторе с родной головой - кругом одни nack, но все работает; у меня все ack в конце переданного байта, но херня какаято...

Сообщение отредактировал klialex - Nov 27 2016, 21:29
Go to the top of the page
 
+Quote Post
k155la3
сообщение Nov 29 2016, 07:07
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(klialex @ Nov 28 2016, 00:26) *
. . . .
Не понравились мне ACK и NACK на шине. Вроде на анализаторе с родной головой - кругом одни nack, но все работает; у меня все ack в конце переданного байта, но херня какаято...

1. Проверяйте режимы обращения мастер-слейв, а именно бит R/W.
2. Бит ACK/NACK, в зависимости от R/W, выставляет или мастер или слейв.
Взглядом "со стороны" Вы не определите, кто его выставил.
Кроме того может быть мультимастерный режим (что там еще на шине навешано).
Почитайте спецификацию протокола I2C Philips.
3. В зависимости от того, что представляет из себя слейв, ОНО может предоставлять не просто запись
в регистры, а работать с последовательностью-пакетом команд вполне определенного
для данного девайса формата.




Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th July 2025 - 09:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01339 секунд с 7
ELECTRONIX ©2004-2016