Программатор Orange3
Часто Задаваемые Вопросы.



Версия 2.2 (10.02.2007)

Q: Что значит опция Force write и зачем она нужна?
A: Это значит "принудительная запись" если она включена, производится запись всего буфера, иначе производится предварительное чтение. Запись выполняется только по тем адресам, где прочитанное значение не совпадает с буфером. Это позволяет в некоторых случаях значительно ускорить запись.

Q: Чем отличется "Verify during write" от "Verify After write"?
A: Первое выполняет проверку после записи каждого слова, а второе после записи всей области памяти. Проверка после записи более надежна, зато проверка во время записи быстрее покажет, что запись выполняется с ошибками. Как правило, включать обе опции сразу нет необходимости.

Q: Почему Orange меняет местами старший и младшие байты для 93с46 и других 16-битных EEPROM при записи в файл?
A: В отличие от некоторых других программаторов, Orange использует Intel-подобный формат (младший байт по младшему адресу). В данном случае это более корректно, что подтверждается тем, что те микросхемы, которые имеют 8 и 16 битный режим, читаются в обоих режимах одинаково. Если Вас такой порядок не устраивает, есть 3 способа:
1) Установить перестановку байтов в опциях файлов. Однако постоянно пользоваться этим режимом не рекомендуется для сохранения совместимости.
2) Воспользоваться командой Swap bytes, она переставляет байты в буфере.
3) Исправить соответствующий HPL.

Q: У меня не работает модуль XX с EEPROM YY фирмы ZZ, что делать?
A: 1) Убедиться в исправности программатора
2) По возможности проверить в исправности микросхемы на другом программаторе.
3) Сравнить модуль с алгоритмами чтения/записи, рекомендуемые производителем. EEPROM одинаковых серий у разных фирм могут иметь существенные отличия.

Q: Как мне написать свой HPL модуль и добавить его в меню?
A: Сначала спросите - может он уже написан до вас :)

  1. Определите расположение выводов EEPROM - если оно совпадает с каким-нибудь существующим, возьмите подходящий модуль за основу, если нет, начинайте писать с самого начала. Не забудьте сделать копию перед редактированием какого-либо модуля. 2) Выберите имя будущего модуля. Как правило, существует несколько EEPROM разного объема с совместимым форматом команд. Рекомендуется выбирать для названия EEPROM максимального объема. Например, для группы 24C04 (512x8), 24C08 (1024x8), 24C16 (2048x8) лучшим названием будет 24C16.HPL. Все модули хранятся в каталоге \HPL.
  2. Добавьте новый модуль в меню. Для этого необходимо вставить в orange.cfg строку описания, например: CHIP=93C46,64x16,93C46.hpl Имя EEPROM, емкость, имя модуля.
  3. Опишите начальную секцию. Для нестандартного расположения выводов задайте пока параметр SOCKET=0 и сообщите автору - он включит эту таблицу выводов в следующую версию драйвера и присвоит порядковый номер. Опишите выходы и входы чипа в соответствии с подключенными выводами программатора. Задайте параметр CDELAY, определяющий максимальную тактовую частоту. Не стоит увлекаться экспериментальным снижением этого параметра до минимальной величины - реальная задержка зависит также от скорости процессора и LPT порта. Лучше установить рекомендуемое производителем значение.
  4. При необходимости создайте секции [INIT] и [END] и опишите в них начальные установки и действия после включения питания и перед выключением соответственно.
  5. Опишите секцию [READ]. Как правило, она состоит из цикла выдачи команды, одного или нескольких циклов выдачи адреса и цикла чтения данных.
  6. Секцию записи [WRITE] можно делать, когда чтение уже написано и отлажено.

Q: А зачем вообще нужны пользовательские секции и что с ними делать?
A: Для выполнения "нестандартных" операций. Например, стирание, чтение/запись дополнительных регистров и т.п.

Q: Что такое "Pin Tester"?
A: Это режим ручной установки/проверки пинов. Полезен для настройки программатора. Кроме того, он может использоваться для отладки различных устройств.

Q: Почему модули для Orange2 могут не работать с Orange3?
A: Схемотехника программатора имеет некоторые отличия от Orange2. В старой версии для Microwire и SPI интерфейсов использовался общий канал данных, DI и DO соединялись через резистор. В Orange3 для входа данных используется отдельный пин. Совместимость обеспечивается прозрачным перенаправлением запросов в драйвере. Для его корректной работы должен быть правильно установлен параметр "SOCKET" в модуле.

Q: Что такое ZIF?
A: Zero Insertion Force - панель с нулевым усилием (рычажная).

Q: Как деинсталлировать программу?
A: Windows-версия Orange не делает записей в системном реестре и не устанавливает свои библиотеки. Для деинсталляции достаточно удалить каталог с программой.

Q: В чем причина неустойчивой работы на некоторых версиях Windows XP?
A: Причина в том, что XP может периодически самостоятельно сканировать LPT порт для определения подключенных устройств. Для исправления следует добавить в реестр запись из файла xplpt.reg (каталог DOC программатора).

Q: Какой кабель нужен для программатора?
A: Используется стандартный экранированный удлиннительный LPT кабель с разъемами DB25 "мама"-"папа". Кабель распаян 1:1.

Q: Подскажите, как читать и писать микросхему программатором без ее выпаивания из платы?
A: Особенности внутрисхемного программирования описаны в статье.

Q: Почему не сохраняются текущие настройки при повторном запуске программы?
A: Возможно программа запускается с CD, либо другого защищенного от записи носителя. Или программа была скопирована целиком на жесткий с такого носителя. В этом случае следует вручную снять с файла orange.dat атрибут "Только для чтения" (Read only).