Similar presentations:
Interfaces of the microcontrollers
1. Interfaces OF the MICROCONTROLLERS
INTERFACES OF THEMICROCONTROLLERS
Lecture 2
MICROCONTROLLERS
MISiS 2017
2. Applications
DisplayМК
EEPROM
I2C
µC
SPI
UART drivers
LED
device
Logic
level
Phisical
level
PC
GPIO
FPGA
watch
RS232
3. Interfaces on block diagram
INTERFACES ON BLOCK DIAGRAM4. GPIO: General Port Input Output
МКRA0
RA1
RA2
RA3
PORTA
RA4
RA5
RA6
TRISA
RA7
5. Pins interfaces
6.
UART (USATR)µC
Тх
Rх
Rх
Тх
GND
µC
7. UART interface
Ustart
Data (Tx/Rx)
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
P
start
stop
t
U
t
F
Generated internal clock
what period of the clock on speed 9600 bits / sec ?
P – parity
D0-D7- data
8. UART interface
void WriteCom(unsigned char value){
while(TXIF == 0)
;
TXREG = value;
}
……………..
…………………
…………
…………………..
……………
WriteCom(25);
………………
9. UART + driver RS232
PCТх
Rх
Rх
Тх MAX232
GND
Data lines
Driver
phisic.level
UART
µC
pic16
10. UART + RS232 (level diagram)
11. UART + RS485
Rх MAX485Тх
PC
Тх
Rх
Drivers
МК
UART
Log.level pic16
MAX485
Drivers
GND
Data lines
Device
Тх/Rх
Device
GND
Data lines
Тх/Rх
MAX485
Drivers
En
МК
UART
Log.level pic16
12. UART + RS485(level diagram)
13. SPI interface
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 interface
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).
-only 4 wires
-numbers devices limited numbers pins µC
-speed 4 МBit (1МБ, 10МБ)
-Simultaneous data transfer
15. SPI signal diagram
16. I2C interface
SCL : Serial Clock (output from master).SDA : Serial Data
-2 wires
-lot devices
-speed 400кБит (100кБ, 1000кБ)
-Alternate exchange data
17. I2C diagram
18. I2C example of the program
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; // сняли флаг
}
Parts 1
19. I2C example of the program
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);
}
Parts 2
20. checking task
SymbolFunction
Symbol
Function
++
?
<<
?
--
?
>>
?
~
?
<
?
-
?
>
?
+
?
%
?
&
?
&&
?
|
?
||
?
0b01010101
?
?
==
?
?
-1
?
=
?
?
?
3FF
!=
?
?
99
?
bin
15 minutes on execution
dec
hex