Драйвер UM2548 Linux
Linux® драйвер для ST25R3916/ST25R3916B
Посібник користувача
Драйвер UM2548 Linux
вступ
STSW-ST25R013 Драйвер Linux® дозволяє Raspberry Pi® 4 працювати з платами X-NUCLEO-NFCO6A1 і X-NUCLEO-NFCO8A1, які містять, відповідно, пристрої ST25R3916 і ST25R3916B.
Цей пакет переносить рівень радіочастотної абстракції (RFAL) на платформу Raspberry Pi 4 Linux для роботи з мікропрограмою плати та надає якampпрограма, що виявляє різні типи NFC tags і мобільні телефони, що підтримують P2P. RFAL — це стандартний драйвер ST для ST25R3916 і ST25R3916B, високопродуктивних універсальних пристроїв NFC/зчитувачів EMVCo. Він використовується, наприклад, мікропрограмою ST25R3916-DISCO (STSW-ST25R010) і мікропрограмою X-NUCLEO-NFCO06A1 (X-CUBE-NFC6).
STSW-ST25R013 підтримує всі протоколи нижнього рівня ST25R3916/ST25R3916B і деякі протоколи вищого рівня для зв’язку. RFAL написаний переносним способом, тому він може працювати на широкому діапазоні пристроїв на основі Linux. У цьому документі описано, як бібліотеку RFAL можна використовувати в стандартній системі Linux (у цьому випадку Raspberry Pi 4) для зв’язку NFC/RF. Код є дуже портативним і працює з незначними змінами на будь-якій платформі Linux.

закінченоview
1.1 Особливості
- Повний драйвер простору користувача Linux (рівень радіочастотної абстракції) для створення програм із підтримкою NFC за допомогою пристроїв ST25R3916 і ST25R3916B
- Зв'язок хоста Linux із ST25R3916/ST25R3916B за допомогою інтерфейсу SPI
- Повна абстракція RF/NFC (RFAL) для всіх основних технологій і протоколів вищого рівня:
– NFC-A (ISO14443-A)
– NFC-B (ISO14443-B)
– NFC-F (FeliCa™)
– NFC-V (ISO15693)
– P2P (ISO18092)
– ISO-DEP (протокол обміну даними ISO, ISO14443-4)
– NFC-DEP (протокол обміну даними NFC, ISO18092)
– Запатентовані технології, такі як Kovio, B', iClass, Calypso® - Sampреалізація доступна з платами розширення X-NUCLEO-NFC06A1 і X-NUCLEO-NFC08A1, підключеними до Raspberry Pi 4
- Sample додаток для виявлення кількох NFC tag типи та мобільні телефони, які підтримують P2P
- Безкоштовні зручні умови ліцензії
1.2 Архітектура програмного забезпечення
На малюнку 2 показано деталі програмної архітектури бібліотеки RFAL на платформі Linux.
RFAL легко переноситься на інші платформи шляхом адаптації так званої платформи files.
Заголовок file rfal_platform.h містить визначення макросів, які надає та впроваджує власник платформи.
Він надає налаштування для певної платформи, такі як призначення GPIO, системні ресурси, блокування та IRQ, необхідні для правильної роботи RFAL.
Ця демонстрація реалізує функції платформи та забезпечує перенесення RFAL у простір користувача Linux.
Спільна бібліотека file генерується, який використовується демонстраційною програмою для демонстрації функціональних можливостей, наданих рівнем RFAL.
Хост Linux використовує інтерфейс sysfs, доступний у просторі користувача Linux, для здійснення зв’язку SPI з пристроями. Усередині ядра Linux інтерфейс SPI sysfs використовує драйвер ядра Linux spidev для надсилання/отримання кадрів SPI до/від пристроїв.
Для обробки рядка INT пристроїв ST25R3916 і ST25R3916B драйвер використовує sysfs libpiod, щоб отримувати повідомлення про зміни в цьому рядку.

Налаштування апаратного забезпечення
2.1 Використана платформа
Плата Raspberry Pi 4 з ОС Raspberry Pi використовується як платформа Linux для створення бібліотеки RFAL і взаємодії з ST25R3916/ST25R3916B через SPI.
Пристрої дозволяють програмі на платформі Linux виявляти пристрої NFC і спілкуватися з ними.
2.2 Вимоги до обладнання
- Raspberry Pi 4
- Карта micro SD на 8 ГБ для завантаження ОС Raspberry Pi (з останніми вимогами)
- Зчитувач карт SD
- Плати X-NUCLEO-NFC06A1 або X-NUCLEO-NFC08A1
- Міст для підключення плати з адаптером Raspberry Pi Arduino™ для Raspberry Pi (номер деталі ARPI600)
2.2.1 Апаратні підключення
Адаптер ARPI600 Raspberry Pi – Arduino використовується для підключення плат до Raspberry Pi. Перемички адаптерної плати необхідно змінити, щоб з’єднати її з платами X-NUCLEO-NFC06A1 або X-NUCLEO-NFC08A1.
Увага:
ARPI600 неправильно подає 5 В на висновок Arduino IOREF. Безпосереднє приєднання плат повертає 5 В на деякі контакти, це може пошкодити плату Raspberry Pi. Є повідомлення про знищені плати (особливо Raspberry Pi 4B+).
Щоб уникнути цього, адаптуйте ARPI600 (досить складна операція), або плату X-NUCLEO-NFC06A1/X-NUCLEONFC08A1 (простіше).
Найпростіше виправити це вирізати контакт CN6.2 (IOREF) на платах X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1, як показано на малюнку 3.
Зрізання цього контакту не впливає на роботу в поєднанні з платами Nucleo (такими як NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB).

Установка перемички
Перемички для A5, A4, A3, A2, A1 і A0, показані на малюнку 4, необхідно змінити відповідно на P25, P24, P23, P22, P21 і CE1. З цим параметром контактний номер 7 Raspberry GPIO використовується як лінія переривання для X-NUCLEONFC06A1/X-NUCLEO-NFC08A1.

Зараз цей порт бібліотеки RFAL використовує висновок GPIO7 як лінію переривання (відповідно до налаштувань перемички). Якщо є вимога змінити лінію переривання з GPIO7 на інший GPIO, код конкретної платформи (у file pltf_gpio.h) необхідно змінити, щоб змінити визначення макросу ST25R_INT_PIN із 7 на новий контакт GPIO, який використовуватиметься як лінія переривання.
З наведеними вище налаштуваннями перемички плату адаптера можна використовувати для підключення X-NUCLEO NFC06A1 і X-NUCLEO-NFC08A1 до плати Raspberry Pi, як показано на наступних малюнках.

Налаштування середовища Linux
3.1 Завантаження Raspberry Pi
Щоб налаштувати середовище Linux, спочатку встановіть і завантажте Raspberry Pi з ОС Raspberry Pi, як описано нижче:
Крок 1
Завантажте найновіший образ ОС Raspberry Pi з https://www.raspberrypi.com, а потім виберіть ОС Raspberry Pi з робочим столом. Для наведених нижче тестів використовувалася версія 2022-09-22-raspios-bullseye-armhf.img.xz (вересень 2022).
Крок 2
Розархівуйте образ ОС Raspberry Pi і запишіть його на SD-карту, дотримуючись інструкцій, доступних у розділі «Запис образу на SD-карту».
Крок 3
Підключіть обладнання:
- Підключіть Raspberry Pi 4 до монітора за допомогою стандартного кабелю HDMI.
- Підключіть мишу та клавіатуру до USB-портів Raspberry Pi.
Також можна працювати з Raspberry Pi за допомогою ssh. В цьому випадку. не потрібно підключати монітор, клавіатуру та мишу до Raspberry Pi. Єдина вимога — мати ПК із ssh у тій самій мережі, що й Raspberry Pi, і відповідно налаштувати IP-адресу.
Крок 4
Завантажте Raspberry Pi 4 за допомогою SD-карти. Після завантаження на моніторі з’являється робочий стіл Linux на основі Debian.
Примітка:
Іноді після завантаження Raspberry Pi OS деякі клавіші клавіатури не працюють. Щоб змусити їх працювати, відкрийте file /etc/default/keyboard і встановіть XKBLAYOUT=”us”, і перезавантажте Raspberry Pi.
3.2 Увімкніть SPI на Raspberry Pi
Драйвер SPI всередині ядра спілкується з платами X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1 через SPI. Важливо перевірити, чи SPI вже ввімкнено в конфігурації ядра ОС Raspbian Pi.
Перевірте, чи /dev/spidev0.0 відображається в середовищі Raspberry Pi. Якщо він не відображається, увімкніть інтерфейс SPI за допомогою утиліти “raspi-config”, виконавши дії, описані нижче.
Крок 1
Відкрийте новий термінал на Raspberry Pi та запустіть команду “raspi-config” від імені root: sudo raspi-config
Цей крок відкриває графічний інтерфейс.
Крок 2
Виберіть у графічному інтерфейсі опцію під назвою «Параметри інтерфейсу».
Крок 3
На цьому кроці перераховано різні варіанти.
Виберіть опцію під назвою «SPI».
З'являється нове вікно з таким текстом:
«Чи хочете ви, щоб інтерфейс SPI був увімкнений?»
Крок 4
Виберіть у цьому вікні, щоб увімкнути SPI.
Крок 5
Перезавантажте Raspberry Pi.
Наведені вище дії дозволять увімкнути інтерфейс SPI в середовищі Raspberry Pi після перезавантаження.
Створення бібліотеки та програми RFAL
RFAL-демонстрація Linux надається в архіві, наприклад ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz.
Щоб створити бібліотеку та програму RFAL на Raspberry Pi, виконайте такі дії:
Крок 1
Розпакуйте пакет на Raspberry Pi за допомогою такої команди з домашнього каталогу
tar -xJvf ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz
Крок 2
Встановіть cmake (якщо цього не було зроблено раніше) за допомогою команди
apt-get install cmake
Бібліотека RFAL і система побудови програми засновані на cmake, тому для компіляції пакета потрібно встановити cmake.
Крок 3
Щоб створити бібліотеку та програму RFAL, перейдіть до каталогу збірки
cd ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build
Звідти виконайте команду
cmake ..
У наведеній вище команді «..» вказує, що CMakeLists.txt верхнього рівня існує в батьківському каталозі
(ST25R3916_v2.8.0_Linux_demo_v1.0).
Ця команда створює makefile використовується на наступному кроці для створення бібліотеки та програми. Звідти виконайте таку команду, щоб створити демонстрацію для ST25R3916B
cmake -DRFAL_VARIANT=st25r3916b ..
Крок 4
Виконайте команду make для створення бібліотеки та програми RFAL:
зробити
Ця команда спочатку створює бібліотеку RFAL, а потім програму поверх неї.
Як запустити програму
Успішне збирання генерує виконуваний файл під назвою «nfc_poller_st25r3916» або «nfc_poller_st25r3916b» у розташуванні /build/demo.
За замовчуванням програму потрібно запускати з правами root зі шляху ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build/demo/:
sudo ./nfc_demo_st25r3916
Програма починає опитувати NFC tags і мобільних телефонів, потім відображає знайдені пристрої з їхніми UID, як показано на малюнку 7.

Щоб завершити роботу програми, натисніть Ctrl + C.
Історія переглядів
Таблиця 1. Історія перегляду документа
| Дата | Ревізія | Зміни |
| 1 березня 19 р | 1 | Початковий випуск. |
| 4-квіт-23 | 2 | Оновлена назва документа, розділ Введення, розділ 1.1 Функції, Розділ 1.2 Архітектура програмного забезпечення, Розділ 2.1 Використана платформа, Розділ 2.2 Апаратне забезпечення вимоги, Розділ 2.2.1 Апаратні підключення, Розділ 3.1 Завантаження Raspberry Pi, Розділ 3.2 Увімкнення SPI на Raspberry Pi, Розділ 4 Створення бібліотеки та програми RFAL, і Розділ 5 Як запустити програму. Оновлено Рисунок 1. Бібліотека RFAL на платформі Linux, Рисунок 2. Архітектура програмного забезпечення RFAL в Linux і Малюнок 5. Налаштування обладнання вгорі view. Незначні правки тексту по всьому документу. |
ВАЖЛИВА ПРИМІТКА – ПРОЧИТАЙТЕ УВАЖНО
STMicroelectronics NV та її дочірні компанії («ST») залишають за собою право вносити зміни, виправлення, покращення, модифікації та вдосконалення продуктів ST та/або цього документа в будь-який час без попереднього повідомлення. Покупці повинні отримати актуальну актуальну інформацію про продукти ST перед розміщенням замовлень. Продукти ST продаються відповідно до умов продажу ST, які діють на момент підтвердження замовлення.
Покупці несуть виключну відповідальність за вибір, вибір і використання продуктів ST, а ST не несе відповідальності за допомогу в застосуванні чи дизайн продуктів покупців.
Компанія ST не надає жодних ліцензій, явних чи неявних, на будь-які права інтелектуальної власності.
Перепродаж продуктів ST з положеннями, відмінними від інформації, викладеної в цьому документі, анулює будь-яку гарантію, надану ST на такий продукт.
ST і логотип ST є товарними знаками ST. Додаткову інформацію про торгові марки ST див www.st.com/trademarks. Усі інші назви продуктів або послуг є власністю відповідних власників.
Інформація в цьому документі замінює інформацію, надану раніше в будь-яких попередніх версіях цього документа.
© 2023 STMicroelectronics – Усі права захищено
UM2548 – Ред. 2
Документи / Ресурси
![]() |
Драйвер STMicroelectronics UM2548 Linux [pdfПосібник користувача Драйвер UM2548 Linux, UM2548, драйвер Linux, драйвер |




