Показать сообщение отдельно
Старый 23.03.2014, 14:06   #1
Alex_St
Старший Пользователь
 
Аватар для Alex_St
 
Регистрация: 09.04.2008
Возраст: 44
Город: Одесса
Регион: Украина
Машина: Chevrolet Aveo-II LS 2008
Сообщений: 896
Alex_St is a name known to allAlex_St is a name known to allAlex_St is a name known to allAlex_St is a name known to allAlex_St is a name known to allAlex_St is a name known to all
По умолчанию Программатор контроллеров RTD2660 на базе FT2232H

Предыстория:
Как-то приобрел я себе IPS монитор китайский на базе контроллера RTD2660. Всем хорош, но оказалось, что на нем невозможно отключить синий экран при отсутствии сигнала. Оказалось, что убрать его можно только путем смены прошивки в нем.
В контроллере используется микросхема Flash памяти 25X40. Можно ее выпаивать (или просто к ней подпаяться), и программировать отдельно. А можно программировать через один из трех каналов DDC, которые есть на каждом входе VGA, DVI, HDMI.
Т.к. сразу стало ясно, что одной прошивкой дело не обойдется, то было решено, что выпаивать микросхему - не наш метод. Начал искать программатор для программирования через VGA разъем. Таких оказалось три варианта:
1. Детище человека с ником Postal2, которое имеет созвучное название: Postal2. Работает через LPT порт, и только под 32бит системой. Поэтому на новых компьютерах, увы не работает. А прога очень хорошая и мощная.
2. Китайский LPT программатор. Стоит около 35$, но опять же - только LPT, и только 32бит.
3. Китайский USB программатор. Стоит уже около 80$ (при стоимости контроллера около 40$), поэтому тоже отпал.

Так и не найдя готового решения - возникла мысль - а не сделать ли такое устройство самому на базе чего-то относительно стандартного? Ведь документация на чип есть, и относительно понятно что делать.
К сожалению, разобраться в документации без опыта работы с такими девайсами, оказалось весьма непросто.
К счастью, уважаемый Postal2 любезно поделился своими исходниками для работы с RTD2660, и процесс пошел.

Представляю Вашему вниманию первый результат данной работы.

Программа умеет:
1. Считывать прошивку из флеша. Результат контролируется по контрольной сумме, расчитанной самим чипом.
2. Записывать прошивку в флеш. Результат контролируется так же.
3. Сравнивать контрольную сумму данных в флеше с контрольной суммой данных в файле.
4. Читать данные EDID из контроллера для входа, к которому мы подключены.
5. Посылать в контроллер тестовые команды (только для тех, кто знает что делает).
Все это происходит через разъем VGA контроллера монитора без выпаивания микросхемы памяти.

Программа может использовать любой преобразователь от фирмы FTDI, которые поддерживает режим MPSSE (Multi-Protocol Synchronous Serial Engine). Например, FT232H, FT2232H, FT4232H.
Схема подключения к преобразователю на примере FT2232H:
Вложение 49261

Я для своих целей использую такую платку. В ней подключение происходит к разъему SPI1. Назначение ног на этом разъеме такое:
1 DI (ADBUS1)
2 Vcc (connected to on board 3.3V)
3 SCK (ADBUS0)
4 DO (ADBUS2)
5 CS (ADBUS3)
6 GND
Линии данных на этом разъеме буферированы, и резисторы подтяжки уже присутствуют. Поэтому паять резисторы не нужно. Достаточно только одного диода шоттки и пары разъемов для подключения к плате и к контроллеру монитора.

Вид окна программатора:
Нажмите на изображение для увеличения
Название: Основной экран-1.png
Просмотров: 3624
Размер:	35.8 Кб
ID:	35556

Назначение кнопок:
Open - открыть порт FT2232H
Close - закрыть порт FT2232H
EnterISP - перевести чип RTD2660 в режим внутрисхемного программирования.
Reset - Выйти из режима внутрисхемного программирования. При этом произойдет сброс контроллера RTD2660.
Find Devices - поиск устройств на шине. Программа сканирует шину и выводит список ID устройств, которые отозвались.
Варианты ID:
37 (6E) - устройство DDC-CI для управления монитором
4A (94) - устройство для внутрисхемного программирования RTD2660
50 (A0) - устройство, предоставляющее EDID информацию в компьютер
Chip size - размер Flash памяти чипа 2660 в байтах.
Read chip - Прочитать содержимое Flash памяти RTD2660. При нажатии на кнопку надо указать куда сохранить результат. По окончании чтения программатор сравнит CRC данных в файле с CRC данных в Flash-памяти RTD2660.
Write chip - записать прошивку в Flash память контроллера. По окончании записи программатор сравнит CRC данных в файле с CRC данных в Flash-памяти RTD2660.
Verify chip - Проверить CRC данных в указанном файле с CRC данных в Flash-памяти RTD2660.
ReadEE - Прочитать данные EDID для текущего входа из RTD2660. Данные читаются точно так же, как и из обычной микросхемы 24C16. Поэтому программа пытается вычитать все 8 секций этой микросхемы. Как правило - для мониторов удается вычитать только одну - две.
ReadProt, WriteProt - соответственно чтение и запись команды DDC-CI по адресу 0x37. В окошке справа вводится код команды в виде: "51 84 03 12 00 4B E1" (установить контрастность 75%). Команды можно посмотреть, скажем, в программе SoftMCCS. Для записи последний байт - CRC. Не рекомендую нажимать на эти кнопки просто так, можно чего-то испортить )).
Read94,Write94 - соответственно чтение и запись команды ISP контроллера RTD2660. Команды так же вводятся в окошко справа в виде шестнадцатиричных последовательностей. Слева есть окошко с количеством байт для чтения и чекбокс Step. Галочка в этом чекбоксе говорит, что контроллер будет автоинкрементировать адрес при чтении. Все команды описаны в документации к RTD2660. Не рекомендую нажимать на эти кнопки просто так.. Можно чего-то испортить )).

В большом текстовом поле выводится детальный лог происходящих операций.

Для работы с контроллером необходимо:
1. Выбрать нужное устройство FT2232H в выпадающем списке. У меня оно зовется "Dual RS232-HS A".
2. Нажать кнопку "Open" чтобы открыть порт.
3. Нажать на кнопку "Enter ISP" чтобы войти в режим программирования.
4. Далее можно в произвольном порядке читать, писать и проверять содержимое Flash памяти контроллера.

Сама программа - в аттаче. Для запуска и работы необходимы фреймворк .Net 4.0 и установленные драйверы чипа и D2XX (можно скачать на сайте FTDI).

Update 2017-09-12:
Так же с данной микросхемой успешно работает программа Rova Tools:
Цитата:
Сообщение от xaxexa Посмотреть сообщение
прошить удалось программой ROVATool, там все просто, запускаем от Администратора, жмем сетингс выбираем generic FTDI, далее ставим точку на против 2660, далее опен банк 0, подкидываем прошивку, жмем "программ таргет".
Так же с программой RovaTools успешно протестирован дешевый программатор:
Цитата:
Сообщение от xaxexa Посмотреть сообщение
вот он NEW-CJMCU-FT232H-Multifunction-High-Speed-USB-to-JTAG-UART-FIFO-SPI-I2C-Module

стоит он примерно 500 рублей, там FT232H

но с оговорками:
AD0 на SCK
AD1 и AD2 замыкаем и на SDA

моя платка PCB800099 (незабываем что на разъеме перепутаны SDA и SCK
обе линии подтянул резисторами 20kohm к 3.3v
диод не ставил,
и землю соединил с массой программатора,
питание 2660 от блока питания было
Миниатюры
Нажмите на изображение для увеличения
Название: i2c adapter.GIF
Просмотров: 2819
Размер:	6.0 Кб
ID:	37329  
Вложения
Тип файла: zip RTD2660Programmer.zip (592.1 Кб, 2338 просмотров)
__________________
Мой журнал: http://www.pccar.ru/showthread.php?p=79335

Последний раз редактировалось basurman; 06.03.2018 в 13:28.
Alex_St вне форума   Ответить с цитированием