Axiom Measurement & Control AX5214H — це 48-канальна цифрова плата вводу-виводу. Вона підключається до шини ISA і нагадує пару мікросхем 8255. Насправді це може бути пара мікросхем 8255, але я не впевнений. Якщо/коли хтось почне розробляти драйвер для 8255, йому слід подивитися на код ax5214, оскільки велика частина роботи вже зроблена.

1. Встановлення

loadrt hal_ax5214h cfg="<config-string>"

Конфігураційний рядок складається з шістнадцяткової адреси порту, за якою йде 8-символьний рядок з літер «I» та «O», що встановлює групи контактів як входи та виходи. Перші два символи встановлюють напрямок перших двох 8-бітних блоків контактів (0-7 та 8-15). Наступні два символи встановлюють блоки з 4 контактами (16-19 і 20-23). Потім шаблон повторюється: ще два блоки з 8 бітами (24-31 і 32-39) і два блоки з 4 бітами (40-43 і 44-47). Якщо встановлено більше однієї плати, дані для другої плати йдуть після даних для першої. Наприклад, рядок «0x220 IIIOIIOO 0x300 OIOOIOIO» встановлює драйвери для двох плат. Перша плата знаходиться за адресою 0x220 і має 36 входів (0-19 і 24-39) та 12 виходів (20-23 і 40-47). Друга плата знаходиться за адресою 0x300 і має 20 входів (8-15, 24-31 і 40-43) та 28 виходів (0-7, 16-23, 32-39 і 44-47). В одній системі можна використовувати до 8 плат.

2. Піни

  • (bit) ax5214.<номер_плати>.out-<номер_виводу> — Керує фізичним вихідним виводом.

  • (bit) ax5214.<boardnum>.in-<pinnum> — Відстежує фізичний вхідний контакт.

  • (bit) ax5214.<boardnum>.in-<pinnum>-not — Відстежує фізичний вхідний контакт, інвертований.

Для кожного виводу <boardnum> – це номер плати (починається з нуля), а <pinnum> – це номер каналу вводу/виводу (від 0 до 47).

Зверніть увагу, що драйвер передбачає активні сигнали LOW. Це необхідно для коректної роботи таких модулів, як OPTO-22 (TRUE означає вихід увімкнено або вхід під напругою). Якщо сигнали використовуються безпосередньо без буферизації або ізоляції, необхідно враховувати інверсію. Контакт in- HAL має значення TRUE, якщо фізичний контакт має низький рівень (модуль OPTO-22 під напругою), і FALSE, якщо фізичний контакт має високий рівень (модуль OPTO-22 вимкнений). Контакт in-<pinnum>-not HAL інвертований — він має значення FALSE, якщо фізичний контакт має низький рівень (модуль OPTO-22 під напругою). Підключивши сигнал до одного або іншого, користувач може визначити стан входу.

3. Параметри

  • (bit) ax5214.<boardnum>.out-<pinnum>-invert — Інвертує вихідний контакт.

Параметр -invert визначає, чи є вихідний контакт активним високим або активним низьким. Якщо -invert має значення FALSE, установка виходу HAL TRUE призводить до низького рівня фізичного виводу, вмикаючи підключений модуль OPTO-22, а FALSE призводить до високого рівня, вимикаючи модуль OPTO-22. Якщо -invert має значення TRUE, установка виходу HAL TRUE призведе до високого рівня фізичного виводу і вимкнення модуля.

4. Функції

  • (funct) ax5214.<boardnum>.read — Зчитує всі цифрові входи на одній платі.

  • (funct) ax5214.<boardnum>.write — Записує всі цифрові виходи на одну плату.