Как пользоваться программатором – Как пользоваться программатором CH341A

Содержание

Ch441A Pro как пользоваться и поддерживаемые микросхемы

Программатор микросхем BIOS 24 и 25 серии Ch441A Pro

Программатор Ch441A Pro используется для программирования микросхем BIOS компьютеров, ноутбуков, видеокарт, мультимедийных плееров, памяти телевизоров, ЖК-дисплеев, маршрутизаторов, игровых приставок, спутниковых ресиверов и др.

 

 

Как пользоваться программатором Ch441A Pro:

Для начала использования программатора необходимо установить драйвер и программное обеспечение:

Скачайте ПО (Ch441A Programmer версии 1.3) и драйвер по ссылке

Системные требования ПО:
OC: Win98, WinME, WIN2K, WinXP, Vista, Win7, Win8, Win10 (32-64 bit)

Распакуйте скачанный архив и запустите программу Ch441A_130.exe

Подключите программатор к компьютеру (должен загореться светодиод POWER).

Драйвер к программатору может установится автоматически. Если Windows не удалось установить драйвер, найдите в скаченном архиве папку

Ch441Parallel_driver_support WIN7 и установите драйвер из нее.

После того как программа и драйвер будут установлены можно приступить к программированию.

Чтобы запрограммировать необходимую микросхему на ZIF панели устройства, нужно открыть пазы для её установки, подняв фиксаторную ручку. Установить микросхему согласно ключу нарисованному на программаторе. Зажать фиксаторной ручкой микросхему в пазах. Cм. рисунок 1.1 (правильная установка микросхемы BIOS 25 серии)

Рис. 1.1 (правильная установка микросхемы BIOS 25 серии)

Если нужно прошить микросхемы 25-й серии, в корпусе SOP8 или SOP16, на плате программатора предусмотрены контактные площадки для микросхем в таких корпусах. Можно припаять микросхему к

контактной площадке (см рисунок 1.2.) или просто прижать прищепкой к контактам. Так же можно воспользоваться дополнительной платой (идет в комплекте с программатором) и устанавливать/припаять микросхему на нее (см. рисунок. 1.3.)

Рис. 1.2.

Рис. 1.3

Запрограммировать микросхему 25-й серии, в корпусе SOP8 можно прямо на материнской плате без выпаивания. Для этого можно воспользоваться прищепкой-переходником (в комплекте не идет. приобретается отдельно) (см. рисунок 1.4.) Красный провод на шлейфе прищепки — контакт который должен соответствовать первой ножке микросхемы (на самой микросхеме обычно обозначена точкой). При таком способе прошивки, плату нужно обязательно обесточить и вынуть батарейку BIOS.

Рис. 1.4

В программаторе есть возможность внутрисхемного программирования с помощью ISP интерфейса (этот метод программирования описываться здесь не будет, информацию можно найти на форумах в интернете)

Перемычку для переключения режимов программирования не трогаем! Даже когда программируем без выпаивания через прищепку. Она должна соединять 1 и 2 контакты. Убираем перемычку только в случае если используем ISP интерфейс.

Итак приступаем непосредственно к программированию:

ПОСЛЕ!!! установки/подключения микросхемы — подключите программатор к USB порту (возможно при подключении потребуется подождать пока Windows установит драйвер на устройство) и запустите программу Ch441A Programmer. Интерфейс программы можно переключить на русский язык.

Если микросхема подключена правильно — все кнопки в программе будут активны.

Далее нужно будет выбрать название микросхемы, для чего можно нажать кнопку «ДЕТЕКТ» (программа сама предложит наиболее подходящие микросхемы) или выполнить поиск вручную через кнопку «ПОИСК».

Когда название микросхемы будет выбрано в программе, можно производить все необходимые действия с вашей микросхемой — считать, сохранить дамп, очистить, записать и т. д.

Интерфейс программы интуитивно понятен и прост:

 

Поддерживаемые программатором Ch441A Pro микросхемы 25 серии

AMIC
A25L512 A25L05P A25L10P A25L010 A25L020 A25L20P A25L40P A25L040 A25L080 A25L80P A25L016 A25L16P A25L032

ATMEL
AT25F512 AT25F512B AT25F512A AT25FS010 AT25F1024 AT25F1024A AT25F2048 AT25DF021 AT25F4096 AT25FS040 AT25DF041A AT25DF321A AT26DF321 AT25DF321 AT25DF641

COMMON
25X005 25X05 25X10 25X20 25X40 25X80 25X16 25X32 25X64 25X128 25X256 25X512 25X1024 25X2048

EON
EN25F05 EN25P05 EN25LF05 EN25F10 EN25LF10 EN25D10 EN25P10 EN25F20 EN25D20 EN25LF20 EN25F40 EN25D40 EN25LF40 EN25Q80 EN25D80 EN25F80 EN25P80 EN25T80 EN25B16T EN25T16 EN25B16 EN25D16 EN25F16 EN25Q16 EN25P32 EN25Q32 EN25F32 EN25B32 EN25B32T EN25Q64 EN25B64 EN25F64 EN25B64T EN25F128 EN25Q128

ES
ES25P10 ES25P20 ES25M40A ES25M40 ES25P40 ES25M80 ES25P16 ES25M80A ES25P32 ES25P80 ES25M16 ES25M16A

ESMT (только чтение)
F25L04UA F25L16PA F25L004A F25L32QA F25L08PA F25L32PA F25L008A F25L016A

GIGADEVICE
GD25Q512 GD25Q10 GD25Q20 GD25F40 GD25D40 GD25Q80 GD25D80 GD25T80 GD25F80 GD25Q16 GD25Q32 GD25Q64 GD25Q128

KH
25L8036D

MXIC
MX25V512 MX25L4005A MX25L1635D MX25L3237D MX25L6455E MX25L12845E MX25L512 MX25V4035 MX25L1605D MX25L3225D MX25L6408D MX25L1005 MX25V4005 MX25L1608D MX25L3205D MX25L6406E MX25L2005 MX25V8005 MX25L3235D MX25L3206E MX25L6445E MX25L8035 MX25L8005 MX25L3208D MX25L6405D MX25L12805D

NEXFLASH
NX25P10 NX25P20 NX25P40 NX25P80 NX25P16 NX25P32

NSHINE
MS25X05 MS25X16 MS25X10 MS25X32 NS25X20 MS25X64 NS25X40 MS25X128 MS25X80

PMC
PM25LV512A PM25LV016B PM25LV010A PM25LV020 PM25LV040 PM25LV080B

SAIFUN
SA25F005 SA25F160 SA25F010 SA25F320 SA25F020 SA25F040 SA25F080

SPANSION
S25FL004A S25FL032A S25FL040A S25FL064A S25FL008A S25FL128P S25FL160 S25FL129P S25FL016A S25FL128A

SST (только чтение)
SST25VF512A SST25VF512 SST25VF010 SST25VF010A SST25 SST25VF020 SST25VF040B SST25VF040A SST25VF040 SST25′ SST25VF016B SST25VF032B SST25VF064C

ST
M25P05A M25PE10 M25P10A M25P20 M25PE20 M25PE40 M25P40 M25PE80 M25P80 M25PX80 M25PX16 M25P16 M25PE16 M25P32 M25PE32 M25PX32 M25PX64 M25P64 M25PE64 M25P128

WINBOND
W25X10 W25X10L W25P10 W25X10AL W25X10A W25P20 W25X20AL W25X20A W25X20 W25X20L W25X40A W25P40 W25Q40BV W25X40L W25X40 W25X40AL W25Q80BV W25Q80V W25X80 W25P80 W25X80A W25X80L W25X80AL W25P16 W25Q16BV W25Q16V W25X16 W25Q32BV W25Q32V W25X32 W25P32 W25Q64BV W25X64 W25Q128BV

 

Поддерживаемые программатором Ch441A Pro микросхемы 24 серии

ATMEL
AT24C01B AT24C01 AT24C01A AT24C02 AT24C02A AT24C02B AT24C04B AT24C04 AT24C04A AT24C08A AT24C08B AT24C08 AT24C16 AT24C16A AT24C16B AT24C32B AT24C32A AT24C32 AT24C64 AT24C64A AT24C64B AT24C128 AT24C128A AT24C128B AT24C256B AT24C256 AT24C256A AT24C512B AT24C512A AT24C512 AT24C1024 AT24C1024A AT24C1024B

CATALYST
CAT24C01 CAT24WC01 CAT24WC02 CAT24C02 CAT24C04 CAT24WC04 CAT24WC08 CAT24C08 CAT24WC16 CAT24C16 CAT24WC32 CAT24C32 CAT24WC64 CAT24C64 CAT24WC128 CAT24C128 CAT24WC256 CAT24C256 CAT24C512 CAT24WC512 CAT24C1024 CAT24WC1024

COMMON
24C01 3V 24C01 5V 24C02 3V 24C02 5V 24C04 5V 24C04 3V 24C08 3V 24C08 5V 24C16 5V 2406 3V 24C32 5V 24C32 3V 24C64 5V 24C64 3V 24028 5V 24C128 3V 24C256 5V 24C256 3V 24C512 5V 24C512 3V 240024 3V 24C1024 5V 24C2048 5V 24C2048 3V 24C4096 5V 24C4096 3V

FAIRCHILD


FM24C01L FM24C02L FM24C03L FM24C04L FM24C05L FM24C08L FM24C09L FM24C17L FM24C16L FM24C32L FM24C64L FM24C128L FM24C256L FM24C512L FM

HOLTEK
HT24C01 HT24LC01 HT24CD2 HT24LC02 HT24C04 HT24LC04 HT24C08 HT24LC08 HT24C16 HT24LC16 HT24LC32 HT24C32 HT24LC64 HT24C64 HT24C128 HT24LC128 HT24C256 HT24LC256 HT24LC512 HT24C512 HT24C1024 HT24LC1024

ISSI
IS24O01 IS24C02 IS24C04 IS24C08 IS24C16 IS24C32 IS24C64 IS24C128 IS24C256 IS24C512 IS24C1024

MICROCHIP
MIC24LC014 MIC24AA01 MIC24AA014 MIC24LC01B MIC24LC02B MIC24AA02 MIC24C02C MIC24AA025 MIC24AA04 MIC24LC04B MIC24LC024 MIC24AA024 MIC24LC025 MIC24LC08B MIC24AA08 MIC24LC16B MIC24AA16 MIC24LC32 MIC24AA32 MIC24LC64 MIC24FC64 MIC24AA64 MIC24FC128 MIC24AA128 MIC24LC128 MIC24AA256 MIC24LC256 MIC24FC256 MIC24AA512 MIC24LC512 MIC24FC512 MIC24AA1024

NSC
NSC24C02L NSC24C02 N5C24C64

RAMTRON
FM24CL04 FM24C04A FM24CL16 FM24C16A FM24CL64 FM24C64 FM24C256 FM24CL256 FM24C512

ROHM
BR24L01 BR24C01 BR24L02 BR24C02 BR24L04 BR24C04 BR24L08 BR24C08 BR24L16 BR24C16 BR24L32 BR24C32 BR24C64 BR24L64

ST
ST24C01 ST24C32 ST24C02 ST24C64 ST24C04 ST24C08 ST24C16

XICOR
X24O01 X24C02 X24C04 X24C08 X24C16


 

Подключение Ch441A Pro

к микросхеме в корпусе SOP8 без выпаивания через прищепку — переходник.

Прищепка — переходник для программатора Ch441A Pro позволяет программировать микросхемы в корпусе SOP8 8pin без выпаивания.

1. Подсоедините переходник к программатору, согласно ключу нарисованному на программаторе. Первая ножка микросхемы обозначена на рисунке (на программаторе) точкой. На переходнике от прищепки к программатору ножки пронумерованы. См. рисунок 2.1 (правильное подключение переходника прищепки для программирования микросхемы 25 серии)

 

Рис. 2.1. Правильное подключение переходника прищепки для программирования микросхемы 25 серии

 

2. Подключите шлейф прищепки к переходнику. Красный провод должен соответствовать 1 ножке  переходника.

Перед подключением прищепки к микросхеме на плате, ножки микросхемы желательно почистить, например ножом, скальпелем или чем захотите. Плату нужно обязательно обесточить и вынуть батарейку BIOS.

3. Подсоедините прищепку к микросхеме так, чтобы красный провод был на первой ножке микросхемы. см рисунок 2.2. На самой микросхеме первая ножка обычно обозначена точкой. 

ТОЛЬКО ПОСЛЕ!!! подсоединения к микросхеме и убедившись, что все соединено правильно, подключите программатор к USB порту компьютера.

Если все контакты между прищепкой и микросхемой имеются и все подключено правильно — при запуске программы все кнопки интерфейса будут активными и можно приступать к выбору названия микросхемы и программированию.

P.S. Из за особенностей некоторых материнских плат, не все микросхемы удается программировать не выпаивая из материнской платы. В некоторых случаях без выпаивания не обойтись.

Если вы уверены, что все подключили правильно и все контакты имеются, а микросхема не поддается программированию, попробуйте выпаять микросхему, возможно ее программированию мешают другие элементы материнской платы.

 

razborbukov.ru

Программатор SPI и I2C микросхем памяти Ch441A Mini Programmer

  Микросхемы памяти серий 24хх (EEPROM), 25хх (Serial Flash) широко используются в электронике. Такие чипы присутствуют в составе практически любой конструкции современной бытовой и промышленной аппаратуры, где есть процессоры и/или микроконтроллеры. Данный программатор имеет возможность работы с обоими типами памяти.


  В комплект поставки входят сам программатор и переходная плата с двумя посадочными местами под микросхемы памяти в SOIC корпусе.

  Они дублируют имеющиеся на нижней стороне платы программатора, и если на плату программатора микросхемы памяти нужно обязательно припаивать, на переходнике можно попробовать прижать микросхему прищепкой или держателем для бумаг.

  Так-же на переходнике есть посадочное место для разьема PLD-8 (в комплект не входит, я впаял 2хPLS-4), предназначенного для подключения прищепки или шлейфа программирования.

Аппаратная часть (Hardware).

  Программатор выполнен на базе микроконтроллера «USB Bus Convert Chip» серии Ch441A. Он рассчитан на физическое подключение к порту USB 2.0 компьютера, при подключении через хаб-удлиннитель программатор у меня работал с ошибками (может у меня хаб такой). Модуль программирования памяти собран на плате размерами 63х27мм (без учета USB разьема, с разьемом 84х27мм) из черного стеклотекстолита.

Схема программатора:

  В распоряжении автора есть два экземпляра этого программатора, приобретенные в разное время, визуально их можно отличить по названию, один (более ранний) называется «Ch441A Mini Programmer«, второй «Ch441A MinProgramment«. Схемы одинаковые, различаются только цветом светодиода «RUN«. На первом зеленый, на втором желтый.
  Некоторые схемные обозначения на конкретном программаторе могут немного отличаться, например самовосстанавливающийся предохранитель F1 (fuse) может обозначаться как R1. В инете встречались упоминания, что в эту позицию иногда ставят резистор нулевого сопротивления т.е. перемычку. У меня как и положено на обоих стоят предохранители ~400mA, сопротивление 0,92Ом, маркировка на корпусе «5». Также на плате часто отсутствует схемное обозначение резисторной сборки PR1. Более грамотное обозначение схемных элементов программатора можно посмотреть на изображении верхней стороны платы от магазина WAVGAT (на AliExpress):

  Особых отличий от даташита схема не имеет, разве что на блокировочных конденсаторах по питанию сильно экономили. Питание 5V от USB подается на вывод 28, на выходе 9 внутреннего стабилизатора блокировочный конденсатор.

  Т.к. на выводах ввода/вывода напряжение соответствует 5V уровням, в основном это устройство на 5V, правда в инете много упоминаний и о программировании им микросхем на 3.3V без каких либо ошибок и отрицательных последствий. Выход отдельного стабилизатора AMS1117-3.3 в схеме не задействован и просто выведен на выходной ZIF разьем и на контакт боковой гребенки SPI.
  В даташите указан способ сделать уровни на выходах совместимыми с 3.3V. Для этого необходимо соединить выводы 28 и 9 и подать на них 3.3V, при этом внутренний стабилизатор просто не используется. Но при этом 3.3V уровни также будут на на переходнике USB <-> RS232, что иногда не приемлемо. Также на Ali сушествует другая версия этого программатора, скомпонованная немного по другому и выполненая на зеленом текстолите. Читал, что там на вывод 28 подается 3.3V от внешнего стабилизатора, но выводы 28 и 9 не соединены, и это нормально работает. В любом случае, уровни на переходнике USB <-> RS232 и здесь будут 3.3V.
  Если планируется программирование флешек 1.8V через основной разьем необходимо дополнительно приобрести модуль 1.8V-adapter. Бонусом является то, что переделать его для поддержки и уровней 3.3V несложно, надо лишь закоротить вход/выход стабилизатора 1.8V дополнительным джампером.

  Теперь при наличии джампера адаптер работает с логическими уровнями 3.3V, при отсутствии — 1.8V.
Минус тут в том, что стоимость адаптера не намного меньше, чем самого программатора. Но если он уже есть, почему бы его не использовать по полной?

  Если для программирования будет использована боковая гребенка SPI, можно поступить проще. На Ali много предложений 4-канального двунаправленного преобразователя уровней на МОП транзисторах за очень небольшие деньги.

  Работа этого преобразователя подробно описана в статье «Согласование логических уровней 5В и 3.3В устройств». Схема отличается от рассмотренной в статье только номиналами резисторов (сопротивление меньше — увеличено быстродействие и энергопотребление). За счет добавления дополнительных джампера J1 и двух кремниевых диодов, можно будет программировать как 3.3V, так и 1.8V флешки.

  Резисторы 2,2 кОм отделяют выводы #WP и #HOLD флешки от шины питания. Светодиод — индикатор наличия напряжения.

Программная часть (Software), драйвер.

  Перед применением программатора необходимо инсталировать в Windows его драйвер(а), легко находятся в инете, я брал из архива программы AsProgrammer. Программатор поддерживает два режима, они переключаются аппаратно джампером J1. Применен интересный прием, при переключении джампера у чипа меняется Device ID на шине USB. Это вынуждает Windows найти подходящий по VID/PID драйвер и подключить его.
  При джампере в положении «1-2» по VID_1A86&PID_5512 подгружается драйвер «USB-EPP/I2C… Ch441A«. Он создает в диспетчере устройств раздел «Interface» в который и устанавливается.

  В этом случае чтение, верификация, запись чипов памяти должны осуществляться непосредственно через ZIF-панель программатора Ch441A или через боковой разьем Р2 с интерфейсом SPI.

  При джампере в положении «2-3» по VID_1A86&PID_5523 подгружается драйвер «USB-SERIAL Ch441A«. В диспетчере устройств найти его можно в разделе «Порты (COM и LPT)«. Там же можно посмотреть и номер присвоенного СОМ порта.

  При этом программирование может производиться только через интерфейс RS232 TTL на разьеме Р1 (там же где и джампер), если целевое устройство поддерживает такой способ (встроенный загрузчик или монитор).

Программная часть (Software), программа прошивальщик.

  С программатором Ch441A на программном уровне обычно рекомендуется китайский (есть русификация) родственный софт «Ch441A — USB Programmer». Но в то-же время в инете достаточно много жалоб на его глючность и нестабильность, особенно версий выше 1.18. Ch441A — USB Programmer версий 1.30, 1.29 не может нормально работать (читать и записывать) с чипами памяти объемом более 8MByte/64MBit. Примерно после адреса 0800000 начинают сыпаться хаотичные ошибки.
  Поэтому я не стал наступать на эти грабли повторно, и с самого начала использовал программу «AsProgrammer» от участника сообщества Tifa, последняя версия 1.4.0. Скачать можно на форуме, топик форума показывается в лог-окне программы при запуске. Если кто-то захочет полазить в исходниках, проект есть на GitHub (если правильно понял, проект на Free Pascal, Lazarus).
  Кроме поддержки 24 и 25 серий микросхем памяти, программа работает и c 45 серией, поддерживает серию ST M95 и память microwire (только для данного программатора). Все схемы подключения есть в архиве программы. Полный список поддерживаемых микросхем памяти можно посмотреть в каталоге программы в файле chiplist.xml.

  Программа не требует установки, включает в архив драйверы для обоих режимов программирования СН341А.
Log-файл работы программы с флешкой W25Q128FW, 16Мб, 1.8V через «1.8V-adapter«:



Используется программатор: Ch441
Sreg: 00000000(0x00), 00000010(0x02), 01100000(0x60)


Используется программатор: Ch441
Читаю флэшку…
Готово
Время выполнения: 0:02:49


Используется программатор: Ch441
Стираю флэшку…
Готово
Время выполнения: 0:01:03


Используется программатор: Ch441
Записываю флэшку с проверкой…
Готово
Время выполнения: 0:24:45


За все время работы с данной программой (прошивал ~5 вариантов BIOS) ни одного сбоя или ошибки.

  Линуксоидам использовать стороннюю программу нет необходимости, стандартный прошивальщик Flashrom полностью поддерживает данный программатор (должен быть собран с поддержкой ключа «-ch441a»).

Доработка 1. Подтяжка сигналов #WP и #HOLD.

  В программаторе линии сигналов #WP и #HOLD посажены непосредственно на шину питания. Это мешает сбросить/установить бит QE во втором регистре статуса (25хх). В даташитах на микросхемы памяти есть предупреждения по этому поводу, вот из даташита на W25Q128FW:

WARNING: If the /WP or /HOLD pins are tied directly to the power supply or ground during standard SPI or Dual SPI operation, the QE bit should never be set to a 1.

  Для исправления этого недостатка надо отсоединить ноги #WP (pin 3) и #HOLD (pin7) от VCC и подключить их к VCC через резисторы 2.2-4.7 кОм.
  На «чёрном программаторе» советуют это делать так (привязка к схеме, нумерация контактов относительно ZIF разьема), дорожка между контактами 11-12 перерезается (#HOLD), между контактами впаивается резистор, дорожка от 11 контакта ведущая к 7 (#WP) перерезается у 11 контакта, проводок напаивается с 12 контакта к отрезанной дорожке, та же дорожка перерезается перед 7 контактом, поверх разреза напаивается резистор:

  Как по мне, проще сделать это на переходнике 1.8V-adapter, если задействовать его вторую незанятую половину разьема. Тем более при применении адаптера переделка на плате программатора становится бесполезной, порты у трансмиттера используются как однонаправленные.

Доработка 2. Увеличение кол-ва блокировочных конденсаторов по питанию.

  Участник сообщества «AlexX1810» предложил добавить на плату программатора три блокировочных конденсатора 0.1 мкФ. По его словам улучшается стабильность работы программатора.
Если ориентироваться по схеме, первый конденсатор между 6-7 контактами разьема Р1 (5V), второй между 5-6 контактами разьема Р2 (3.3V), третий между 15-16 контактами ZIF панельки (7-8 контакты разьема I2C, 3.3V). Все впаяны со стороны контактов.

У меня во время использования программатора сбоев не было, но хуже во всяком случае не будет.

we.easyelectronics.ru

описание USBASP драйвера, инструкция по настройке своими руками в AvrDude Prog, Atmel Studio и Khazama AVR Programmer, обновление проши

В моём случае это абсолютный рекордсмен по скорости доставки — около 5 месяцев беспечного блуждания непонятно где. Несмотря на чудовищную задержку по времени, пакет я всё-таки получил, чему несказанно рад, не взирая на недочёты, о коих поведаю ниже. Поскольку у меня весьма плохая память, то нужно было объединить найденную полезную информацию где-то в одном месте в виде памятки, собирать её по крупицам в разных закоулках сети оказалось делом нетривиальным, поэтому оформлю всё это отдельным постом.
USB ISP — самый дешёвый программатор контроллеров AVR, что можно найти в продаже, брался для расширения кругозора и более углубленного изучения AVR.
Обзор в себя включает: описание программатора, как его подключить к чипу, настройку его работы в программах AvrDude Prog, Khazama, Atmel Studio 7, и не только это.

Конечно вместо него можно использовать Arduino UNO с прошитым в него скетчем ArduinoISP, но это не удобно, возня с проводами, особенно если UNO всего одна, отбивает энтузиазм. Проще было заиметь отдельно такой программатор, точнее два. По двум причинам:
1) Ещё перед покупкой уже из отзывов было понятно, что качество пайки этих устройств страдает, а некоторым ещё и с расколотыми стабилитронами они приходили. Решено было подстраховаться, заказав два.
2) Один программатор к тому же можно шить другим, переставив перемычку на ведомом устройстве.

Технические характеристики

Поддерживаемые ОС: Windows, MacOS, Linux
Процессор: Atmega8A
Интерфейс подключения к ПК: USB
Интерфейс программирования: ISP (внутрисхемное)
Напряжение программирования: 5В или 3.3В (в зависимости от положения перемычки JP2)
Частота программирования: 375кГц (по умолчанию) и 8кГц (при замкнутой перемычке JP3)
Поддерживаемые контроллеры: все AVR с интерфейсом SPI
Описание: ссылка

Список поддерживаемых микроконтроллеров

ATmega серия

ATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649
ATmega6490 ATmega8515 ATmega8535

Tiny серия

ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATTINY25
ATtiny45 Attiny85 ATtiny2313

Серия Classic

AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535

CAN серия

AT90CAN128

PWM серия

AT90PWM2 AT90PWM3

Внешний вид

Комплект поставки минимальный — программатор + шлейф без резинки. В моём случае в удвоенном количестве.

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







Некоторые отверстия не целиком заполнены припоем

SMD-элементы тоже криво припаяны

Гребёнку чуть позже выровнял, уж больно неприятно на такую раскосую смотреть, элементы пропаял, а плату затем отмыл

Размеры платы несколько больше USB-TTL-конвертера на CP2102

Длина шлейфа около 30см, бытует мнение, что чем короче шлейф, тем лучше. Некоторые его специально укорачивают. Если заказать оригинальный USBASP — там комплектный шлейф уже 50см.

Органы управления на плате

На плате имеются три перемычки, задающие разные режимы работы программатора:
JP1 — замыкается в случае обновления прошивки самого программатора
JP2 — тройная перемычка, здесь выбирается, какое напряжение будет подаваться на прошиваемый микроконтроллер, либо 5В (левое положение) и 3.3В (правое положение)
JP3 — если её замкнуть, то программирование контроллера будет происходить с пониженной частотой, однако китайцы не стали сюда впаивать гребёнку, т.к. на данной прошивке она не требуется
Программатор, как можно заметить, построен на базе Atmega8 с кварцем на 12МГц. Самый правый верхний элемент, подписанный F1, с перевёрнутой цифрой 4 — самовосстанавливающийся предохранитель, защищает USB-порт ПК/ноутбука, если на прошиваемой плате вдруг произошло короткое замыкание. Под перемычкой JP2 находится LDO-стабилизатор 662К, понижающий напряжение с 5В до 3.3В, если перемычка установлена в правое положение.

Установка драйверов

Чтобы начать пользоваться программатором, необходимо сперва поставить на него драйвера. Вставляю любой программатор в USB-порт ПК, звучит сигнал о новом оборудовании, на самом девайсе горит светодиод, но автоматического поиска драйверов не происходит.
примечание. перед установкой драйвера необходимо отключить проверку цифровой подписи в Windows
1) Скачать драйвера, распаковать в удобное место.
2) Зайти в «Диспетчер устройств», например навести курсор на главную кнопку (Win10), нажать ПКМ и выбрать пункт «Диспетчер устройств».

3) В ветке «Другие устройства» можно увидеть неопознанное устройство USBASP с оранжевым треугольничком — > навести на него курсор, нажать ПКМ -> «Обновить драйверы…»

4) Указать путь до раннее распакованной папки с драйверами — «libusb_1.2.4.0», нажать «ОК»

5) «Всё равно установить этот драйвер»

6) Готово, теперь оранжевый треугольничек пропал, драйвера поставлены

Прошивка собрата

Мне уже было известно до этого, что китайцы продают эти программаторы с не самой свежей прошивкой. Решил сперва обновить прошивку на одном из них, а затем ради интереса сравнить оба программатора в работе. Для этого соединяю шлейфом оба устройства, на ведущем (который вставляю в USB-порт) никакие перемычки не трогаются, а на ведомом программаторе (на котором будем обновлять прошивку) я переставил перемычку с JP2 на JP1:

Захожу в программу Khazama AVR Programmer, выбираю из выпадающего списка ATmega8 и сперва считаю Flash-память через пункт меню «Command» -> «Read FLASH to Buffer», чтобы cохранить китайскую заводскую прошивку у себя. На всякий случай.

При этом периодически будет выпадать такая ошибка, закрыв окно, программа продолжит работу.

Идёт считывание, которое завершается всплывающим окном об успешном считывании FLASH-памяти в буфер

Теперь нужно сохранить содержимое буфера: «File» -> «Save FLASH Buffer As…». Выбрать удобное место, куда старая прошивка сохранится, дать имя (я например её назвал firmware_1) и дописать расширение *.hex — если его не писать, то она сохранится как просто файл без расширения.

Скачиваю прошивку для программатора с этой странички, архив usbasp.2011-05-28.tar.gz (в этом же архиве есть драйвера для Windows, распаковываю содержимое в удобное место.
Тем временем в Khazama загружу скачанную прошивку в буфер. «File» -> «Load FLASH File to Buffer». Выбираю прошивку, где в названии написано atmega8, поскольку прошиваемый программатор на этом чипе.

Как видно, здесь три прошивки — для Atmega8, 48 и 88. В нашем случае Atmega 8 — её и выбираю.

Прошиваю. «Command» -> «Write FLASH File to Buffer». Снова возникает ошибка, но после идёт процесс, завершающийся успехом.



Поскольку в обычном понимании «запрограммировать» означает выставить 1, то при работе со фьюзами всё ровно наоборот, от чего возникает путаница и в этом случае можно по неосторожности заблокировать контроллер и прошить потом его будет уже нельзя. Программа Khazama AVR Programmer удобна просмотром фьюз-битов — там наглядно видно и расписано, какие из них установлены, а какие нет.

Находятся они по пути «Command» -> «Fuses and Lock Bits…», откроется окно:

Где по нажатии кнопки «Read All» считаются фьюз- и лок-биты, а пресловутая ошибка успеет вылезти аж 5 раз подряд. Ошибки сыпятся именно на заводской китайской прошивке. Но если вставить в USB-порт недавно прошитый программатор, прошивкой скаченной по ссылке выше, то этих ошибок вылазить уже не будет, однако баги вылезут в другом месте, но о них позже.

Связь с платой Pro Mini (Atmega 168, 3.3V/8MHz)

В этом случае выводы программатора соединяются с выводами платы Pro Mini, как проиллюстрировано на схематичном рисунке ниже. Перемычки не переставляются, т.е. остаётся в положении 5В.
Несмотря на то, что плата Pro Mini подписана как 3.3В, на 168-ю Атмегу можно подавать и 5В. Стабилизатор AMS1117 на 3.3В кстати вообще выпаян из платы.

AVRDUDE PROG 3.3
Консольная программа для прошивки микросхем, своего графического интерфейса не имеет, в стоке работает из командной строки, но энтузиастами было написано немало оболочек на неё, для удобства работы с ней. Одна из таких оболочек называется AVRDUDE PROG, созданная русскоязычными разработчиками. Эта оболочка, на мой взгляд удобна как раз для Flash-перепрошивки МК. После её запуска выбирается контроллер, в данном случае Atmega168 и тип программатора — USBasp. После чего можно заниматься записью/считыванием памяти. Что на заводской прошивке, что на новой — в обоих случаях никаких проблем с общением с Atmega168 не возникло. Прошил ради интереса ардуиновский стандартный blink-скетч, экспортированный в бинарный HEX-файл. Всё гладко.



Khazama AVR Programmer
Здесь достаточно выбрать микроконтроллер из выпадающего списка и можно уже работать с памятью/битами.
Однако если на самом программаторе установлена заводская прошивка, периодически будут сыпаться ошибки, о чём выше уже было упомянуто, на новой прошивке — данных ошибок уже нет.

Связь с контроллером ATtiny13A в корпусе SOIC8

Соединение согласно схеме ниже. Но тут всё немного интереснее.

Поскольку голый чип в SMD-корпусе SOIC8, в данном случае я поместил его в переходник SOIC8-DIP8 для удобства соединения с программатором в дальнейшем. Обзор на этот переходник можно почитать здесь.

AVRDUDE PROG 3.3
Тут выбирается из списка одноимённый контроллер, программатор USBasp и, если программатор прошит заводской китайской прошивкой, то все операции проходят ровно и гладко. Однако стоит заменить программатор на другой, с обновлённой прошивкой, то при любой операции возникает ошибка.

Появляется она из-за того, что ни программа, ни программатор не могут автоматически перейти в режим медленного программирования, необходимый для ATtiny13. Но есть как минимум два выхода:
1) Железный: замкнуть перемычку JP3

2) Программный: отредактировать файл «programm.ini» в папке с программой AVRDUDE PROG 3.3

Внести туда четыре строчки кода и сохранить. (взято отсюда)

progisp=jtag2pdiportprog=COM1portenabled=1[UsbaspSpeed]
progisp=Usbasp -B 3
portprog=usb
portenabled=0
Примечание. Здесь применён ключ «-B», который и занимается переводом программатора на пониженную частоту программирования. Значение «3» — время в микросекундах

После этого снова запустить AVRDUDE PROG 3.3 и в выпадающем списке программаторов выбрать UsbaspSpeed. Теперь работа с ATtiny13 на программаторе с новой прошивкой будет уже без ошибок, а перемычку JP3 замыкать больше не потребуется в этом случае.

Khazama AVR Programmer
Выбирается контроллер из списка и почти та же ситуация.

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

Но стоит замкнуть перемычку JP3, и можно спокойно работать

Или просто задать частоту работы из выпадающего списка по пути «Command» -> «Programm Options», я выставил частоту 187.5кГц.

Примечание. Частота программирования должна быть меньше тактовой частоты прошиваемой микросхемы не менее, чем в 4 раза. Но если посмотреть на считанные с ATtiny13 фьюзы, то на последней строчке Int.Rc.Osc. указано 9.6МГц.
Как минимум, у новичка возникнет вопрос — почему на выставленных в KHazame 1.5МГц — появляется та же ошибка? А также почему, если в AtmelStudio написать например код мигания светодиода с частотой раз в секунду и в макросе прописать:
#define f_cpu 9600000
то загрузив код на Attiny13, светодиод будет мигать очень медленно?
— посмотрим на предпоследнюю строчку, где Divide Clock by 8 Internally [CKDIV8=0] — это включенный предделитель частоты, который делит эти 9.6МГц на 8, и поэтому реальная частота чипа здесь — 1.2МГц. Поэтому при выборе частоты 187.5кГц или меньше, ошибки исчезают и можно работать нормально с контроллером.
Примечание 2. Способ с выбором частоты в KHazame по скорости работы в несколько раз выигрывает у метода с физическим замыканием перемычки JP3, потому как в последнем случае частота понижается до 8кГц.

Интеграция программатора в Atmel Studio 7

Atmel Studio — среда разработки от фирмы Atmel, но напрямую работать с USBASP, тем более китайским, она не может. Однако благодаря той же программе AVRDUDE, входящий в состав пакета AVRDUDE PROG 3.3, которая будет играть здесь роль посредника, можно соорудить «костыль», а уже в самой среде затем добавить возможность прошивать МК, подключенный через USBASP.

Сперва нужно запустить среду, предполагается, что некий код у нас уже написан и собран. В моём примере это простая мигалка светодиодом — Blink.

На верхней панели инструментов выбрать «Tools» — «External Tools…»

Откроется небольшое окно, нажать «Add»

В самом верхнем поле «Title:» ввести любое удобное название, я написал «Atmega168», т.к. та конфигурация, что приведу чуть ниже относится конкретно к этому контроллеру, и для любого другого контроллера она настраивается индивидуально.
В большом поле наверху, название инструмента будет автоматически продублировано.

Вторая строка, поле «Command:» — здесь нужно указать путь до файла «avrdude.exe», который находится в папке с вышерассмотренной программой

Третья строка, поле «Arguments:» необходимо ввести собственно саму конфигурацию

Конфигурация для Atmega168

-p m168 -c usbasp -P usb -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:a

-p — наименование контроллера
-с — какой программатор
-P — порт, через который будет заливаться прошивка
-U — какая операция с какой памятью будет производится (в данном случае запись во Flash)
Если нужно настроить для другого МК, то параметр «m168» нужно изменить на соответствующий контроллер, который будет прошиваться. Например «m8» для Atmega8 или «m328p», если Atmega328p. Параметры для других МК смотрите здесь — также там найдёте описания ключей AVRDUDE.

Конфигурация для ATtiny13

-p t13 -c usbasp -B 3 -P usb -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:a 
Здесь можно заметить уже два изменения: помимо «t13», добавился уже знакомый ключ «-B» со значением «3» для снижения скорости программирования
После заполнения полей нажать «Apply» и «ОК». Окно закроется

Теперь, если снова кликнуть по «Tools», там появится только что созданный инструмент. И по нажатии по нему откомпилированный код будет автоматически прошит в контроллер.

Но эта операция происходит в два клика, что не очень удобно. Надо вынести этот инструмент на главную панель инструментов, чтобы он был всегда на виду.
Для этого нужно снова зайти в «Tools», затем кликнуть по пункту «Customize…»
Откроется следующее окно:

Перейти во вкладку «Commands» — нажать кнопку «Add Command…»

Ещё одно окно появится. В нём — в левой колонке выбрать «Tools», а в правой колонке выделить «External Command 1». Нажать «OK»

«External Command 1» окажется наверху списка, и, обратите внимание на саму панель инструментов — в интерфейсе появился пункт «Atmega168».

Но как мне кажется, место ему отведено не совсем удачное, желательно его сдвинуть вправо, для этого нажимается кнопка «Move Down» (одно нажатие = сдвиг на одну позицию вправо). После этого можно закрывать окно по кнопке «Close» и шить чип прямо из студии в один клик через обозреваемый программатор.

При перепрошивке чипа таким методом, на секунду появляется консольное окно AVRDUDE. Но может возникнуть необходимость как-то сохранить этот лог для дальнейшего его просмотра — тогда в окне «External tools» нужно поставить галку на «Use Output window».

И теперь лог будет отображаться в окне вывода, что внизу программы ATmel Studio 7. Данная галка может задаваться отдельно для каждого добавленного в «External tools» контроллера.

Дополнение по фьюзам программатора

Из документа READMI, идущего в комплекте с драйверами и прошивкой для USBASP, позже выяснилось, что разработчик рекомендует выставить определённую конфигурацию фьюз-битов, определяющих работу внешнего резонатора.
Минусом khazam’ы является то, что в окне со фьюзами не отображаются HEX-значения выставленных битов. Это уже можно посмотреть в AVRDUDE PROG. Заводские фьюзы, выставленные китайцами, выглядят так (обязательно поставить точку «инверсные» — выделил синим прямоугольником):

Как рекомендует выставить разработчик:

HFUSE=0xc9
LFUSE=0xef

Это нужно снять две галки с «BODEN» и «SUT1» (выделено красным овалом),
поставить две галки на «CKOPT» и «SUT0» (выделено зелёным прямоугольником),
справа в колонке при этом будут отображаться HEX-значения изменённых битов (выделено жирным красным прямоугольником): Lock Byte: 3F, Fuse High Byte: C9, Fuse Low Byte: EF.

Если всё сходится, можно нажимать «программирование»

ВНИМАНИЕ. Злой фьюз-бит RSTDISBL — не трогать ни в коем случае, иначе его установка заблокирует контроллер и прошить потом через USBASP его уже будет нельзя.
_____________________________________

Выводы

Опробовано, работает. Если khazam не планируется использовать, то в обновлении прошивки для программатора — смысла нет, благо и так прекрасно работает, причём в случае с ATtiny13 никаких правок и перемычек вносить не требуется. Последняя прошивка — почему-то оказалась более капризна в этом плане. Единственное, после получения, плату надо пропаять и отмыть.

Список ссылок
1) Описание USBASP
2) AVRDUDE PROG 3.3 (форум)
3) Khazama AVR Programmer 1.7
4) Китайская стоковая прошивка (10кб)
5) Архив с прошивками для USBASP и драйверами для Windows — сайт создателя проекта

mysku.ru

Программатор Ch441A

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

В первом случае обычно вызывают работников сервиса. Бывает покопавшись в потрохах вашего устройства и взяв деньги работники сервиса исчезают, оставив вас с вашей проблемой.
Возможен вариант предложения покупки блока управления за
пол цены нового устройства. Это не всегда подходит.
Потом лопается терпение вашей жены и вы покупаете новое устройство. Но старое стоит где-нибудь в углу. Через время опять в ультимативной форме у вас требуют его убрать куда подальше к
мусору.Тут возможно и пригодится ваш друг програматор. Быстренько выпаяв (или подключив провода подняв ногу питания) и перепрошив (прошивка берется в интернете) микросхему памяти вы оживляете дивайс.Теперь вы счастливый человек у вас 2 стиралки,2 телевизора и тд.
Вот и палочка-выручалочка для данными ситуаций этот программер за смешные деньги. Конечно микросхемы 24 и 25 серии это далеко не все, но эти микросхемы стоят во многих бытовых приборах.
Вот и сам герой

Пайка нормальная.От моих работ осталось немного флюса.

Характеристики:

модель: Ch441A;
программатор собран на микроконтроллере: USB bus convert chip Ch441A;
совместим с операционными системами: Windows 98, Windows ME Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10;
программирует/считывает: FLASH EEPROM 24-25 серий;
16-ти контактная ZIF панель с нулевым усилением и ручкой-фиксатором;
6-ти контактный ISP интерфейс;
интерфейс RS232;
светодиодная индикация: питания;
рабочее напряжение: 5 В постоянного тока;
на плате установлен кварц на 12 МГц;
размеры (Д х Ш х В): 66 х 28 х 15 мм;
вес комплекта: 20 г.


Коротко о примененном в нем чипе

Ch441 — мультифункциональный конвертер из USB 2.0 в UART, EPP, I2C и SPI.
В режиме UART поддерживаются не только RX/TX, но и остальные сигналы управления, поэтому на чипе можно сделать USB-модем. В режиме параллельного порта реализован интерфейс EPP и эмуляция принтера (позволяющая подключать принтеры с интерфейсом LPT напрямую к USB без написания дополнительных драйверов). В последовательном режиме поддерживаются интерфейсы I2C и SPI.
Чип требует минимальной дополнительной обвязки (внешний кварц и несколько конденсаторов). Возможно использование внешней EEPROM для хранения пользовательских Vendor ID, Device ID и некоторых настроек чипа. Питание от 5 В (через встроенный LDO-регулятор), либо от 3.3 В напрямую.


Это различные приспособы для него

Микросхемы устанавливаются в ZIF- панель или припаиваются к плате. Удобно использовать переходники.
Также есть возможность внутрисхемного программирования по ISP интерфейсу. Также на корпусе программатора присутствует интерфейс RS232.
Как использовать тут


На корпусе программатора есть перемычка обозначенная P/S. Она используется для переключения режимов Paralell (внутреннее) и Serial (внешнее).

Для работы c ним используется данная программа


плюс драйвера

Установка драйвера.
Для начала использования программатора нужно сначала подключить его к USB порту компьютера, можно даже без установленного чипа в колодке. Если программатор рабочий и с USB разъёмом компьютера всё в порядке, то на корпусе программатора должен загореться светодиод, сигнализирующий о поступлении питания, и Ваш компьютер издаст звук, оповещающий Вас, что вставлено новое USB устройство. Установка драйвера программатора такая же, как у любого USB девайса. Жмём сочетание клавиши Win + Pause, или просто открываем Диспетчер Устройств. В списке устройств для неизвестного устройства указываем путь к драйверу (заранее распакуйте их из архива, который можно скачать ниже на странице), это должен быть файл ch441wdm.inf. Второй способ установки драйвера — это просто запустить файл ch441par.exe с правами администратора и драйвер установится сам. Если драйвер установлен верно, то можно переходить к программированию чипов.
Программа имеет встроенные китайский и английский языки, но есть возможность её русифицировать.

Внешний вид программы

Поле 1 выбор типа микросхемы, поле 2 подсказывает как ее установить на панели,
поле 3 поле прошивок.

Теперь можно приступать к программированию. Если вы будете программировать микросхему на ZIF панели программатора, то нужно поднять ручку-фиксатор, чтобы открыть пазы для установки микросхемы. Необходимо отсоединить микросхему, которую собираетесь программировать, от конечного устройства и установить её по ключу в пазы программатора (ключ должен указывать на ручку-фиксатор). Потом опустить ручку-фиксатор, чтобы зафиксировать микросхему. Если нужно программировать микросхемы в корпусе SOP8 или SOP16, то на плате программатора есть по одной контактной площадке под эти типы корпусов. Соединить микросхему с контактной площадкой можно с помощью пайки.Можно и прижать, но хороший контакт под вопросом. Микросхемы нужно устанавливать по ключу, как изображено на пиктограмме, которая есть на корпусе программатора.

Выбрав тип микросхемы (можно попробовать нажать CHIP SEACH для автоматического определения) и вставив в панель, нажимаем READ и считываем ее содержимое.
Сохраняем на всякий случай (вдруг не в ней дело) FILE-SAVE-куда.
Кнопкой ERASE стирается содержимое микросхемы.
Теперь прошьем новой- FILE-OPEN-прошивка
Прошиваем PROGRAM.
Проверяем как прошилось VERIFY

Можно это проделать сразу ERASE-PROGRAM-VERIFY нажав AUTO.

Список поддерживаемых чипов

Дополнительная информация

MX25L12845, MX25L6405 MX25L6405 W25Q128 EN25Q64
AMIC:
·A25L05P,A25L10P,A25L20P,A25L40P,A25L80P,A25L16P
ATMEL:
·AT25DF041A,AT25DF321,AT25F004,AT25F512A,AT25F2048,AT25F4096,AT25F1024A,AT25FS010,AT25FS040,AT26DF081A,
·AT26DF161A,AT26DF321,AT26F004
EON:
·EN25B05,EN25P05,EN25B10,EN25P10,EN25BF20,EN25P20,EN25F20,EN25B40,EN25P40,EN25F40,EN25B80,·EN25P80,EN25F80,EN25T80,EN25B16,EN25P16,EN25B32,EN25P32,EN25B64,EN25P64
Excel Semiconductor Inc.
·ES25P10,ES25P20,ES25P40??ES25P80,ES25P16,ES25P32
ST:
·M25P05A,M25P10A,M25P20,M25P40,M25P80,M25P16,M25P32,M25P64,M25PE10,M25PE20,M25PE40,   M25PE80,M25PE16,M25PE32,M45PE10,M45PE20,M45PE40,M45PE80,M45PE16,M45PE32
MXIC:
·MX25L512,MX25L1005,MX25L2005,MX25L4005,MX25L8005,MX25L1605,MX25L3205,MX25L6405
MX25L6445,MX25L6405(SOP16)
NexFlash:
·NX25P80,NX25P16,NX25P32
Chingis Technology Corporation
·Pm25LV512,Pm25LV010,Pm25LV020,Pm25LV040,Pm25LV080,Pm25LV016,Pm25LV032,Pm25LV064
Saifun Semiconductors
·SA25F005,SA25F010,SA25F020,SA25F040,SA25F080,SA25F160,SA25F320,
WINBOND
·W25P10,W25X10,W25Q10,W25P20,W25X20,W25Q20,W25P40,W25X40,W25Q40,W25P80,W25X80,W25Q80,  W25P16??W25X16,W25Q16,W25P32,W25X32,W25Q32,W25P64,W25X64,W25Q64


Если необходимой вам микросхемы нет в списке прошиваемых, или программа не может автоматически правильно определить тип вашей микросхемы, то можно вручную выбрать подобную с тем же объёмом памяти и попробовать прошить.

mysku.ru

Работа с программатором Ch441A на примере микросхемы 25L8005

В статье мы рассмотрим программатор Ch441A и работу с ним на примере программирования микросхемы ПЗУ 25L8005.

1Обзор программатораCh441A

Как следует из названия программатора, его основная часть – это микросхема Ch441A. Рядом с ней располагается кварцевый резонатор на 12 МГц, а также стабилизатор напряжения AMS1117, который выдаёт 3,3 вольта. По бокам от USB разъёма, которым программатор подключается к компьютеру, располагаются светодиодные индикаторы: сверху (на фото) – индикатор питания (POWER), а снизу – индикатор обмена данными между ПК и программатором (RUN). Он включается, когда программатор считывает данные из программируемой микросхемы и когда происходит запись.

Верхняя сторона программатора Ch441A

Для подключения программируемых микросхем установлена 16-контактная DIP панель с нулевым усилием (ZIF), которая промаркирована TFXTDOL. С обеих стороны панели располагаются две группы контактов. Их назначение описано на нижней стороне программатора и приводится на фото ниже:

Нижняя сторона программатора Ch441A

По названиям выводов понятно, что верхняя (на фото) гребёнка предназначена для обмена по интерфейсу SPI, а нижняя – по UART. Также тут имеется площадка для пайки, на которую можно припаять программируемую микросхему.

Лучше использовать переходные панели с нулевым усилением (т.н. ZIF панели), которые позволяют подключать микросхемы к программатору без пайки посредством DIP панели на верхней стороне.

С помощью перемычки, которая по умолчанию установлена между контактами 1 и 2, можно менять режим работы программатора. Так, если перемычка установлена между контактами 1 и 2, программатор работает в параллельном режиме и определяется в диспетчере устройств Windows как параллельный порт (USB-EPP/I2C), а если между контактами 2 и 3 – в последовательном режиме и определяется в диспетчере устройств как COM-порт.

Программатор предназначен для чтения и записи данных в микросхемы flash-памяти серий 24 и 25. На шелкографии на нижней стороне программатора Ch441A указано, каким образом нужно подключать программируемую микросхему каждой из серий. Приобрести программатор можно на Али-Экспресс, например, здесь, а подходящие микросхемы памяти здесь.

2Софт для работы с программатором Ch441A

Программатор Ch441A поставляется с программой, которая, к сожалению, давно прекратила своё развитие. Последняя версия программы 1.30 датируется 2009 годом. Программа имеет предельно простой и интуитивно понятный интерфейс, который мы подробней рассмотрим чуть далее.

Программное обеспечение программатора Ch441A

Также существует альтернативное программное обеспечение (например, Программатор SPI, I2C, Microwire FLASH/EEPROM v1.4.0), которое, к сожалению, также не отличается дружелюбным интерфейсом и на сегодняшний день более не поддерживается.

Однако, со своей основной задачей программатор вполне успешно справляется даже со штатным программным обеспечением. В чём мы сейчас и убедимся.

3Чтение и запись ПЗУ с помощью программатора Ch441A

Установим программируемую микросхему в DIP-панель и зажмём с помощью специального рычага. Первая ножка микросхемы flash-памяти обозначена на корпусе точкой.

Программируемая микросхема в ZIF-панели под микроскопом

На нижней стороне программатора, как мы уже видели, отмечено, как необходимо располагать программируемую микросхему.

Программируемая микросхема в DIP-панели программатора Ch441AПрограмматор Ch441A

Будьте предельно внимательны при установке программируемой микросхемы. Если её неправильно (и неудачно) подключить, можно вывести из строя или микросхему, или сам программатор. Явным признаком неправильного подключения микросхемы может служить сильный разогрев частей программатора или программируемой микросхемы.

Подключим программатор к компьютеру, перемычка установлена между контактами 1 и 2. При первом запуске программатора необходимо установить драйверы. Скачать драйверы для программатора Ch441A можно по ссылке в конце статьи.

После установки драйвера запустим программу Ch441A Programmer. Программа автоматически определит, что программатор подключён. В правом нижнем углу в статусной строке программы появится надпись, оповещающая о том, что программа нашла программатор: Состояние: Подключено

Если программа не определила программатор, статусная строка отобразит соответствующее предупреждение.

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

Программа для работы с программатором Ch441A

После того, как чип выбран, нажмите кнопку «Чтение». Программа прочитает и отобразит содержимое чипа в шестнадцатеричном формате (а также в виде текстовых символов в кодировке ASCII).

Кстати, в программе отображается подсказка в виде изображения, как должна быть расположена микросхема при программировании. Так вот, не смотрите на неё. Правильное положение указано на самом программаторе Ch441A, как мы видели ранее, и оно не совпадает с нарисованным в программе.

Для записи данных в ПЗУ нужно ввести в поле представления данных в 16-ном формате необходимый массив байтов, а затем нажать кнопку «Запись». Программа начнёт запись данных в микросхему флеш-памяти. Светодиодный индикатор RUN на программаторе загорится оранжевым цветом. По завершении записи программа проверит успешность записи, сверив переданный массив с содержимым в памяти микросхемы, а индикатор погаснет.

Можно убедиться в том, что данные успешно записаны, отключив программатор от компьютера, а затем подключив его и заново считав содержимое ПЗУ.

Можно сохранить считанный из ПЗУ массив данных в файл. Для этого нужно просто нажать кнопку «Сохранить» и указать желаемое имя файла. А можно, наоборот, загрузить в память данные из файла, нажав кнопку «Открыть».

Как правило, расширения файлов для хранения данных ПЗУ – *.bin, *.hex и *.rom.

Скачать программу и драйверы для программатора Ch441A

soltau.ru

Многофункциональный программатор на Ch441A

Для программирования различных FLASH и EEPROM микросхем 24-25 серий, купил на Али многофункциональный программатор, на микросхеме Ch441A. Данная микросхема является универсальным конвертером, который может реализовать на USB шине: UART, EPP (можно подключить через него LPT принтер), I2C и SPI. Используя SPI-интерфейс, можно прошивать некоторые микроконтроллеры Atmega. В данной статье я постараюсь рассказать по максимуму про это устройство.

Мой вариант программатора, купил за $2.64.

Промышленностью выпускаются различные варианты, отличающиеся в основном наличием различных дополнительных контактов и разводкой радиодеталей на плате.

На верхней стороне платы размещены: ZIF панель, контактные площадки, контакты UART и SPI интерфейса, светодиод, кварц на 12кГц (на подделках он может быть на разный номинал, из за чего программатор не будет работать) и переключатель P/S.

С обратной стороны: микросхема Ch441A, продолжение контактов SPI интерфейса и стабилизатор напряжения на 3,3В. В моём случае это 662, в других моделях программаторов может быть установлен AMS1117.

Контакты «P/S» предназначены для переключения программатора во внутренний режим (P) — контакты замкнуты, либо внешний (S) — контакты разомкнуты.

Программирование FLASH и EEPROM микросхем 24-25 серий.

Для программирования микросхем BIOS материнских плат компьютеров, ноутбуков, телевизоров, SPI флеш памяти всевозможных тюнеров (ресиверов) и роутеров (маршрутизаторов), программатор должен работать в режиме P (контакты  P/S замкнутые).

Для программирования микросхем в DIP корпусе необходимо поднять ручку-фиксатор ZIF панели и установить микросхему в пазы, согласно ключу.

В зависимости от серии микросхемы (24хх/25хх), ключи разные и указаны на маркировке. После установки нужно опустить ручку-фиксатор, что бы зафиксировать микросхему.

Для программирования микросхем в корпусах SOP8 и SOP16, применяются контактные площадки, разведённые на плате программатора.

К этим площадкам можно припаивать программируемую микросхему, либо прижимать прищепкой, как это делаю я.

Когда нет возможности выпаять программируемую микросхему из платы, можно запрограммировать чип «без выпаивания», для этого придётся докупить «прищепку».

Неправильная установка программируемой микросхемы может привести к поломке программатора, как правило сгорает стабилизатор на 3,3 вольта и программатор перестаёт определять микросхемы.

Операцию, по установке микросхем в программатор, следует производить при отключенном от компьютера последнего.

Установив микросхему, подключаем программатор к USB-порту компьютера.

В «Диспетчере устройств» обнаружится неизвестное оборудование «USB Device«.


Необходимо установить драйвер (архив Ch441PAR_drivers.rar).

Скачать с Яndex-диска Скачать с MEGA Скачать с облака mail@ru

После установки, устройство будет определятся как «USB-EPP/I2C…Ch441A«

Для прошивки микросхем можно использовать русифицированную версию программы «Ch441A Programmer 1.29«

Скачать с Яndex-диска Скачать с MEGA Скачать с облака mail@ru

Приведу несколько примеров подключения различных микросхем 25-серии к программатору.

Флеш-память Spansion S25FL032, выпаянная с роутера TP-Link TL-WR741, определилась корректно.

Флеш-память с китайской USB-флешки (подделка на 16-гигабайтную). Определился чип Gigadevice GD25Q16.

Флеш-память Winbond W25Q32FV, выпаянная с роутера Huawei WS 319, автоматически определилась как W25Q32BV.

Пришлось нажать кнопку «Детект» и в выпавшем списке выбрать свою микросхему, нажимаем «Выбор«.

Поскольку моя микросхема была выпаяна с роутера, мне нужно сосчитать с неё дамп. Для этого нажимаем «Читать» и ждём, пока он сосчитается.

Прогресс считывания дампа отображается в нижней шкале слева, в процентном соотношении.

Для сохранения дампа воспользуемся соответствующей кнопкой, нажимаем «Сохранить«.

Для загрузки сохранённого ранее дампа в микросхему, нажимаем «Открыть» и выбираем необходимый файл дампа, дамп откроется в программе для прошивка.

Для заливки дампа нажимаем «Записать чип«. Прогресс записи так же будут отображаться в процентном соотношении.

После прошивки желательно проверить корректность записанных в микросхему данных. Для этого воспользуемся пунктом «Проверка«. Производится проверка данных в микросхеме, с дампом открытым в программе.

Если данные записались корректно, об этом сообщит соответствующее сообщение.

В противном случае появится другое сообщение.

Если понадобится стереть микросхему, нужно воспользоваться пунктом «Стирание«.

После стирания чипа его желательно проверить на пустышку, для этого нажимаем на пункт «Пустые«.

Если чип действительно пустой, об этом сообщит соответствующее окно.

Если допустим чип будет защищён от стирания, то проверка на пустышку не пройдёт. В моём случае с микросхемой W25Q32FV так и вышло. Чип якобы стирался, но тест на пустышку не прошёл. Данный программатор не снимает защиту от стирания, для этого нужен более дорогой программатор. Проще купить новую микросхему, что я и сделал.

 

Использование программатора Ch441A для устройств с SPI-интерфейсом.

SPI — последовательный интерфейс позволяющий подключать к микроконтроллерам различную периферию: дисплеи, датчики, карты памяти, флеш-память. Так же через этот интерфейс можно внутрисхемно программировать некоторые микроконтроллеры Atmega. Внутрисхемно значит не выпаивая их с целевой платы. Подобным образом я программировал на плате микроконтроллер Atmega8, в самодельном металлоискателе «Шанс». На тот момент у меня не было подобного программатора и я собирал программатор Громова, который подключал к COM-порту компьютера. Для тех у кого нет COM-порта, программатор на Ch441A как раз к стати. С помощью него можно так же прошивать: Atmega16; Atmega32; Atmega64; Atmega128; Atmega8515; Atmega8535; Atmega48; Atmega88; Atmega168; AT89S51; AT89S52.

Контакты SPI-интерфейса присутствуют на плате: 3.3, MOSI, CLK, MISO, CS, GND.

Для прошивки AVR можно использовать русифицированную программу от разработчиков:

Скачать с Яndex-диска Скачать с MEGA Скачать с облака mail@ru

Использование программатора Ch441A в качестве конвертера USB — UART (TTL).

Данный режим будет полезен, если нужно прошить плату Arduino, роуреры или любое другое устройство, использующее для этого последовательный порт UART. Для этих целей конечно же существуют специальные переходники, например на Ch440G или PL2303HX, но их может не оказаться в наличии. Кроме того, если у вас имеется программатор на Ch441A, то совсем не обязательно покупать отдельный переходник USB – UART. Так же в переходниках на Ch440G и PL2303HX может отсутствовать вывод DTR, для прошивки Arduino Pro mini. Имея данный вывод, не нужно нажимать кнопку Reset на плате, при заливке скетча. На плате программатора Ch441A, вывод SPI порта MOSI, превращается в DTR.

Для переключения программатора в режим UART нужно убрать перемычку P/S.


При подключении к компьютеру в «Диспетчере устройств» обнаружится неизвестное оборудование «USB Device«.

Необходимо установить драйвер (архив Ch441SER_drivers.rar).

Скачать с Яndex-диска Скачать с MEGA Скачать с облака mail@ru

После установки, устройство будет определятся как «USB-SERIAL Ch441A» в скобках будет указан номер виртуального COM-порта.

Следует отметить, данный программатор можно подключать только к 5 вольтовым платам Arduino, поскольку он использует уровни 5 вольт! Это же касается и других устройств, для которых нужен UART переходник.

Более подробно, как использовать программатор в качестве UART, можно прочитать на примере подключения к Arduino Pro mini.

 

Использование программатора Ch441A в качестве виртуального LPT порта, для подключения старых принтеров.

Если у вас остался в кладовке старый принтер или сканер с LPT портом, а на компьютере нет этого порта, с применением программатора на Ch441A можно реализовать виртуально этот порт.

Статья в наполнении…

radiolis.pp.ua

Программатор — Википедия

Материал из Википедии — свободной энциклопедии

Программатор ПЗУ с ультрафиолетовым стиранием

Программа́тор — аппаратно-программное устройство, предназначенное для записи/считывания информации в постоянное запоминающее устройство (однократно записываемое, флеш-память, ПЗУ, внутреннюю память микроконтроллеров и ПЛК[1]).

По типу микросхем[править | править код]

Универсальные программаторы могут поддерживать все вышеперечисленные типы.

По сложности[править | править код]

Если радиолюбителю нужно единожды запрограммировать микроконтроллерное устройство, существует возможность обойтись простейшим программатором, подключаемым к COM-, LPT-порту или USB. Например, самый простой программатор для микросхем AVR — это кабель из шести проводов и четырёх резисторов (так называемый программатор PonyProg)[2].

Для радиолюбителей, занимающихся разработкой микропрограмм, существуют более сложные программаторы — такие устройства часто содержат свой микроконтроллер. Подобные программаторы удобны тем, что после работы переводят свои выходы в Z-состояние, и запрограммированное устройство можно испытывать, не отключая программатора. Такие программаторы, как правило, работают с одним-двумя семействами микросхем[3]. При самостоятельном изготовлении программатора такого класса может возникнуть «проблема курицы и яйца» — если в схеме программатора присутствует микроконтроллер, то и его необходимо запрограммировать при отсутствии готового программатора[3]. Для её разрешения приходится отдавать микросхему владельцу готового программатора, либо изготавливать простейший программатор для подключения к COM- или LPT-порту компьютера.

В конструкторских бюро и лабораториях применяются универсальные программаторы. Поскольку в таких устройствах каждый из выводов разъёма (а этих выводов может быть до сотни) может подавать на микросхему напряжения от 0 до 27 В с точностью в 0,1 вольт и частотами до 40 МГц, универсальные программаторы бывают очень дороги — до нескольких тысяч долларов. Зато при появлении новой микросхемы достаточно добавить её поддержку на программном уровне[источник не указан 3369 дней].

По подключению микросхемы[править | править код]

Параллельные программаторы содержат разъём, в который и вставляется программируемая микросхема. Внутрисхемные пригодны только для тех микросхем, в которых поддерживается внутрисхемное программирование, то есть позволяют прошивать микросхему, не вынимая её из устройства.

При покупке параллельного программатора стоит обратить внимание на качество разъёма, в который устанавливается микросхема. Обычный одноразовый разъём долго не прослужит; программатор должен иметь цанговые разъёмы — а ещё лучше ZIF. В дорогих программаторах есть несколько разъёмов — под разные виды корпусов.

По подключению к компьютеру[править | править код]

Первые программаторы были автономными — для набора прошивки имелась клавиатура или коммутационная панель. С распространением ПК такие программаторы были полностью вытеснены подключаемыми к компьютеру — специальная программа (которая также называется программатором) передаёт прошивку с компьютера, а программатору остаётся только записать её в память микросхемы.

Для подключения программаторов могут применяться:

Стоит заметить, что в самых простых параллельных и последовательных программаторах управляющему ПО приходится напрямую управлять логическим уровнем на выводах порта (на жаргоне электронщиков «дрыгоножество» или bitbang). Такое прямое управление в Windows NT запрещено, это обходится установкой специализированного драйвера; через адаптеры USB→COM bitbang-программаторы работают крайне медленно (единицы-десятки байт в секунду). Микроконтроллерные программаторы полностью поддерживают протокол COM- или LPT-порта и поэтому свободны от этих недостатков.

Специализированные платы изредка применялись до появления USB, так как позволяли достичь максимальных скоростей обмена данными. Впрочем, одновременно они делали программатор стационарным.

Современные программаторы подключаются через USB (лишь простые дешёвые конструкции используют COM- или LPT-порты). Высокопроизводительные промышленные программаторы используют Ethernet [пример?].

По дополнительным функциям[править | править код]

(Здесь указаны как аппаратные, так и программные функции.)

  • Наличие программного обеспечения под распространённые платформы (обычно под Windows и Linux; остальные ОС среди разработчиков непопулярны).
  • Проверка правильности подключения ещё до попытки стереть микросхему.
  • Проверка исправности программатора.
  • JTAG-адаптеры, пригодные одновременно как для программирования, так и для отлаживания прошивок.
  • Автономные (полевые) программаторы имеют компактные размеры и содержат внутреннюю память для хранения прошивки. Такие программаторы предназначены для обслуживания техники прямо в местах её установки (подчас труднодоступных).
  • Встроенный HEX-редактор, позволяющий откорректировать записанную в микросхеме информацию.
  • Возможность самостоятельного обновления прошивки самого́ программатора.
  • Возможность одним нажатием кнопки выполнить некоторую последовательность действий — например, стереть, проверить стирание, записать, проверить правильность записи и установить конфигурационные биты (так называемое автоматическое программирование).
    • В программаторах для массового программирования может применяться скриптовый язык, на котором можно реализовать, например, автоинкремент серийных номеров — таким образом, каждая микросхема будет иметь уникальный номер.

ru.wikipedia.org

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *