Микроконтроллеры
Что такое интерфейс?
GPIO: General Port Input Output
Роспись выводов и внешний вид PIC16F877
UART
UART диаграмма данных (TTL)
UART
UART + драйвер RS232
UART RS232
UART + драйвер RS485
SPI
SPI
SPI
I2C
I2C
I2C
I2C
1.15M
Категория: ЭлектроникаЭлектроника

Микроконтроллеры. Интерфейсы

1. Микроконтроллеры

Лекции
Микроконтроллеры
Интерфейсы
2016

2. Что такое интерфейс?

Дисплей
МК
I2C
МК
Память
SPI
Часы
ПЛИС
Лог. ур
Физ. ур
UART драйв
ер
GPIO
UART
ПК

3.

Состав микроконтроллера PIC16

4. GPIO: General Port Input Output

МК
RA0
RA1
RA2
RA3
PORTA
RA4
RA5
RA6
TRISA
RA7

5. Роспись выводов и внешний вид PIC16F877

6. UART

МК
Тх


Тх
GND
МК

7. UART диаграмма данных (TTL)

U
start
Data (Tx/Rx)
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
D
P
stop
start
t
U
t
F
Generated internal clock

8. UART

void WriteCom(unsigned char value)
{
while(TXIF == 0)
;
TXREG = value;
}
……………..
…………………
…………
…………………..
……………
WriteCom(25);
………………

9. UART + драйвер RS232

ПК
Тх


Тх MAX232
GND
Длинная линия
Драйвер
Физ. ур
UART
Лог. Ур
МК
pic16

10. UART RS232

11. UART + драйвер RS485

Rх MAX485
Тх
ПК
Тх

Драйвер
UART
Лог. Ур
MAX485
Драйвер
GND
МК
pic16
Длинная линия
Device
En
Тх/Rх
Device
Тх/Rх MAX485
Драйвер
GND
Длинная линия
UART
Лог. Ур
МК
pic16

12.

UART + драйвер RS485

13. SPI

SCLK : Serial Clock (output from master).
MOSI : Master Output, Slave Input (output from master).
MISO : Master Input, Slave Output (output from slave).
SS : Slave Select (active low, output from master).

14. SPI

SCLK : Serial Clock (output from master).
MOSI : Master Output, Slave Input (output from master).
MISO : Master Input, Slave Output (output from slave).
SS : Slave Select (active low, output from master).
-Только 4 провода
-Кол-во устройств ограничено кол-вом «пинов» МК
-Скорость до 4 МБит (1МБ, 10МБ)
-Полнодуплексный режим

15. SPI

SPI

16. I2C

SCL : Serial Clock (output from master).
SDA : Serial Data
-Только 2 провода
-До 16 (8) устройств
-Скорость до 400кБит (100кБ, 1000кБ)
-Полудуплексный режим

17. I2C

18. I2C

void I2C_start (void)
{
BCLIF=0;
SSPIF = 0; // сняли флаг
SEN = 1; // запустили стартовую последовательность
while(!SSPIF); // ждём установки флага
SSPIF = 0; // сняли флаг
}
void I2C_stop (void)
{
BCLIF=0;
SSPIF = 0; // сняли флаг
PEN = 1; // запустили стартовую последовательность
while(!SSPIF); // ждём установки флага
SSPIF = 0; // сняли флаг
}

19. I2C

void send_byte(unsigned char word)
{
SSPIF = 0; // сняли флаг
SSPBUF = word; // отправляем адрес/ данные
while(!SSPIF); // ждём установки флага
SSPIF = 0; // сняли флаг
BCLIF=0;
}
void read_byte(void)
{
BCLIF=0;
SSPIF=0;
RCEN=1;
while (!SSPIF && !BCLIF);
ACKDT=1;
BCLIF=0;
SSPIF=0;
ACKEN=1;
RCEN = 0;
while (!SSPIF && !BCLIF);
English     Русский Правила