Подключение мини программатора CH341A к программе Postal2 (без LPT порта)

к оглавлению


Мини программатор на CH341A китайского производства.

программатор CH341A
Рис 1. Назначение выводов соединителей 25XX и 24XX, pin - номер вывода микросхемы CH341A.

При разомкнутой перемычке PAR \ COM устройство будет функционировать как виртуальный com port.
При замкнутой перемычке работает в паралленом режиме, который наиболее интересен для эксперименторв.

Схема представлена на рис. 2.

схема программатора CH341A
Рис. 2. Схема мини программатора CH341A в формате pdf.
Номиналы резисторов заимствованы из реального устройства, конденсаторов из спецификации
CH341A-ETC.pdf, драйвер для windows.





Немного теории


Перенаправить потоки ввода - вывода данных программы Postal2 возможно, благодаря тому, что автор и создатель воспользовался хорошо документированной, с исходным кодом, библиотекой LptDrv.dll. Заменяя функции на собственные, можно подключить устройства, отличные от LPT (автор упоминал о такой возможности). Из всех возможных плат расширения - согласования выбран VCT - как наиболее универсальный. К тому же ,в отличии от платы на микросхеме 74HC05, при обмене не используется регистр CR LPT (а значит и функция записи в регистр), что позволяет уменьшить задержки при обмене данными. Для VCT используются только функции вывода данных и чтения статуса.

Из приведенных данных (см. рис. 1) видно, что на соединитель 25XX подключены четыре вывода микросхемы CH341A, а на 24XX два.
Этим и воспользуемся для экспериментов.
Четыре и еще два вывода данных позволят не очень многое, но какую - то пользу все же можно извлечь.
Некоторые из способов использования:





Реализация вариантов 1-3.


К сожалению следует отметить то, что все операции программой Postal2 выполняются в байт вывод - ввод режиме. В приложении к USB устройствам это означает, "длительные" задержки чтения, и связаны они с латентностью драйверов шины USB (usb устройство само не может инициировать обмен - только ведущий, после специального запроса прочтет данные). Для XP документируетя 0,016 секунд и более, для поздних систем задержки снижены. Для WIN10 desktop измеренная задержка составила 0,002 секунды. А вот планшет на WIN10 - удивил: задержки не наблюдаются, и все работает на скорости в несколько раз быстрее! Вероятнее всего - на планшете встроенный в процессор порт, потому и работает по-другому. Отсюда вывод - прочитать или записать микросхемы с большим объемом данных (spi data flash например) можно, но будет очень долго. Так же использовать "время зависимые" девайсы, например IRBOX, не получится - данные с большой вероятностью будут недостоверны.
Микросхемы с малым объемом памяти можно считывать или записать относительно комфортно. Проверки проводились с микросхемами 24Сxx, Weltrend, 25Сxx. Последние опознавались, идентификаторы читались.





Общие способы применения при всех вариантах подключения


Драйвера CH341A должны быть установлены в системе. Если виртуальный сом порт не нужен устанавливаем только CH341PAR.EXE, иначе еще и CH341SER.EXE.
Лучше всего скопировать файл Postal2.exe в отдельную папку, в нее же одну из LptDrv_Postal2-VCT-CH341A-xxx.dll, переименовать в LptDrv.dll. В строке заголовка программы отобразится подсказка о подключении CH341A и текущей LptDrv библиотеке. Посмотреть текущую версию можно так же в свойствах файла. При первом запуске настроить программу и сохранить конфигурационный файл. При старте программы, если устройство доступно в системе, подключится сразу. Если же вы подключили его позже, нажмите Extra Control -> Reset.
В настройках все как обычно (должен быть выбран VCT), за исключением следующих значений на вкладке LPT settings:

установки программы Postal2
Рис. 3. Установки программы Postal2 (указаны значения для максимальной скорости).





Вариант 1: использовать 25XX соединитель "как есть"

Можно только сказать, что оно работает. Проверялось на spi data flash, при чтении идентификатора. С большой долей вероятностью все остальные SPI микросхемы будут функционировать.

Файл LptDrv.dll для этого варианта LptDrv_Postal2-VCT-CH341A-25XX-SPI.dll.

Вывод

  1. Подключение по варианту 1 работает.
  2. Проверено на микросхемах 25xx spi data flash.
  3. Минус - крайне медленно. Не рекомендуется для использования при большом объеме данных.





Вариант 2: использование 25XX соединителя для двух-битного доступа к шине I2C

Схема подключения для варианта 2 (схему можно упростить до транзисторного варианта - светодиоды, и связанные элементы исключить).

схема платы на микросхеме 74HC05
Рис. 4. Использование 25XX соединителя для доступа к I2C шине (в формате pdf).

Файл LptDrv.dll для этого варианта LptDrv_Postal2-VCT-CH341A-25XX-74HC05.dll.

Вывод

  1. Подключение по варианту 2 работоспособно, в том числе и на шинах I2C.
  2. Проверено на микросхемах EEPROM 24Cxx и процессорах Weltrend.
  3. Следует упомянуть, что этот вариант наиболее безопасен, так как соединяет устройства опосредованно.
  4. Кроме того при чтении программу нет необходимости "обманывать" - читаются и пишутся реальные данные на шине.
  5. Минус - требуется отдельная плата согласования.





Вариант 3: использование соединителя 24XX (выв. SCL и SDA микросхемы CH341A)

Данный способ не требует плат согласования.

Так как программатор запитывается 3,3В стабилизированным напряжением (см. рис. 2) при подключении к шине возникнут токи утечки через внутренние диоды микросхемы CH341A на источник питания. Целесообразно немного доработать мини программатор CH341A для устранения повреждений и при возможном неправильном подключении. Например так, как на рис. 5.

доработка программатора CH341A
Рис. 5. Доработка программатора CH341A для защиты от избыточних токов через выводы SCL, SDA.

При подключении к main board LCD Samsung c процессором Weltrend, через VGA разъем, измерения дают следующие данные на любом из выводов SCL, SDA относительно GND (не забываем, что I2C шина VGA соединителя запитывается ):

Файл LptDrv.dll для этого варианта LptDrv_Postal2-VCT-CH341A-24XX-I2C.dll.

Вывод

  1. Подключение по варианту 3 вполне работоспособно, в том числе и на шинах I2C, даже без доработки, при правильном включении - токи не превосходят установленного спецификацией на микросхему CH341A лимита 4ma втекающего и вытекающего тока на один вывод.
  2. Проверено на микросхемах EEPROM 24Cxx и процессорах Weltrend.
  3. Следует помнить - при чтении программе выдаются подставляемые данные на выв. SCL. В некоторых случаях, согласно спецификации I2C, ведомый может тормозить быстрого ведущего, в этом случае неизбежно возникнут ошибки. Попытаться решить эту проблему можно понижая скорость, добиваясь нормальной работоспособности программы.
  4. Данный вариант наиболее оптимальный, не требует затрат.