Разбираем dx7

Aleksey_Gorelikov

У тебя снифилка глючит!!! Бакап еррор есть, с ошибкой в первых паре битов. Я ж тебе говорил в двоичном формате разрисовать на личте в клетку!!! Я тебе разрисовал, акк у фотика зарядится - сфоткаю выложу.

Добавлю. Поздравляю!!! Инициализация у тебя (почти правильная) есть, вывод байта на дисплей - есть! УРА! Дисплей можно юзать!

Kappitoshka:

7E 12 12 12 6C 00
7C 22 22 22 7C 00
7C 02 02 02 44 00
7E 10 28 44 02 00
7E 00 00 00 7E 00
7E 12 12 12 0C 00
00 00 00 00 00 00
7E 12 12 12 02 00
7E 12 32 52 0C 00
7E 12 32 52 0C 00
7C 02 02 02 7C 00
7E 12 32 52 0C 00

Их можно на прямую отождествить с “backup error” ?

Короче вот: Размалевал наспех, единицы розовым маркером обвел, что неправильно и не хватает - зелененьким.
Похоже нехватает нижней строчки у букв, но это вполне возможно шрифт не 8, а 9 бит высотой. Или графический режим ж…, если как у Фокуса из буффера выводится - возможно просто строки дисплея со строкой вывода не совпали и след. строкой куски от букв дорисовываются (в логе что-то мелькает еще) Или связано со следующим: Первый бит, а метсами и второй - неправильные. Ты по какому фронту клока данные защелкивал??? Короче - посчитай квадратики у букв при ближайшем рассмотрении на дисплее и поколдуй со снифилкой. Может до инвертора клок имеет смысл подсоединять? Или же наоборот, данные после него… Или и то и другое?.. Лог у тебя я не совсем понял, если честно… Но думать уже не могу… Бошка не соображает. Пойду спать.

Можешь зайти в сервисный режим и заснифить менюху от него. Там много чего на дисплее есть, посидев подумав - можно будет вычислить в чем твоя снифилка ошибается. Ну это если ты ее так не раскопаешь.
В сервисное меню вход - счелкать правый верхний тумблер туда-сюда попеременно с правыми кнопками вверх-вниз. Т.е. тумблер в низ, кнопка вниз, тумблер вверх - кнопка вверх. И так раз 5 повторить. Что вверх, что в низ - могу и перепутать, но комбинаций не много - найдешь.

З.З.Ы. Вот и продолжения букв:

524,36ms
SDO: 00 00 80 00 00 80 80 80
SDI: FF FF FF FF FF FF FF FF

524,51ms
SDO: 00 00 80 00 00 00 00 00
SDI: FF FF FF FF FF FF FF FF

524,66ms
SDO: 00 00 00 00 00 00 80 80
SDI: FF FF FF FF FF FF FF FF

524,81ms
SDO: 80 80 80 00 80 00 00 00
SDI: FF FF FF FF FF FF FF FF

524,96ms
SDO: 80 00 80 00 00 00 80 00
SDI: FF FF FF FF FF FF FF FF

525,11ms
SDO: 00 80 80 80 00 00 80 00
SDI: FF FF FF FF FF FF FF FF

Только продолжение не в ту сторону!!! Должно быть по идее не 80, а 01 !!! Т.е. у тебя сдвиг в снифилке не в ту сторону сдвигает! Надо направление сдвига поменять, должно сростись! Дисплей походу с “отражением” работает,… В двоичке буквы зеркальные получатся, но на оригинал похожи будут.

Aleksey_Gorelikov

З.Ы. еще раз… Со сдвигом в другую сторону тоже как-то вроде бы не сростается… Попробуй выпаять кварц из ДХ7 и поставить раза в 2-3 меньше. Проц завестись вроде бы должен, может тогда снифер глючить не будет…

Kappitoshka

Я тоже по ночам ковыряюсь (дорываюсь до железок) 😵

С буквами и клеточками понял, спасибо.

Очень похоже, что гдето снифирилка врет. Хотя, я захватывал по повышению фронта, а может нужно было по понижению (сегодня гляну повнимательней).
Тогда может и в инициализацию закралась неточность - вот ведь, а я лопачу интернет в поисках подходящего контролера.

Зайти в сервисный режим - хорошая идея.

А вообще spi с какой выборкой оптимальней захватывать?
Или найти частоту clk умножить ее скажем на 3-4 (чтобы уж точно попасть) и так и захватывать?

Aleksey_Gorelikov
Kappitoshka:

А вообще spi с какой выборкой оптимальней захватывать?
Или найти частоту clk умножить ее скажем на 3-4 (чтобы уж точно попасть) и так и захватывать?

СПИ - синхронный протокол. Для этого синхронизация и передается. Засчелкивать данные нужно по фронту или спаду синхроницазии. Вобще возможны 4 варианта. Подробнее www.gaw.ru/html.cgi/txt/interface/spi/index.htm

Kappitoshka

Все оказалось достаточно просто: spi декодер захватывал в самом начале лишний фронт 😃.

Обновленный лог я прикладываю.

Разлинеивание в клеточку говорит, что “backup error” записыватся за два захода (первый на половину проверил - все правильно).

Сравнение строки инициализации с контролером SED1565:

E2 = 11100010 Internal reset
2F = 00101111 Power control set (сколькото)
26 = 00100110 Internal resistor ratio (сколькото)
A9 = 10101001
62 = 01100010 Set start line address 100010=0x22
A3 = 10100011 Sets the LCD drive voltage bias ratio
C8 = 11001000 Select COM output scan direction (reverse direction)
A1 = 10100001 ADC select. Sets the display RAM address SEG output correspondence (reverse)
D3 = 11010011
09 = 00001001
AF = 10101111 ON
81 = 10000001 Set the V5 output voltage electronic volume register
0E = 1110 register
B6 = 10110110 Sets the display RAM page address 0110=0x6
10 = 00010000 Column address set upper bit 0000=0x0

ИТОГО: я склоняюсь к тому, что в DX7 стоит lcd с контролером SED1565 (или родственным)

lcd-dx7.zip

Kappitoshka

0xA9 - это скорее всего расширеная команда, тогда 0x62 значение
0xD3 и 0x09 - аналогично

частота clk - приблизительно 430КГц.

Aleksey_Gorelikov

Поздравлямс! Собсвтенно - какой контроллер - тебе особо не важно, если для переделки для “соседней” ветки. Посмотри только как контрастностью управлять еще. С бакапэррором контрастность рулится (возможно в системном меню… А может и так). Все что тебе надо - инициализация и вывод символа - уже есть… Ну и контрастность выставить.

Kappitoshka

Схема отдельной платки питания (там, где выключатель).

Судя по прозвонке и подключению: транзисторы полевые.
Подписи к разъему мои.

Там, к стати, бузер какой?