Каталог статей

Главная » Все схемы » Теория » Изучаем микроконтроллеры

Выбранная схема!!!


5208
ПРОШИВКА РАЗРАБОТКА И ОТЛАДКА УСТРОЙСТВ НА МК ЧАСТЬ 2

ПРОДОЛЖЕНИЕ >>>>>>>

Иногда встречаются файлы НЕХ-подобного формата, в которых принцип записи адресов и данных мало отличается от принятого в Intel HEX, но признаками начала строки вместо двоеточия служат, например, дробная черта, знак минус, буква S и т. п. Используются и другие алгоритмы подсчета контрольной суммы. Она может, например, состоять из двух байтов.

Большинство программаторов воспринимает файлы и так называемого "сырого" двоичного (raw binary) формата. Они, как правило, носят имена с расширением .bin и содержат точную двоичную копию содержимого памяти МК. Единственное преимущество подобных файлов — минимальный объем, занимаемый на диске компьютера, главный недостаток — отсутствие каких-либо адресов, контрольных сумм и других дополнительных сведений. При попытке просмотреть такой файл с помощью текстового редактора чаще всего не удастся увидеть на экране ничего, кроме бессмысленного набора символов. Но иногда они складываются в тексты сообщений, выводимых МК в процессе работы на индикатор, в название программы или товарный знак ее разработчика (собственника). Никогда не пытайтесь с помощью текстового редактора внести в двоичный файл какое-либо, даже самое незначительное изменение, а на предложение того же редактора со-хранить этот файл всегда отвечайте отрицательно Иначе хранящаяся в нем программа может оказаться безвозвратно испорченной.

HEX- и двоичные файлы — конечный продукт ассемблеров, трансляторов языков высокого уровня и других средств разработки программ Однако на разных этапах своей работы все эти программные средства создают и используют большое число других фай-лов, содержащих промежуточные результаты трансляции, данные о размещении в памяти МК программы в целом ее фрагментов и переменных, об установленных (в том числе по умолчанию) режимах трансляции, отчеты о ходе работы и много другой полезной информации.

Кроме файла листинга (.lst) — полного текстового отчета о выполненной трансляции программы, больше всего информации о ней содержат так называемые "объектные" файлы с расширениями .obj. out, .cod и некоторыми другими, однако их форматы очень разнообразны и сложны Их описание заняло бы слишком много места К тому же программисту обычно нет необходимости специально "заглядывать" в эти файлы, все, что нужно, система разработки записывает, читает и выводит на экран самостоятельно. Прибегают к этому лишь в самых крайних случаях, когда другие способы найти сложную ошибку и устранить ее последствия, ис­черпаны или когда приходится восста­навливать частично утраченные в ре­зультате сбоя данные.

Прежде чем перейти собственно к программаторам, посмотрим, какими бывают МК с точки зрения занесения в них программы Первая категория — МК, запрограммированные на заводе. Некоторые из них оснащают так называ­емым масочным ПЗУ. В технологичес­ком процессе изготовления микросхе­мы маска — примерно то же, что и фото­шаблон при изготовлении печатной платы. Разработка и изготовление мас­ки недешевы, а чтобы внести в програм­му самое незначительное изменение, требуется делать новую. Поэтому ма­сочные МК окупаются лишь при массо­вом производстве однотипных изделий с многократно "обкатанной" програм­мой, например, контроллеров бытовых приборов широкого применения. Ясно, что использовать такой МК не по прямо­му назначению невозможно.

Другая разновидность МК — обыч­ные однократно программируемые при­боры (OTPOne Time Programmed, они будут рассмотрены ниже), уже запро­граммированные на заводе-изготовителе Заказчику остается решить, что выгоднее: передать файл с исходными данными на завод и получать уже гото­вые к использованию МК или организо­вать программирование у себя. Но эта проблема уже не техническая, а эконо­мическая.

Основную массу однократно про­граммируемых МК поставляют потреби­телю "чистыми”, готовыми к приему лю­бой программы. Таковы изделия семей­ства PICmicro, имеющие в обозначении буквы С или CR (например, PIC12C508, PIC16CR84). Запрограммировать их можно всего один раз без гарантиро­ванной возможности что-либо откор­ректировать или просто исправить ошибку. (Оговорка "гарантирован­ной  - не случайна, нередко, особенно в любительской практике, кое-что изме­нить все таки удается).

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

Лучше воспользоваться тем, что воз­можность однократно изменить свое исходное состояние имеет не память в целом, а каждый разряд всех ее ячеек. Обычно после первого программирова­ния во внутреннем ППЗУ МК остается достаточно много неиспользованных, находящихся в исходном состоянии ячеек. Ничто не мешает занести в них новую программу. Проблема лишь в том, каким образом заставить МК вы­полнять эту программу вместо старой.

Тем, кто знаком с программировани­ем, поясним, как это сделать. Следует заранее побеспокоиться о том, чтобы при первом программировании в ячей­ку, с которой МК начинает выполнять программу после сброса (в большинст­ве случаев нулевая), была записана команда безусловного перехода на дей­ствительное начало программы, а одна или несколько следующих ячеек оста­лись незапрограммированными. При втором программировании старто­вую ячейку "портят'*, превращая находя­щуюся в ней команду в любую другую, с переходом не связанную, а в следую­щую ячейку записывают команду безус­ловного перехода к началу новой про­граммы. Подобным же образом удается заменить отдельную подпрограмму. Главное — предусмотреть эту возмож­ность, начиная подпрограмму последо­вательностью из команды безусловного перехода и незапрограммированной ячейки. Все это можно повторять до ис­черпания свободного места в памяти программ МК

Из сказанного следует, что повторно использовать "одноразовые” МК удаст­ся лишь тем, кто разрабатывает программы, самостоятельно строго соблю­дая определенные правила, однако нет никакого смысла придерживаться этих правил в программах, предназначенных для коммерческого использования, проще при необходимости заставить потребителя оплатить стоимость новой микросхемы. Поэтому ОТР МК. извле­ченный из какого-либо готового изде­лия, перепрограммировать, скорее все­го, не удастся. ОТП МК совершенно непригодны для отладки вновь разрабатываемых про­грамм где неизбежны многочисленные поправки В этих случаях используют их многократно программируемые анало­ги. По своим характеристикам они идентичны соответствующим однора­зовым но помещены в корпус, снаб­женный прозрачным окном над крис­таллом. Это позволяет с помощью ульт­рафиолетового излучения стереть со­держимое внутренней памяти, после чего микросхема вновь готова к про­граммированию Отличительный при­знак подобных микросхем фирмы Microchip — буквы JW в конце условного обозначения.

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

МК с FLASH-памятью программ рассчитаны на 1000 и более циклов перепрограммирования и всего в

полтора-два раза дороже однократно программируемых. Они наилучшим образом подходят для разработки опытных образцов изделий и любительского конструирования. К их числу относятся МК семейств AT89S, AT90S (AVR) фирмы ATMEL и те из PlCmicro. в названии которых имеется буква F (PIC16F84, PIC16F628).

А теперь перейдем собственно к программированию МК и программаторам. При возможностях полупроводниковой технологии, имевшихся в эпоху первых МК семейств MCS-48 (К18168Е48), MSC-51 (К1816ВЕ51), было слишком сложно и экономически невыгодно размещать на их кристаллах узлы, нужные только в процессе программирования и фактически бездействующие в дальнейшем. Поэтому основная "тяжесть" обеспечения нужных для программирования режимов ложилась "на плечи" программатора, представлявшего    собой довольно громоздкое устройство. МК приходилось подключать к нему, занимая чуть ли не все 40 выводов микросхемы.

Сегодня почти все необходимое для программирования, в том числе источники повышенного напряжения и генераторы сложных импульсных последовательностей, находится внутри самих МК. Число выводов соединяемых с программатором, сокращено до минимума. Обычно достаточно линии синхронизации, одной-двух линий для передачи последовательным кодом команд, адресов и данных и еще одной для подачи сигнала, переводящего МК в режим программирования. Справедливости ради отметим, что наряду с "последовательным" в некоторых многовыводных МК сохранен режим «параллельного» программирования, причем возможности последнего, как  

правило, шире, чем первого.

Аппаратная часть программатора во многих случаях превратилась в простой буфер, согласующий логические уровни сигналов одного из портов компьютера и МК. Сравнительно сложной она остается лишь у приборов, способных работать с программируемыми микросхемами различных типов. В них либо приходится устанавливать множество панелей (под разные микросхемы), либо предусматривать непростую систему электронной коммутации выводов единственной панели.

В любительских условиях довольно сложно изготовить полноценный универсальный программатор. Да и делать это не имеет смысла. Достаточно собрать простейший базовый блок, по мере надобности дополняя его столь же простыми переходными панелями (адаптерами) для программирования микроконтроллеров того или иного типа. Именно так построен известный многим посетителям Интернета программатор РопуРгоg2000, разработанный нашим итальянским собратом по оружию Клаудио Ланконелли. На его сайте «www.lancos.com»  помещены схемы узлов этого программатора, программное обеспечение к нему и описание пунктов экранного меню. Принципиальная схема базового блока программатора для PonyProg2000 изображена на рис. 2,  


а чертеж его печатной платы  на рис. 3     <<< СКАЧАТЬ В ФОРМАТЕ LAY>>> 


Розетку XS1 стыкуют с вилкой одного из последовательных (СОМ) портов компьютера непосредственно или через кабель длиной до 1 м в котором контакты вилки и розетки соединены "один к одному”. Учтите, что распространенный "нуль- модемный” кабель с перекрестным соединением контактов в данном случае непригоден.

Особенность блока в том, что для питания программируемой микросхемы используется выпрямленное диодами VD1, VD2, VD4 напряжение, снимаемое с выходных линий порта. Микросхема  DA1 - стабилизатор напряжения +5 В. Рекомендуемая автором микросхема LM2936-Z5 отличается предельно малым (измеряемым единицами микроампер) собственным потреблением, но как показывает практика, на ее месте с успехом работают и другие интегральные стабилизаторы в том числе отечественный КР142ЕН5А.

Можно воспользоваться и внешним 12-вольтным источником питания, подключив его к разъему Х1 и переведя переключатель SA1 в соответствующее положение. Такая необходимость возникает, когда потребляемый программируемой микросхемой ток превышает 2...3 мА, что создает слишком большую нагрузку на COM-порт. В этом случае подачей напряжения питания на программируемую микросхему управляет ключ на транзисторах VT1 и VT2.

Преобразование логических уровней сигналов на выходах порта в требуемые для программирования осуществляется простейшим способом — с помощью ограничителей напряжения из резисторов R2, R4, R5 и стабилитронов VD3, VD5, VD6. В оригинальной конструкции применены стабилитроны с напряжением стабилизации 5,1 В, не имеющие отечественных аналогов. Если в результате их замены на КС147А уровень лог. 1 окажется недостаточным (что, впрочем, маловероятно), его можно повысить, включив последовательно со стабилитронами кремниевые диоды любого типа (на рис. 2 они показаны штриховыми линиями). Заменять КС147А на КС156А не следует.

    Каскад на транзисторе VT3 инвертирует сигнал, формируемый компьютером на выводе 3 COM порта. В результате на контактах 2 и 3 вилки ХР1 образуются два взаимно инверсных импульса сброса. Используют тот. полярность которого соответствует необходимой для конкретного МК. Перемычка между выводами 6 и 7 розетки XS1 позволяет компьютеру убедиться, что программатор подключен к порту.

По цепи контакт 6 ХР1и контакт 8 XS1 в компьютер поступают считываемые из МК данные.  Кто то может резонный вопрос: каким образом входной узел COM-порта, порог нечувствительности которого к помехам согласно стандарту RS-232 не должна превышать пределы ±3 В, без всяких преобразований принимает формируемый МК  сигнал с ТТЛ-уровнями? Оказывается, оба пороговых уровня (срабатывания и отпускания) триггеров Шмита, установленных на подобных входах большинства современных ПК, находятся в интервале + 1,5...2,5 V. Отличие этих входов от обычных ТТЛ лишь в способности выдерживать без повреждения напряжение до ±25 В. С COM-портом, выполненным строго по стандарту, программатор РопуРгод2000 (как, впрочем, и многие другие) работать не будет, придется вводить в него источник отрицательного напряжения и дополнительный преобразователь уровня.

Если по каким-либо причинам подключать программатор к COM-порту нежелательно, можно воспользоваться параллельным LPT. Никаких преимуществ это не дает, так как протокол обмена данными остается прежним. Поскольку преобразования уровней не требуется, схема базового блока, подключаемого к порту LPT, очень проста (рис. 4).

"Внутреннего" питания она не предусматривает, а узел коммутации внешнего напряжения аналогичен показанному на рис. 2. Прототип этой схемы был опубликован вместе с одной из первых версий программного обеспечения РопуРгоg. К сожалению, его автор не сообщает, совместимы ли последние версии с подобным блоком. Возможны различия в выборе выводов LPT-порта для формирования и приема тех или иных сигналов.

ПРОДОЛЖЕНИЕ СЛЕДУЕТ >>>>> 

Все вопрсы на  ФОРУМ


Категория: Изучаем микроконтроллеры | Добавил: Volodya215 (13.02.2013) | Автор: Volodya215
Просмотров: 9678 | Комментарии: 1 | Теги: прошивка, часть, разработка, МК, устройств, отладка, НА | Рейтинг: 4.8/18


Всего комментариев: 1
0
1 sibor   (05.01.2014 19:21)
Спасибо! Продолжаю изучать.

Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
Жалоба

Пожалуйста оставьте свои комментарии !!!!

Имя *:
Email:
Код *:


ElectroTOP - Рейтинг сайтов
Copyright Zloy Soft (Company) © 2008 - 2016