Expandery wejść MCP23S17 oraz MCP23017

Podobne dokumenty
Magistrala SPI. Linie MOSI i MISO sąwspólne dla wszystkich urządzeńna magistrali, linia SS jest prowadzona do każdego Slave oddzielnie.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Wbudowane układy komunikacyjne cz. 1 Wykład 10

Instytut Teleinformatyki

Niektóre piny mogą pełnić różne role, zależnie od aktualnej wartości sygnałów sterujących.

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

Technika Mikroprocesorowa

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Komunikacja w mikrokontrolerach Laboratorium

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Konfiguracja i programowanie Gamepad'a PlayStation2 na mikrokontrolerze STM32

PL B1. Akademia Górniczo-Hutnicza im. St. Staszica,Kraków,PL BUP 24/01. Wiesław Wajs,Kraków,PL

Laboratorium mikroinformatyki. Szeregowe magistrale synchroniczne.

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

ISP ADAPTER. Instrukcja obsługi rev.1.1. Copyright 2009 SIBIT

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

Zewnętrzne układy peryferyjne cz. 1 Wykład 12

Wstęp Architektura... 13

2. Architektura mikrokontrolerów PIC16F8x... 13

MAGISTRALE MIKROKONTROLERÓW (BSS) Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

MIKROPROCESORY architektura i programowanie

interfejs szeregowy wyświetlaczy do systemów PLC

SCL > Pin 21 SDA > Pin 20 VCC > 5V GND > GND

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

1. Poznanie właściwości i zasady działania rejestrów przesuwnych. 2. Poznanie właściwości i zasady działania liczników pierścieniowych.

WYKŁAD 5. Zestaw DSP60EX. Zestaw DSP60EX

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

Przemysłowy odtwarzacz plików MP3

Mikroprocesory i Mikrosterowniki Laboratorium

Mikrokontrolery AVR techniczne aspekty programowania

16. Szeregowy interfejs SPI

KA-NUCLEO-UniExp. Wielofunkcyjny ekspander dla NUCLEO i Arduino z Bluetooth, MEMS 3DoF, LED-RGB i czujnikiem temperatury

Mikrokontrolery AVR Wprowadzenie

Opis układów wykorzystanych w aplikacji

Praktyka programowania w C Laboratorium 5.

SML3 październik

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

ADAM.E ADAM.E8 Instrukcja użytkownika Aktualizacja: /8

Opis techniczny koncentratora wejść impulsowych KWI-1. APATOR SA,

prostych wyświetlaczy

Magistrala I 2 C. Podstawy systemów mikroprocesorowych. Wykład nr 5 Interfejsy szeregowe c.d.

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4

Ultradźwiękowy generator mocy MARP wersja Dokumentacja techniczno-ruchowa

SYSTEM PRZERWAŃ ATmega 32

FREEboard. Zestaw startowy z mikrokontrolerem z rodziny Freescale KINETIS L (Cortex-M0+) i sensorami MEMS 7 DoF

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Hardware mikrokontrolera X51

PROJECT OF FM TUNER WITH GESTURE CONTROL PROJEKT TUNERA FM STEROWANEGO GESTAMI

BioloFeet. Rozszerzenie możliwości robotów BIOLOID firmy ROBOTIS. Instrukcja użytkownika wersja 1.0

Aoi Ryuu. v2.0 moduł z mikroprocesorem Atmega169 dla makiety dydaktycznej Akai Kaba

MARM. Laboratorium 1 system zegarów, porty wejścia/wyjścia. M. Suchenek

Opis systemu Lipiec

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

Instytut Teleinformatyki

High Speed USB 2.0 Development Board

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Czytnik transponderów MIFARE i UNIQUE w obudowie naściennej

ZL16AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega8/48/88/168

Komunikacja w mikrokontrolerach Laboratorium

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

Przemysłowy odtwarzacz plików MP3 SD

Opis czytnika TRD-PARK COMBO ver Uniwersalny czytnik transponderów UNIQUE - wersja dla parkingów

Drivery LED PWM oraz prosty sterownik Świt Zmierzch oparty na Arduino

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

Opis czytnika TRD-HOT COMBO ver Naścienny czytnik transponderów UNIQUE w podświetlanej obudowie

PL B1. AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE, Kraków, PL BUP 21/10

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

AN ON OFF TEMPERATURE CONTROLLER WITH A MOBILE APPLICATION

MCAR Robot mobilny z procesorem AVR Atmega32

MIKROKONTROLERY - MAGISTRALE SZEREGOWE

Porty GPIO w mikrokontrolerach STM32F3

Karty SD posiadają 9 wyprowadzeń. Dodatkowo karta SD ma na brzegu przełącznik blokujący możliwość zapisu. Karta SD operuje na napięciu 3,3V.

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

Analizowanie protokołów szeregowych oscyloskopami Rohde&Schwarz (2) SPI, I 2 C

2. Format danych i zaimplementowane funkcje MODBUS

Opis funkcjonalny i architektura. Modu³ sterownika mikroprocesorowego KM535

Uniwersalny sterownik silnika krokowego z portem szeregowym RS232 z procesorem AT90S2313 na płycie E200. Zestaw do samodzielnego montażu.

1 Moduł Neuronu Cyfrowego SM

Uproszczony schemat blokowy zespołu 8-bitowego timera przedstawiono na rys.1

Wprowadzenie do podstaw programowania AVR (na przykładzie mikrokontrolera ATmega 16 / 32)

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Kurs obsªugi interfejsu I2C.

Sprzężenie mikrokontrolera (nie tylko X51) ze światem zewnętrznym lokalne interfejsy szeregowe

1. Tworzenie nowego projektu.

TRD-MINI COMBO. Uniwersalny moduł czytnika transponderów UNIQUE - wersja OEM. Podstawowe cechy :

Programator pamięci EEPROM

Systemy wbudowane Obsługa interfejsu 1-Wire na przykładzie termometru DS18B20

Transkrypt:

Expandery wejść MCP23S17 oraz MCP23017

Expander I/O MCP20S17 I2C Piny wyjściowe expanderów MCP23S17 oraz MCP23017 Expander I/O MCP23S17 SPI

Podłączenie urządzenia na magistrali SPI z płytą Arduino. Linie adresu hardwarowego są tu połączone z masą.

Podłączenie urządzenia na magistrali I2C z płytą Arduino (widoczne podwieszenia linii magistrali) Linie adresu hardwarowego są tu połączone z masą.

Budowa blokowa expanderów I/O: MCP23S17 SPI oraz MCP23017 I2C Magistrala SPI Magistrala I2C Linie adresu hardwarowego Wyjścia GPIO Port B Linie przerwań zewnętrznych Wyjścia GPIO Port A

Linie adresu hardwarowego A2, A1, A0 (jednakowe dla MCP23S17 oraz MCP23017) pozwalają na umieszczenie i rozróżnienie w systemie do 8-miu identycznych urządzeń

Format transmisji danych po magistrali SPI (dotyczy expandera MCP23S17) Transmisja danych odbywa się w jednostkach po 3 bajty. W 1-szym bajcie nadawany jest identyfikator urządzenia (Device ID: 0100) oraz adres hardwarowy ustawiony na pinach A2, A1, A0 (Device Address). Ostatni bit R/W decyduje o trybie: zapis lub odczyt. W 2-gim bajcie nadawany jest adres rejestru expandera, do którego jest adresowana transmisja. W 3-cim bajcie znajduje się dana dla rejestru expandera (w trybie zapisu) lub z rejestru (w trybie odczytu).

#include <SPI.h> //linie magistrali SPI są zdefiniowane w bibliotece: //static const uint8_t SS = 10; //static const uint8_t MOSI = 11; //static const uint8_t MISO = 12; //static const uint8_t SCK = 13; //konfiguracja kierunku linii pinmode (linia, OUTPUT); digitalwrite(linia,high); // funkcja SPI.begin(); włącza interfejs w trybie master SPI.begin(); // funkcja SPI.setDataMode(SPI_MODEx); ustala tryb x=0-3 związany z polaryzacją i fazą impulsów zegarowych SPI.setDataMode(SPI_MODEx); // funkcja SPI.setClockDivider(SPI_CLOCK_DIVx); ustala prędkość przez ustawienie dzielnika między częstotliwością taktowania mikrokontrolera, a częstotliwością taktowania interfejsu x= 4, 8, 16, 32, 64, lub 128 SPI.setClockDivider(SPI_CLOCK_DIVx); //transmisja jednego bajtu (nadawanie lub odbiór) int re = SPI.transfer(value);

Format transmisji danych po magistrali I2C (dotyczy expandera MCP23017) Transmisja danych odbywa się w jednostkach po 3 bajty. W 1-szym bajcie nadawany jest identyfikator urządzenia (Device ID: 0010) oraz adres hardwarowy ustawiony na pinach A2, A1, A0 (Device Address). Ostatni bit R/W decyduje o trybie: zapis lub odczyt. W 2-gim bajcie nadawany jest adres rejestru expandera, do którego jest adresowana transmisja. W 3-cim bajcie znajduje się dana dla rejestru expandera (w trybie zapisu) lub z rejestru (w trybie odczytu). Nadawanie Odbiór

#include <Wire.h> //linie magistrali I2C są zdefiniowane w bibliotece: //static const uint8_t SDA = A4; //static const uint8_t SCL = A5; // funkcja Wire.begin(); włącza interfejs Wire.begin(); //nadanie bajtu Device Address obróconego o 1 bit w prawo Wire.beginTransmission(Device Address >1); //nadanie bajtu x Wire.write(x); //zakończenie nadawania Wire.endTransmission(); //żądanie odbioru N bajtów spod adresu DeviceAddress >1 Wire.requestFrom(DeviceAddress >1, N); //odbiór bajtów while(wire.available()) { char c = Wire.read(); }

Wykaz rejestrów expanderów MCP23S17 oraz MCP23017 IODIR odpowiedzialne za kierunek linii GPIO: 0 - wyjście, 1 - wejście GPPUB podwieszanie wewnętrzne linii wejściowych: 0 - nie podwieszone, 1 - podwieszone IPOL odwrócenie polaryzacji bitu sterującego skojarzoną linią (wpisanie zera do rejestru IPOL powoduje sterowanie skojarzonego pinu logiczną jedynką) GPINTEN maska przerwania zmiany stanu na skojarzonej linii (1 maska zdjęta) DEFVAL rejestr wartości odniesienia dla porównania, pojawienie się wartości przeciwnej na skojarzonej linii wywoła przerwanie INTCON kontroluje z czym porównywany jest aktualny stan na pinie w celu stwierdzenia zmiany na pinie ( 1: porównanie z korespondująca wartością w rejestrze DEFVAL, 0: porównanie z poprzednim stanem na pinie) IOCON rejestr konfiguracyjny (wybór banku, sposobu adresowania, polaryzacji na linii przerwania) INTF rejestr flagowy przerwań, jedynka logiczna sygnalizuje przerwanie wywołane zmianą stanu na skojarzonej linii. Rejestr tylko do odczytu INTCAP rejestr przechwytujący stan na skojarzonym pinie w chwili przerwania, stan rejestru pozostaje bez zmian aż do wykonania odczytu rejestru INTCAP lub GPIO. Rejestr tylko do odczytu GPIO odczyt stanu na pinie wejściowym oraz sterowanie stanem pinu wyjściowego OAT dla wyjść: sterowanie wejściem wyjściowego przerzutnika D (stan ten po jednym takcie zegarowym pojawia się na pinie wyjściowym), dla wejść: odczyt ostatniego stanu na wejściu przerzutnika (nie na pinie wejściowym)

Wybór banku w rejestrze konfiguracyjnym IOCON ustala adresy rejestrów expandera dla portów A i B Najprostszy tryb pracy nie wymaga żadnych ustawień w rejestrze konfiguracyjnym IOCON (defaultowy jest bank 0).

Wymagania projektowe //definicje rejestrów wymaganych w projekcie (definicje własne, niekonieczne) #define IODIRA 0x00 //kierunkowy portu A #define IODIRB 0x01 //kierunkowy portu B #define IOCON 0x0A //konfiguracyjny #define GPPUA 0x0C //podwieszenie linii portu A (gdy są wejściami) #define GPPUB 0x0D //podwieszenie linii portu B (gdy są wejściami) #define GPIOA 0x12 //sterowanie liniami portu A (dla wyjść), odczyt linii (dla wejść) #define GPIOB 0x13 //sterowanie liniami portu A (dla wyjść), odczyt linii (dla wejść) Wymagane ustawienia wstępne: Konfiguracja linii magistrali (SPI: MOSI, MISO, SCK, SS, I2C: SDA, SCL) Nadanie kierunku liniom portu A, B Podwieszenie linii portów A i B (dla wejść) Czynności w pętli: Cykliczny odczyt wejść oraz sterowanie wyjściami przez rejestry GPIOA oraz GPIOB