avreal та LPT в Windows

З точки зору AVReAl поняття «Windows» розпадається на дві родини операційних систем.

Системи родини Windows 9X, наприклад, Windows 98, не вимагають встановлення драйвера доступу до LPT. При роботі в такій системі avreal працює з портами напряму.

Як досі поширена Windows XP, так і Windows 7 належать до другої родини — Windows NT. Для них потрібен драйвер DLPortIO, встановлення якого описано раніше окремо для 32-бітних та 64-бітних систем.

Для всіх версій Windows в командному рядку необхідно вказувати номер LPT або базову адресу порта, наприклад, -p1, -p378. При цьому номер порта є лише скороченням стандартної адреси, як це сказано в описові ключа -p. Вважається, що LPT1/2/3 мають адреси 378/278/3BC.

Якщо LPT-порт знаходиться на нестандартних адресах, наприклад, використовується плата розширення PCI-LPT, базову адресу можна дізнатися у властивостях порта в диспетчері пристроїв.

»»» Як дізнатися адресу LPT у Windows

avreal та LPT в Linux

На відміну від Windows лінійки NT, для роботи avreal з LPT-адаптерами в Linux/x86 (32- та 64-бітних) немає потреби в спеціальному драйвері на зразок DLPortIO.sys. На відміну від Windows 98, в Linux будь-яка програма не може просто так працювати з портами вводу-вводу, для цього необхідно налаштувати дозвіл на таку роботу.

Є два варіанти роботи — безпосередній доступ до портів вводу-виводу та робота з пристроєм паралельного порта parport. Безпосередній доступ до портів дає дещо вищу швидкість програмування, але вимагає використання привілеїв адміністратора системи під час запуску avreal, що не завжди зручно чи можливо.

Continue reading ‘avreal та LPT в Linux’ »

DLPortIO x64 та 64-bit Windows.

На жаль, драйвера та бібліотеки DriverLINX (DLPortIO.sys + DLPortIO.dll) не існує для версій Windows під архітектуру x86-64 (AMD64, Intel64). Принаймні, я такого не знаходив. Scientific Software Tools, Inc. (http://www.sstnet.com) припинила підтримку цього драйвера, передала його іншій фірмі, та й там, здається, дотепер є лише його 32-бітний варіант.
На щастя, існує комплект InpOut32 (hwinterface.sys+inpout32.dll), а також 64-бітна версія InpOutx64 з драйвером hwinterfacex64.sys.

»»» Як встановити DLPortIO в 64-бітній Windows

DLPortIO та 32-bit Windows.

Для Windows NT, Windows 2000 та 32-бітних Windows XP, Windows 7 встановлення драйвера DLPortIO.sys та бібліотеки DLPortIO.dll можна провести як звичним для більшості користувачів Windows GUI-інсталятором, так і інсталятором CLI (Command-Line Inteface), через командний файл. Враховуючи те, що користувачі avreal не цураються командного рядка, рекомендую використовувати інсталяцію з командним файлом, архів якої має майже в десять разів менший розмір — близько 17КБ замість близько 170КБ. Воно наче і несуттєво при «нинішніх інтернетах», але ембеддерам звично не розбазарювати ресурси без потреби :-) Та й сам процес встановлення мало відрізняється, адже командний файл вже написано, треба лишень його запустити.

»»» Як встановити DLPortIO в 32-бітній Windows

DLPortIO 32, DLPortIO x64 for Windows XP, Windows 7

avreal нормально працював під 64-бітними версіями Windows і раніше. Хто знав, що і як треба робити — ставив собі потрібний драйвер і програмував AVR-ки. Я вже досить давно практично постійно працюю під лінуксом, тому мене ця тема мало цікавила. А час, то є річ ще дивніша, ніж мед у Вінні-Пуха. Як тільки він є — так його відразу нема.
Нарешті я знайшов час і місце2 для того, щоб власноруч перевірити встановлення та роботу звичного для Windows 2000 та Windows XP драйвера DLPortIO під 32-бітною Windows7 та замінника цього драйвера для WindowsXP/64 та Windows7/64. Без цього мені просто важко було б викладати щось у себе на сайті. Програма dd попрацювала як слід, відновлюючи розділи з образів для чергових перевірок встановлення на «чисту» систему тим чи іншим (в тому числі правильним чи неправильним) способом.

В результаті вчора я виклав на сторінці download архіви для двох методів інсталяції DLPortIO-32 (графічний інтерфейс та командний рядок) та архів з DLPortIO-64 (командний рядок). Вже можна викачувати, ставити і працювати.
А я найближчим часом напишу про все це трохи детальніше.

місце2 — це не зноска, це піднесення до другого степеня. Треба було знайти і місце в сенсі комп’ютера, над яким так позбиткуватися, і місце на його жорсткому диску.

LPT та PnP в Windows.

Під ОС Windows avreal іноді нестабільно працює з LPT. Програмування зрідка може пройти нормально, а може в будь який момент дати збій, наприклад, synchronisation lost.

Причиною таких збоїв може бути періодичне опитування підсистемою Plug-and-Play (PnP) операційної системи Windows порта LPT з метою виявлення підключених пристроїв. Таке опитування проводиться під час завантаження системи, що добре видно по перемигуванню світлодіодів на адаптері програмування, але воно може відбуватися і під час роботи ОС. Біда в тому, що драйвер DLportIO.sys не блокує доступ до LPT від інших програм під час роботи з портом клієнта цього драйвера і підсистема PnP щиро впевнена, що порт не зайнято, тому спокійно лізе перевіряти стан LPT і порушує роботу avreal.

В одному особливо «цікавому» випадку у мене програма стабільно встигала записатися в мікроконтроллер, видати привітання на рідкокристалічний індикатор на HD44780 і почати працювати, але далі в довільні моменти часу перезапускалася. Я пару годин шукав помилку у себе в програмі — непроініціалізований вказівник на функцію чи необроблене преривання, доки не помітив, що перезапуску програми передує перемигування світлодіода активності на адаптері Altera ByteBlaster. Windows при звертанні до порта видавала таку послідовність, яка активувала виходи адаптера, видавала імпульс RESET і знову вимикала адаптер. І в цьому випадку не допомогло б наіть блокування LPT драйвером на час роботи програми, адже avreal в цей час вже завершив роботу.

Щоб позбавитися спричинених PnP проблeм завантажте файл disable-lpt-poll.reg та запустіть його на виконання. Як видно з вмісту файлу, він прописує в реєстрі Windows ключ, який забороняє опитування (poll) під час роботи системи:

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Parport\Parameters]
“DisableWarmPoll”=dword:00000001

download

 

AVReAl – AVR serial programmer

На цій сторінці ви можете завантажити свіжу версію AVReAl.
Для роботи з FT2232C/L/D, FT2232H, FT4232H необхідно встановити драйвер для мікросхем FTDI та біблиотеку FTD2XX.DLL. Лінукс-версія також використовує бібліотеку FTD2XX (libftd2xx.so).

avreal/linux перевірено з бібліотеками libftd2xx версій по 0.4.16 включно. З цієї сторінки можна завантажити 32-бітну libftd2xx0.4.16.tar.gz та 64-бітну libftd2xx0.4.16_x86_64.tar.gz версії цієї бібліотеки.

Для роботи з LPT під WindowsNT, Windows2000, WindowsXP 32 та 64 біт, Windows7 32 та 64 біт необхідно встановити драйвер доступу до портів DLPortIO. Для Windows 98 та її «родичів» драйвер непотрібен, використовується прямий доступ до портів, дозволений в цих системах всім, хто забажає.

avreal для Linux також працює з LPT без додаткових драйверів, необхідно лише вибрати метод роботи та налаштувати права програмі.

AVReAl 

Version Windows Linux i386 Linux x86-64 FreeBSD
1.28rev10 1.28r10 – Win32 1.28r10 – Linux32 1.28r10 – Linux64 1.28r10 – FreeBSD
1.28rev9 1.28r9 – Win32 1.28r9 – Linux32 1.28r9 – Linux64 1.28r9 – FreeBSD (8.2)
1.28rev8 1.28r8 – Win32 1.28r8 – Linux32 1.28r8 – Linux64 1.28r8 – FreeBSD 8.2
1.28r8 – FreeBSD 6.4
1.28rev7 avw-1.28r7.zip avl32-1.28r7.zip avl64-1.28r7.zip avb-1.28r7.zip
1.28rev6 avw-1.28r6.zip avl32-1.28r6.zip avl64-1.28r6.zip avb-1.28r6.zip
1.28rev5 avw-1.28r5.zip avl32-1.28r5.zip avl64-1.28r5.zip avb-1.28r5.zip
1.28rev4 avw-1.28r4.zip avl32-1.28r4.zip avl64-1.28r4.zip avb-1.28r4.zip
1.28rev3 avw-1.28r3.zip avl32-1.28r3.zip avl64-1.28r3.zip avb-1.28r3.zip
1.28rev2 avw-1.28r2.zip avl32-1.28r2.zip avl64-1.28r2.zip avb-1.28r2.zip
1.28rev1 avw-1.28r1.zip avl32-1.28r1.zip avl64-1.28r1.zip avb-1.28r1.zip
1.28rev0 avw-1.28r0.zip avl32-1.28r0.zip avl64-1.28r0.zip avb-1.28r0.zip
avw-1.27r4.zip avl32-1.27r4.zip avl64-1.27r4.zip avb-1.27r4.zip

В колонці Version дано посилання на повідомлення про вихід даної версії з переліком змін в ній.
Всі такі повідомлення та повідомлення про виявлені помилки зібрано в категорії Історія.
Деякі з попередніх версій програми, включно з останньою DOS-версією, знаходяться на «старій» сторінці History.

DLPortIO 

File Comments
dlportio-64.zip (25K)
Драйвер та бібліотека для 64-бітних версій Windows.
Інсталятор командного рядка. Докладнше…
dlportio-32-bat.zip (17K)
Драйвер та бібліотека для 32-бітних версій Windows.
Інсталятор командного рядка. Детальніше…
dlportio-32-exe.zip (167K)
Драйвер та бібліотека для 32-бітних версій Windows.
GUI-інсталятор. Детальніше…

Драйвери не перевірялися під Windows Vista, але, судячи з усього, мають працювати при інсталяції як для Windows 7

 

AT89S51, AT89S52 serial programmer

at89s52.zip
На прохання (як явні, в пошту та коментарі, так і неявні – через ключові слова пошукових машин, по яких було зроблено відвідування цього сайту) викладаю стару версію послідовного програматора AT89S51, AT89S52. Програму було написано для знайомого методом швидкої та не завжди акуратної переробки avreal під інший алгоритм, але нею прошито, наскільки я знаю, багато тисяч контроллерів. Підтримується лише Windows та лише LPT, для роботи необхідно встановити той же драйвер, що і для avreal. Ключі програми також в основному співпадають з ключами avreal, тому окремого опису на неї не було зроблено.
Перевірка перед викладанням показала, що при високих частотах в ключі -o (для конфігурації мого комп’ютера це вище, ніж -o10MHZ) не працює програмування контроллера, лише зчитування, тому при помилках програмування спробуйте знизити цю частоту до -o8MHz чи навіть до -o6MHz.
Ця версія не розвиватиметься, але я спробую знайти час додати підтримку контроллерів серії at89s в основну програму.


AVReAl – ISP програматор AVR

 

Програму AVReAl призначено для програмування мікроконтроллерів Atmel AVR в режимі ISP (in-circuit serial programming – послідовне програмування в схемі).
AVReAl може запрограмувати (“прошити”) мікроконтроллер через

AVReAl – програма командного рядка (console application), що дозвляє інтегрувати її у використовуване середовище розробки (IDE).
Підтримуються версії програми для Windows, Linux та FreeBSD, підтримку DOS припинено з версії 1.26r0. Остання версія для DOS 1.25r6 доступна для завантаження. Версія для FreeBSD не підтримує роботу з мікросхемою FT2232, версії для Win* та Linux працюють через драйвер/бібліотеку від FTDI.
Роботу avreal/win32 з FT2232 перевірено для Windows2000, WindwsXP/32, WindowsXP/64 та для Windows7/32, Windows7/64.
Роботу avreal/win32 з LPT через драйвер DLPortIO перевірено для Windows2000, WindowsXP/32, WindowsXP/64 та для Windows7/32, Windows7/64. Для Windows98 драйвер не потрібен.
Vista не перевірялася, в моєму оточенні такого не водиться.

Програму можна використовувати безоплатно з комерційною чи не-комерційною метою, але її тексти закриті, тобто вона безкоштовна (freeware), але не вільна (free software)

Завантажити програму, а також 32- та 64-бітні драйвери DLPortIO, необхідні для доступу до LPT під Windows, можна зі сторінки download.
Детальніша інформація знаходиться на сторінці description, схеми адаптерів для програматорів — на сторінці adapters.
Повідомлення про оновлення програми та про виявлені помилки публікуються в категорії Історія, окремі повідомлення про помилки публікуються в тому разі, коли нема часу на термінове виправлення або коли я вважаю помилку не дуже важливою, такою, що може побути «особливістю» до наступного оновлення.
Перелік попередніх змін та деякі з попередніх версій програми можна отримати на «старій» сторінці History.

Перелік мікроконтроллерів, що підтримуються програмою, можна отримати командою

avreal -h

Моделі, перераховані через символ ‘|’, не розрізняються програматором, про це можна прочитати детальніше.
На даний момент підтримуються такі моделі:

 AT86RF401
 AT90S1200    AT90S2313    AT90S4414    AT90S8515    AT90S4434
 AT90S8535    AT90S2333    AT90S4433    AT90S2323    AT90S2343
 ATtiny12     ATtiny22L    ATtiny22     ATtiny13|ATtiny13A
 ATtiny2313|ATtiny2313A    ATtiny4313
 ATtiny15     ATtiny25     ATtiny45     ATtiny85     ATtiny43u
 ATtiny87     ATtiny167
 ATtiny26     ATtiny261|ATtiny261A      ATtiny461|ATtiny461A
 ATtiny861|ATtiny861A
 ATtiny24     ATtiny44     ATtiny84     ATtiny48     ATtiny88
 ATmega603    ATmega103    ATmega161    ATmega163    ATmega323
 ATmega8515   ATmega8535   ATmega162
 ATmega8|ATmega8A     ATmega48|ATmega48A     ATmega48P|ATmega48PA
 ATmega88|ATmega88A   ATmega88P|ATmega88PA
 ATmega168|ATmega168A ATmega168P|ATmega168PA
 ATmega328     ATmega328P
 ATmega16|ATmega16A   ATmega32|ATmega32A     ATmega64|ATmega64A
 ATmega128|ATmega128A
 AT90CAN32    AT90CAN64    AT90CAN128
 AT90usb82    AT90usb162   ATmega8U2    ATmega16U2   ATmega32U2
 ATmega16U4   ATmega32U4
 ATmega32U6   AT90usb646|AT90usb647     AT90usb1286|AT90usb1287
 ATmega164A   ATmega164P|ATmega164PA
 ATmega324A   ATmega324P   ATmega324PA
 ATmega644|ATmega644A      ATmega644P|ATmega644PA
 ATmega1284   ATmega1284P
 ATmega165|ATmega165P|ATmega165PA       ATmega325    ATmega325P
 ATmega3250   ATmega3250P  ATmega645    ATmega6450
 ATmega169|ATmega169P      ATmega329    ATmega329P
 ATmega3290   ATmega3290P
 ATmega649    ATmega6490
 ATmega640    ATmega1280   ATmega1281   ATmega2560   ATmega2561
 AT90pwm2|AT90pwm3  AT90pwm1|AT90pwm2B|AT90pwm3B
 AT90pwm216|AT90pwm316 AT90pwm81
 ATmega16M1   ATmega32M1   ATmega64M1   ATmega32C1   ATmega64C1
 ATmega8HVA   ATmega16HVA  ATmega16HVB  ATmega32HVB  ATmega8HVD
 ATmega128RFA1
[flagcounter image]