Spi передача даних - програмування мікроконтролерів

SPI (англ. SerialPeripheralInterface, SPIbus - послідовний периферійний інтерфейс, шина SPI) - послідовний синхронний стандарт передачі даних в режимі повного дуплексу. призначений для забезпечення простого і недорогого сполучення мікроконтролерів і периферії. SPI є синхронним інтерфейсом, в якому будь-яка передача синхронізована із загальним тактовим сигналом, що генерується провідним пристроєм (процесором). Приймаюча (ведена) периферія синхронізує отримання бітів інформації з тактовим сигналом. До одного послідовного периферійного інтерфейсу провідного пристрою-мікросхеми може приєднуватися кілька мікросхем.

В SPI використовуються чотири цифрових сигналу:

· SCLK - послідовний тактовий сигнал (англ. SerialClock). Служить для передачі тактового сигналу для ведених пристроїв.

· CS або SS - вибір мікросхеми, вибір веденого (англ. Chip Select, Slave Select).

На шину SPI можноподключіть відразу кілька пристроїв, причому сигнали MOSI. MISO. SCLK будуть загальними, а CS свій для кожного пристрою. При цьому активувавши CS на якому конкретному пристрої Ви будете обмінюватися даними саме з ним, інші в прийомі-передачі даних брати участь не будуть.

Конкретні імена портів інтерфейсу SPI можуть відрізнятися в залежності від виробника апаратних засобів, при цьому можливі наступні варіанти:

· MOSI. SIMO, SDI (на пристрої), DI, DIN, SI, MTST;

Висновки з A1 по А4 підключаються до +5 В. Висновки з В1 по В4 підключаються до землі. Висновки W1-W4 - це «бігунки», тобто на них ми і будемо керувати напругою. Підключаємо до них світлодіоди (не забуваємо про токогранічівающіе резистори). Тепер з'єднаємо потенціометр з Arduino. Як я і говорив, що можна використовувати програмний SPI (тобто підключити потенціометр до пінам, які будуть визначені Вами в програмі) або апаратний (для чого потрібно підключатися до гнізда IPSC на Arduino).

У мене під рукою не знайшлося проводів тато-мама, тому я для свій статті використав програмний SPI і підключався до стандартних пінам Arduino. Отже для підключення знаходимо роз'єм IPSC (Малюнок) і підключаємося до нього відповідно до терморегулятори. Для використання програмного SPI підключаємо наш потенціометр до пінам 10,11, 12,13 як показано на малюнку. (Малюнок) На малюнку ви бачите AD5206, а не AD5204, відрізняються вони лише кількістю висновків (6 і 4 відповідно) і підключаються абсолютно однаково.

Отже, зібрали схему, тепер програмуємо. Для початку можна взяти програму з папки прикладів. Переходимо на вкладку файл, потім приклади, вибираємо SPI і проект під назвою DigitalPotControl. Нижче наведу код програми з необхідними поясненнями.

Схожі статті