Смекни!
smekni.com

Прошивка чипа картриджа Samsung SCX-4200 (стр. 7 из 11)


Таблица 1 – Названия и функциональные назначения выводов порта RS232

Номер контакта Название сигнала Расшифровка Тип линий
DB25 DB9
2 3 TxD Transmitter Data – передатчик данных Выходная
3 2 RxD Receiver Data – приемник данных Входная
4 7 RTS Request To Send – запроспередачи Выходная
5 8 CTS Clear To Send – сброспередачи Входная
6 6 DSR Data Set Ready – готовность данных Входная
7 5 SG Signal Ground – сигнальная земля -
8 1 DCD Data Carrier Detect – обнаружение несущей Входная
20 4 DTR Data Terminal Ready – готовность терминала Выходная
22 9 RI Ring Indicator – индикатор звонка Входная

Основными линиями, по которым осуществляется обмен данными, являются две: TxD – линия, по которой из компьютера передаются данные во внешнее устройство, и RxD – линия, по которой компьютером принимаются данные из внешнего устройства.

Линии DTR и RTS являются выходными. Это означает, что уровнями сигналов на этих линиях можно управлять, устанавливая биты соответствующих регистров в нуль или единицу программным способом. Линии CTS, DSR, DCD и RI являются входными. Это

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

Необходимо отметить следующие свойства линий TxD и RxD.

Линия TxD является выходной. Помимо того, что по ней передаются данные, в отсутствие передачи состоянием этой линии можно также управлять программно, т.е. устанавливать в единичное или нулевое состояние. Линия RxD является входной. Однако прочитать состояние этой линии (как линий CTS, DSR, DCD и RI) при отсутствии передачи нельзя.

Кроме того, заметим, что линии DTR, RTS, CTS, DSR, DCD и RI называют еще линиями квитирования (иногда модемными, так как они используются в модемах). Существует как множество алгоритмов обмена по RS232, в которых эти линии (или некоторые из них) используются, так и множество алгоритмов обмена, в которых эти линии не используются вообще (задействованы только линии RxD и TxD).

В микроконтроллере обмен по интерфейсу RS232 осуществляется по линиям TxD (передатчик) и RxD (приемник). Уровни напряжения на этих линиях соответствуют стандартным (цифровым) уровням напряжения микроконтроллера. Это означает, что уровень напряжения логической единицы соответствует напряжению питания микроконтроллера C или 5 В), уровень напряжения логического нуля – нулевому напряжению (или «земле»). Обычно уровни напряжений питания и земли называют TTL-уровнями, хотя в настоящее время это понятие значительно видоизменилось (с электрической точки зрения), а аббревиатура TTL транзисторная логика) давно утратила свой первоначальный смысл. Отметим, что для сопряжения со стандартными уровнями напряжения сигналов на линиях интерфейса RS232 (приблизительно равными ±10 В, как было указано ранее) необходимо использовать преобразователи уровней RS232.

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

3. Программное обеспечение для работы с программатором

3.1 Программа PonyProg

Программа PonyProg – это открытый проект. Для распространения этой программы и еще нескольких проектов в интернете создан специальный сайт http://www.lancos.com. Программа также распространяется с открытой лицензией (GNU), то есть вместе с текстом программы, который разрешается изменять по своему усмотрению. Однако в пакет программы входит специальная библиотека, которая содержит текст всех основных функций, обеспечивающих процесс программирования микросхем.

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

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

При запуске программы PonyProg открывается окно заставки и раздается фирменный звук – лошадиное ржание. Если вы не желаете слушать его каждый раз при запуске, поставьте галочку в поле «DisableSound» (выключить звук). Нажмите «Ok». Рекламная заставка закроется, и откроется основная панель программы (см. рис. 2.9).

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

Рисунок 5 – Основная панель программы PonyProg

Первое, что нужно сделать сразу после включения программы, – выбрать тип микросхемы, которую вы собираетесь программировать. Для этого в верхней панели инструментов имеются два выпадающих меню. Одно называется «Выбор семейства микросхем» (Select device family), а второе – «Выбор типа микросхем» (Select device type). Поля не подписаны. Названия появляются в виде всплывающей подсказки при наведении курсора мыши на соответствующее поле.

В поле выбора семейства выберите «I2CBus 8biteeprom», а в поле выбора типа – требуемый тип микросхемы. Для всех наших примеров это будет 2404. Второй способ, при помощи которого также можно выбрать семейство и тип микросхемы, – воспользоваться меню «Устройство», как показано на рисунке 6. Выбранный тип микросхемы автоматически сохраняется, и при повторном запуске программы вызывается снова.


Рисунок 6 – Выбор типа микросхемы

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

Рисунок 7 – Окно настройки ввода-вывода

В этом окне вы должны выбрать порт, к которому подключен ваш программатор. Кроме того, в этом окне можно проинвертировать любой из управляющих сигналов программатора, что бывает полезно при работе с нестандартными схемами. Выбираем параллельный порт (Parallel). Если ваш компьютер имеет несколько LPT-портов, выберите конкретный порт (обычно LPT1). В выпадающем списке выберите способ программирования. Это будет последовательное программирование по ISP-интерфейсу.

Вторая процедура, которую нужно выполнить хотя бы один раз при первом включении программы, – это калибровка. В процессе калибровки программа настраивает свои процедуры формирования временных интервалов под конкретный компьютер. Цель калибровки – повышение точности формирования интервалов времени. При выполнении этой процедуры компьютер не должен выполнять никаких других программ. Закройте все открытые окна и выгрузите все программы, работающие в фоновом режиме. Затем выберите команду «Калибровка» (см. табл. 2.7). Появится окно предупреждения. Для старта процесса калибровки нажмите в этом окне кнопку «Ok». Процесс калибровки выполняется несколько секунд.

После настройки и калибровки все готово для программирования микросхем. Для начала нам нужно загрузить данные из файлов, полученных в результате трансляции:

– файл программы для записи во Flash-память;

– файл данных для записи в EEPROM.

Для временного хранения этих данных программатор использует окно данных. Одно окно данных хранит один вариант задания (программа плюс данные). Запущенная программа PonyProg обязательно содержит хотя бы одно такое окно. Пустое окно автоматически создается при запуске программы. После загрузки информации (программы или данных) в окне появляется дамп памяти. Дамп – это широко распространенный способ представления цифровых данных. Он представляет собой таблицу шестнадцатеричных чисел, записанных рядами по 16 чисел в ряду, как видно из рисунка 8.


Рисунок 8 – Дамп памяти

В начале каждого ряда записывается адрес первой его ячейки. Затем, правее, эти же шестнадцать чисел повторяются в символьном виде. То есть вместо каждого числа записывается соответствующий ему символ в кодировке ASCII.

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