Программатор микросхем PSoC,
подключаемый к LPT порту компьютера.

(Programmer Type3 Enhanced)

Поддерживается практически все семейство PSoC, включая серию CY8C29xxx.
Есть режим Power-On Reset, что дает возможность программировать 8-выводные микросхемы.
На плате присутствует панелька под 8-выводные микросхемы и разъем для внутрисистемного программирования внешних устройств (ISSP).
Программу, работающую с этим железом, а также информацию о прототипе можно взять здесь (zip-архив 151 кБ).


Краткое описание схемы

Электрическая схема программатора показана ниже. Она практически полностью повторяет схему «Programmer Type3», предложенную Ajithalayam из Индии. На плате появилась панелька под корпус DIP8 и дополнительные контакты для макетирования.

Устройство выполнено на основе буферной микросхемы CD4050 (отечественный аналог К561ПУ4). Диоды D1...D4 служат для перевода линий SCLK и SDATA в высокоимпедансное состояние. Резисторы R2...R5, «перекочевавшие» из оригинала, призваны, по всей видимости, улучшить переходные процессы в этих линиях, но все прекрасно работает и без них. Поскольку моя плата неоднократно модифицировалась, то исторически остались только R2 и R3. Ключ Q1 подает питание как на программируемую микросхему, так и в разрабатываемое устройство, которое соединяется кабелем через коннектор J2. С помощью этого же ключа осуществляется и вход в режим программирования «Power-On-Reset». Резистор R8 служит для устойчивого вхождения в этот режим – он обеспечивает быстрый разряд конденсатора C2, формируя достаточно резкий спад напряжения питания. В качестве Q1 подойдет любой p-n-p транзистор, но лучше применять транзисторы с малым напряжением насыщения (типа КТ529).

С помощью микросхемы CY8C2x143, вставленной в панельку J4, и внешних цепей, подключаемых к коннектору J5, можно макетировать простейшие устройства, не изготавливая специально для них печатную плату.

 

Ниже показана топология печатной платы и ее фотографии. Она имеет размеры 28 х 67 мм и эволюционно изменялась, о чем упоминалось выше.


Небольшое улучшение 

При эксплуатации программатора выяснилось, что не все компьютеры при установке линий LPT-порта в состояние лог.1. выдают напряжение от 4,5 В и выше. Это приводит к тому, что ключ Q1 остается открытым, и на программируемую микросхему всегда подается напряжение питания. Программирование в режиме «Power-On Mode» при этом становится невозможным.

Исправить ситуацию поможет небольшое изменение электрической схемы, как показано на рисунке справа. Светодиод LED3 сдвигает порог переключения транзистора Q1 вниз примерно на 1,9 В, обеспечивая устойчивую работу устройства с 3-х вольтовыми LPT-портами. Дополнительно этот светодиод будет сигнализировать о подаче напряжения питания на микросхему.

Плату, показанную выше, я модернизировал перерезанием проводника между выводом R1 и базой Q1. Здесь на печатной плате имеются две неиспользованные контактные площадки, которые я отделил от общего провода и использовал под установку оранжевого светодиода LED3. SMD-резистор R1-2 впаян между печатными проводниками. Разумеется, при повторении конструкции откорректируйте соответствующим образом топологию печатной платы.


Работа с программатором

Программатор предусматривает два режима работы – в качестве самостоятельного отлаживаемого устройства (с установленной в панельку микросхемой PSoC и цепями, подключенными к коннектору J5), либо для программирования внешних устройств через разъем ISSP (J2). Программа не различает эти режимы, поэтому следует позаботиться о предотвращении конфликтов – при использовании ISSP не забывайте извлекать микросхему из панельки, и наоборот – при вставленной микросхеме отключайте внешнее устройство от программатора.

Схема подключения программатора к отлаживаемому устройству посредством ISSP показана справа. В идеале, на печатной плате отлаживаемого устройства следует предусмотреть 5-контактный разъем или контактные площадки. В крайнем случае, на период отладки можно просто подпаяться к соответствующим проводникам. К выводам P1[0] и P1[1] микросхемы могут подключаться кварцевый резонатор или цепи отлаживаемого устройства. Первый программированию не мешает, а вот о блокировке последних надо позаботиться схемотехнически (они не должны нагружать линии в процессе программирования). Более подробно о реализации ISSP говорится в документе AN2014 – Design for In-System Serial Programming.

Еще следует знать, что существует два режима вхождения в режим программирования – при подаче питания на микросхему (так называемый режим «Power-On Mode»), либо по сигналу сброса («Reset Mode»). У 8-выводных чипов режим «Power-On Mode» является единственно возможным, поскольку вход сброса XRES отсутствует. Остальные микросхемы могут программироваться двояко. При использовании режима «Power-On Mode» емкость конденсаторов в цепи питания должна быть минимальной, иначе микросхема просто «не выйдет на связь».

Протоколы программирования открыты и подробно описаны в документах AN2026a(b) «In-System Serial Programming (ISSP™) Protocol». Они основаны на посылке «векторов» – уникальных последовательностях, инициирующих процедуры начала стирания, чтения, программирования, верификации, подсчета контрольной суммы и защиты от несанкционированного чтения. Всем этим процедурам соответсвуют кнопки «Erase», «Read», «Program», «Verify», «ChkSum» и «Secure» в программе cyp.exe, которая находится в архиве по ссылке в начале статьи.

После старта этой программы появится окно, показанное на рисунке справа. Первым делом программа пытается идентифицировать микросхему PSoC.

Если это произошло успешно то в окне Device ID появится тип микросхемы, в противном случае – сообщение «Device not found». Последнее означает отсутствие связи с микросхемой, что может быть вызвано разными причинами – программатор попросту не включен (не подано питание), отсоединены кабели, неправильные настройки программы и т.п. После ликвидации этих причин следует повторно запустить программу, либо нажать, например, на кнопку «ChkSum» – произойдет повторная идентификация, и в случае успеха – подсчет контрольной суммы.

Скорее всего, сообщение об отсутствии связи у вас все-таки появилось, поэтому кнопкой «Settings» вызовите окно настроек.

Прежде всего, в раскрывающемся меню «Port» выберите адрес LPT-порта компьютера, с которым будете работать. Может случиться так, что физически этот порт присутствует на материнской плате, но не включен в установках BIOS-а. Тогда войдите в BIOS, задайте режим «Normal», а также заодно посмотрите адрес этого порта.

Далее, из меню «Hardware Type» выберите тип программатора «TYPE 3» (наша схема соответствует этой модификации), а в панели «Program Mode Entry» задайте метод программирования, с которым будете работать – об этом говорилось выше (не забывайте правильно его устанавливать!).

Параметр «Delay» служит для приведения временных параметров процессов к норме, в зависимости от быстродействия примененного компьютера. Практически на всех машинах (тестировались от 486-х до Pentium 2,4ГГц) этот параметр можно сделать минимальным (1 мкс), что соответствует максимальной скорости обмена данными между компьютером и программируемой микросхемой. При использовании длинных кабелей параметр «Delay», возможно, придется увеличить. Мой LPT-кабель имеет длину порядка 70 см, а «хвостик» ISSP – 20 см.

Галочка «Verify after Program» служит для включения автоматической сверки (верификации) исходного кода с кодом, зашитым в микросхему.

После программирования микросхема PSoC остается в незапущенном состоянии, поэтому стартовать зашитую в нее микропрограмму надо принудительно. Делается это одним из способов – либо кратковременным снятием питания с микросхемы, либо подачей сигнала сброса. В основном окне программы для этого предусмотрены две галочки – «Power» и «Xres». В зависимости от способа, первую надо снять и заново установить, вторую – установить, а затем снять.

Обратите внимание на линии SCLK и SDATA. В состоянии ожидания эти линии должны находиться в высокоимпедансном состоянии, что должно обеспечиваться подачей напряжения обратной полярности на цепочки диодов D1D2 и D3D4 (на выходах U1.2 и U1.5 должны быть лог.0, на выходах U1.3 и U1.6 – лог.1). Это критично в тех случаях, когда к ножкам P1[0] и P1[1] подключен кварцевый резонатор, либо эти выводы задействованы в схеме. Описываемая программа (версия 1.5), в принципе, поддерживает эти состояния, хотя в более ранних версиях с этим были проблемы. Имейте в виду, что до старта и сразу же после старта программы состояние этих линий может быть неопределенным.

Ну и напоследок предостерегу от подключения к коннекторам J2 «ISSP» и J5 «User» излишне энергопотребляющих устройств – максимальный потребляемый ток определяется возможностями транзистора Q1 (указанный в схеме прибор выдерживает токи только до 0,1 А)!

 


antiradio.narod.ru/psoc
Дата создания документа: 05.03.2007. Последнее обновление: 24.09.2008.

Сайт создан в системе uCoz