PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Программаторы (http://pccar.ru/forumdisplay.php?f=151)
-   -   Программатор контроллеров RTD2660 на базе FT2232H (http://pccar.ru/showthread.php?t=20565)

Alex_St 23.03.2014 14:06

Программатор контроллеров RTD2660 на базе FT2232H
 
Вложений: 3
Предыстория:
Как-то приобрел я себе 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
Линии данных на этом разъеме буферированы, и резисторы подтяжки уже присутствуют. Поэтому паять резисторы не нужно. Достаточно только одного диода шоттки и пары разъемов для подключения к плате и к контроллеру монитора.

Вид окна программатора:
Вложение 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 (Сообщение 392122)
прошить удалось программой ROVATool, там все просто, запускаем от Администратора, жмем сетингс выбираем generic FTDI, далее ставим точку на против 2660, далее опен банк 0, подкидываем прошивку, жмем "программ таргет".

Так же с программой RovaTools успешно протестирован дешевый программатор:
Цитата:

Сообщение от xaxexa (Сообщение 392122)
вот он 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 от блока питания было


YAM1966 23.03.2014 15:23

Вот спасибо!
Имею программатор AVREAL и давно приобретенную платку LCD контроллера.
Теперь будет чем заняться....

Alex_St 23.03.2014 15:30

Ну вот, я неделю без компутера в машине сидел, пока отлаживал, а оказывается, совсем рядом все это время лежала совершенно свободная плата )))
А что за программатор AVREAL?
Программу для AVR знаю, сам пользуюсь. А программатор? Имеется в виду что-то типа того, что я по ссылке дал?

YAM1966 23.03.2014 15:37

Вложений: 1
Цитата:

Сообщение от Alex_St (Сообщение 291650)
....А что за программатор AVREAL?
Программу для AVR знаю, сам пользуюсь. А программатор? Имеется в виду что-то типа того, что я по ссылке дал?

Ну, может я не корректно выразился :yes4:
Я имею в виду схему на FT2232 для программирования AVR-ок через программу AVREAL собранную мною давным давно.
Вложение 35382

Alex_St 24.03.2014 00:49

Обновил версию проги в шапке.
Изменения:
+ Теперь не надо нажимать кнопки "Open" и "EnterISP" перед операциями записи/чтения чипа. Прога сама откроет порт, если он не открыт, и войдет в ISP, если еще не вошла.
+ Добавлен автоматический сброс контроллера после успешной заливки или считывания прошивки.
- Верификация вызывается только в случае успешного чтения или записи прошивки.

Skiw 26.03.2014 13:07

Подскажите, можно ли использовать такую платку?
http://dangerousprototypes.com/docs/...2-breakout.jpg

Цена на ebay менее $30

Alex_St 26.03.2014 13:12

Можно, но гораздо выгоднее доплатить еще 6$, и за 33$ взять ту платку, что я привел в первом посту.
Там уже есть и буфер, который может уберечь ее от внешних факторов, и распаянные RS232/TTL последовательные порты, и отдельные разъемы для SPI/i2c, и отдельный разъем JTAG...
Я ей и меги прошиваю, и сюда приспособил...
Очень получилась универсальная плата.

Skiw 26.03.2014 13:26

Наверное Вы правы.
Даже, можно сказать, убедили :). Спасибо.
А нет ли, случаем, документации на нее?

filinmd 26.03.2014 13:42

а ftdi 232 на Arduino nano не прокатит?
Для чего нужна MPSSE ?

Alex_St 26.03.2014 13:57

Доки есть тут.
Девайс зовется "TIAO USB Multi Protocol Adapter"


Часовой пояс GMT +4, время: 00:51.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot