Рейтинг@Mail.ru

Загрузка и конфигурирование микросхемы CH341 с ПЗУ 24C01

автор:
Be the first to comment! Электроника
Print Friendly, PDF & Email
Мы рассматривали работу с микросхемой CH341 с вариантом её конфигурирования с управляющего компьютера. Теперь рассмотрим вариант управления режимом работы CH341 с помощью микросхемы конфигурационной памяти - ПЗУ 24C01.

Нам понадобятся:

  • отладочная плата с микросхемой CH341A (например, вот отличный вариант);
  • микросхема памяти 24C01 (например, такая);
  • если применяется ПЗУ в корпусе типа SOP8 или SOIC8 – панель с нулевым усилением (вот такая);
  • программатор для ПЗУ типа 24C01 (подойдёт, к примеру, недорогой программатор SP200S);
  • компьютер с программой управления программатором.

1Схема подключения CH341 к ПЗУ типа 24C01

Микросхема CH341A поддерживает различные варианты конфигурации. Так, её можно конфигурировать аппаратно, с помощью перемычек, программно, управляя с компьютера, а также с помощью конфигурационной памяти, которая хранит настройки микросхемы. Именно этот способ конфигурирования мы и рассмотрим в статье.

Микросхема CH341A поддерживает конфигурационную память типа 24C01A и другие из того же семейства. Например, я буду использовать память 24C04N фирмы Atmel. ПЗУшки данной серии, в разных типах корпусов, имеют следующие выводы:

Назначение выводов микросхемы ПЗУ 24C01
Назначение выводов микросхемы ПЗУ 24C01

Согласно техническому описанию CH341, подключение конфигурационной памяти осуществляется таким образом:

Схема подключения конфигурационного ПЗУ к CH341
Схема подключения конфигурационного ПЗУ к CH341

Как видно, данное ПЗУ использует интерфейс I2C, для которого требуется всего два провода SCL (линия синхронизации) и SDA (линия данных). VCC микросхемы подключается к 3,3 В питания, а остальные выводы микросхемы – на землю.

2Запись конфигурационных данных в ПЗУ 24C01

Но прежде чем подключать ПЗУ к микросхеме CH341, необходимо записать в него конфигурационные данные. Структура данных приводится в техническом описании (datasheet) для микросхемы CH341:

Структура конфигурационной памяти для CH341
Структура конфигурационной памяти для CH341

Ячейка памяти, расположенная по адресу 0x02, с псевдонимом CFG, расписана отдельно:

Детальное описание ячейки CFG
Детальное описание ячейки CFG

Для того чтобы записать данные в EEPROM (название ПЗУ по-английски), нам понадобится программатор.

Можно воспользоваться другим способом записи ПЗУ, например, использовать в качестве программатора Arduino, благо он также имеет интерфейс I2C. Но это путь более длинный, ибо придётся подробно изучать документацию, циклограмму записи ПЗУ 24C01 и т.д.

Каждый программатор поддерживает свои типы микросхем, поэтому необходимо убедиться, что используемый вами программатор поддерживает именно серию ПЗУ 24C01. Программатор SP200S относится как раз к таким, его и будем использовать.

С помощью панели с нулевым усилением (ZIF-панели) или другим доступным способом подключаем ПЗУ к программатору:

Подключение ПЗУ 24C04 к программатору SP200S
Подключение ПЗУ 24C04 к программатору SP200S

Для данного программатора имеется софт, который позволяет редактировать данные, которые мы собираемся записать в ПЗУ. Называется Willar Programmer или WLPro. Запустим его и отредактируем конфигурационные данные. Зададим, к примеру, вот такой массив:

Содержимое конфигурационной памяти 24C04
Содержимое конфигурационной памяти 24C04

Теперь запишем в ПЗУ эти конфигурационные данные. Для того чтобы понять, что здесь что, смотрим на рисунок выше, где приведена структура ячеек конфигурационной памяти. Как видите, мы заняли все 0x7F ячеек памяти, которые используются для конфигурирования микросхемы CH341.

Обратите внимание, что в логически объединённые группы ячеек (где данных больше 1-го байта), данные записываются как бы «задом наперёд». Например, идентификатор устройства PID, равный в данном случае 0x5501, записывается так: в ячейку 0x06 – 0x01, а в ячейку 0x07 – 0x55.

Кстати, об идентификаторах. Стандартные идентификаторы PID для микросхемы CH341, присущие разным режимы её работы, такие:

Стандартные PID для микросхемы CH341
Стандартные PID для микросхемы CH341

Если вы планируете использовать микросхему CH341 в роли порта принтера, то вам понадобится описание стандарта IEEE-1284 для того, чтобы корректно заполнить ячейки DID (0x07…0x20) конфигурационной памяти.

3Загрузка микросхемы CH341 из конфигурационной памяти

Теперь подключаем ПЗУ с записанными конфигурационными данными, к отладочной плате с микросхемой CH341, согласно приведённой выше схеме. Питание, естественно, пока должно быть отключено. (Не обращайте внимания, у меня на монтажке была собрана другая схема, ПЗУ находится на ближней стороне, и только оно относится к нашей теме).

Конфигурационное ПЗУ подключено к отладочной плате с микросхемой CH341
Конфигурационное ПЗУ подключено к отладочной плате с микросхемой CH341

При подаче питания микросхема CH341 проверяет, не подключено ли к ней ПЗУ. Если ПЗУ подключено, то микросхема пытается прочитать конфигурационные данные и установить режим работы в соответствии с данными в ПЗУ. В зависимости от режима работы, микросхема CH341 определится в диспетчере устройств операционной системы либо как порт принтера, либо как COM-порт, либо как-то ещё. Например, в моём случае, в первый раз как преобразователь в параллельный интерфейс USB-EPP, а второй раз как стандартный порт принтера:

Кстати, в режиме принтера используются именно те конфигурационные данные с рисунка выше. Как видно, вендор 0x1A86 (ячейки 0x04 и 0x05 конфигурационного массива), идентификатор устройства 0x5501 (ячейки 0x06 и 0x07), ревизия 0x1234 (ячейки 0x08 и 0x09).

Скачать техническое описание CH341, EEPROM 24C01 и софт для программатора SP200S

Напоследок, несколько файлов для скачивания:

Last modified onВторник, 01 Январь 2019 15:29 Read 1391 times
Ключевые слова: :

Поделиться

Print Friendly, PDF & Email

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.