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 (PCI-Express LPT, PCMCIA-LPT), базову адресу можна дізнатися у властивостях порта в диспетчері пристроїв.

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

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 — це не зноска, це піднесення до другого степеня. Треба було знайти і місце в сенсі комп’ютера, над яким так позбиткуватися, і місце на його жорсткому диску.


Написав:
DLPortIO та 32-bit Windows.
DLPortIO x64 та 64-bit Windows.

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.
Для роботи з USB-адаптерами на FT2232C/L/D, FT2232H, FT4232H, FT232H необхідно встановити драйвер для мікросхем 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 

В цій таблиці знаходяться деякі найстабільніші версії avreal. В колонці 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

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

 86RF401
 90S1200    90S2313     90S4414     90S8515     90S4434     90S8535
 90S2333    90S4433     90S2323     90S2343
 tiny12     tiny22L     tiny22      tiny13|tiny13A
 tiny2313|tiny2313A     tiny4313
 tiny15     tiny25      tiny45      tiny85
 tiny26     tiny261|tiny261A        tiny461|tiny461A        tiny861|tiny861A
 tiny24|tiny24A         tiny44|tiny44A          tiny84|tiny84A
 tiny1634
 tiny43u    tiny48      tiny88      tiny87      tiny167
 mega603    mega103     mega161     mega163     mega323
 mega8515   mega8535    mega162
 mega8|mega8A           mega48|mega48A          mega48P|mega48PA
 mega88|mega88A         mega88P|mega88PA        mega168|mega168A
 mega168P|mega168PA     mega328     mega328P
 mega16|mega16A         mega32|mega32A          mega64|mega64A
 mega128|mega128A
 90CAN32    90CAN64     90CAN128
 90usb82    90usb162    mega8U2     mega16U2    mega32U2
 mega16U4   mega32U4
 mega32U6   90usb646|90usb647       90usb1286|90usb1287
 mega164A   mega164P|mega164PA      mega324A    mega324P    mega324PA
 mega644|mega644A       mega644P|mega644PA      mega1284    mega1284P
 mega165|mega165P|mega165PA         mega165A
 mega325|mega325A       mega325P    mega3250    mega3250P
 mega645|mega645A       mega6450|mega6450A
 mega169|mega169P|mega169PA         mega169A
 mega329|mega329A       mega329P|mega329PA      mega3290    mega3290P
 mega649|mega649A       mega6490|mega6490A
 mega640    mega1280    mega1281    mega2560    mega2561
 90pwm2|90pwm3          90pwm1|90pwm2B|90pwm3B  90pwm216|90pwm316
 90pwm81    90pwm161
 mega16M1   mega32M1    mega64M1    mega32C1    mega64C1
 mega8HVA   mega16HVA   mega16HVB   mega32HVB   mega8HVD
 mega128RFA1
[flagcounter image]