Interfaz SPI
08:53
Síncronas:
SPI
I2C
SMbus
Asíncronas:
UART (232/485/422)
USB
Ethernet
CAN (Controller Area Network)
LIN (Local Interconnect Network)
IrDA (Infrared Data Association)
Interfaces de comunicación serie de microcontroladores
Se utilizan para comunicar ICs
dentro de un mismo equipo.
No requieren adaptación eléctrica,
excepto alguna R de pull-up o para
interconectar ICs de distinto voltaje
de alimentación.
Muy difundidos para conectar uCs
con memorias, conversores A/D-
D/A e interfaces en general.
Para comunicar equipos a diversas
distancias.
Requieren interfaz eléctrica según
cada norma.
Interfaces de comunicación serie de microcontroladores:
SPI (Serial Peripheral Interface)
Conexión entre 2 dispositivos
Cuando se llena el registro de desplazamiento (normalmente 8 bits) se vuelca a memoria.
En los uCs de gama media es un único registro de 8 bits (buffer).
La velocidad, de hasta unos 10Mbps, la decide el SPI Master, y puede variarse aún durante la transmisión.
La longitud del dato no está restringida a 8 bits, aunque el Slave debe ser ir leyendo
el buffer a medida que se vuelca el registro de desplazamiento. No se dispone de control de
flujo en el protocolo (el Slave no puede avisar si recibió bien, o está listo para seguir recibiendo etc)
aunque esto se puede implementar con pines auxiliares.
independientes cooperativos
Interfaces de comunicación serie de
microcontroladores: SPI
Conexión entre 3 o más dispositivos
08:53
Cuatro modos de operación de SPI: Denominación
convencional
Modos de operación
de SPI
Polaridad, Fase
0,0
0,1
1,0
1,1
Polaridad refiere al estado en que queda la línea de CLK entre tramas
Fase refiere al nivel de la señal CLK al comienzo del bit de datos.
Cuatro modos de operación de SPI
Modos de operación
de SPI
Polaridad, Flanco
0,0
0,1
1,0
1,1
Cuatro modos de operación de SPI: Denominación
en microcontroladores PIC
Polaridad refiere al estado en que queda la línea de CLK entre tramas
CKE (clock Edge) refiere al flanco de la señal CLK que transfiere el dato. Como regla mnemotécnica, CKE tiene el
valor lógico contrario a Fase de la denominación convencional
Denominación en
PICs
(CKP,CKE)
0,1
0,0
1,1
1,0
Interfaz SPI en microcontroladores PIC 16F y 18F
Principal Alternativo (excluyentes)
08:53
Registros asociados a interfaz SPI en µC 16F88x
08:53
Registros asociados a interfaz SPI en µC 16F88x (2)
Registros asociados a interfaz SPI en µC 16F88x (3)
RA0/AN0/ULPWU/C12IN0-
2
RA1/AN1/C12IN1-
3
RA2/AN2/VREF-/CVREF/C2IN+
4
RA4/T0CKI/C1OUT
6
RA5/AN4/SS/C2OUT
7
RB0/AN12/INT
21
RB1/AN10/P1C/C12IN3-
22
RB2/AN8/P1B
23
RA7/OSC1/CLKIN
9
RA6/OSC2/CLKOUT
10
RC0/T1OSO/T1CKI
11
RC1/T1OSI/CCP2
12
RB7/ICSPDAT
28
RB6/ICSPCLK
27
RB5/AN13/T1G
26
RB4/AN11/P1D
25
RC7/RX/DT
18
RC6/TX/CK
17
RC5/SDO
16
RC4/SDI/SDA
15
RC3/SCK/SCL
14
RC2/CCP1/P1A
13
RA3/AN3/VREF+/C1IN+
5
RB3/AN9/PGM/C12IN2-
24
RE3/MCLR/VPP
1
U1
PIC16F883
RXD
RTS
TXD
CTS
MAESTRO
SCK
3
CS
2
SDI
4
LDAC
5
VOUTA
8
SHDN
6
U2
MCP4821
A
B
C
D
+88.8
Volts
Ejemplo 01: Escritura de un conversor D/A MCP4821/4921
01_SPI_a_DAC_MCP4821_MCP4921.rar
Transfiere valor ingresado por terminal en formato :1,nnnn<enter> al DAC
Ejemplo 02: Escritura de un conversor D/A MCP4821/4921
RA0/AN0/ULPWU/C12IN0-
2
RA1/AN1/C12IN1-
3
RA2/AN2/VREF-/CVREF/C2IN+
4
RA4/T0CKI/C1OUT
6
RA5/AN4/SS/C2OUT
7
RB0/AN12/INT
21
RB1/AN10/P1C/C12IN3-
22
RB2/AN8/P1B
23
RA7/OSC1/CLKIN
9
RA6/OSC2/CLKOUT
10
RC0/T1OSO/T1CKI
11
RC1/T1OSI/CCP2
12
RB7/ICSPDAT
28
RB6/ICSPCLK
27
RB5/AN13/T1G
26
RB4/AN11/P1D
25
RC7/RX/DT
18
RC6/TX/CK
17
RC5/SDO
16
RC4/SDI/SDA
15
RC3/SCK/SCL
14
RC2/CCP1/P1A
13
RA3/AN3/VREF+/C1IN+
5
RB3/AN9/PGM/C12IN2-
24
RE3/MCLR/VPP
1
U1
PIC16F883
RXD
RTS
TXD
CTS
MAESTRO
SCK
3
CS
2
SDI
4
LDAC
5
VOUTA
8
SHDN
6
U2
MCP4821
A
B
C
D0
V1
VSINE
+88.8
Volts
SCK
3
CS
2
SDI
4
LDAC
5
VOUTA
8
VREFA
6
U3
MCP4921
U3_VDD
02_SPI_AD_DAC_MCP4821_MCP4921.rar
Idem anterior, transfiere lo ingresado por terminal en formato “:1,nnnn<enter>” al DAC
Si se ingresa “:A<enter>” se pone en “modo analógico”, esto es transfiere la lectura del
AD (AN0) a los DACs. Se prueba además cambio de Vref y Ganancia
Ejemplo 03: Escritura de un conversor D/A MCP4821/4921
RA0/AN0/ULPWU/C12IN0-
2
RA1/AN1/C12IN1-
3
RA2/AN2/VREF-/CVREF/C2IN+
4
RA4/T0CKI/C1OUT
6
RA5/AN4/SS/C2OUT
7
RB0/AN12/INT
21
RB1/AN10/P1C/C12IN3-
22
RB2/AN8/P1B
23
RA7/OSC1/CLKIN
9
RA6/OSC2/CLKOUT
10
RC0/T1OSO/T1CKI
11
RC1/T1OSI/CCP2
12
RB7/ICSPDAT
28
RB6/ICSPCLK
27
RB5/AN13/T1G
26
RB4/AN11/P1D
25
RC7/RX/DT
18
RC6/TX/CK
17
RC5/SDO
16
RC4/SDI/SDA
15
RC3/SCK/SCL
14
RC2/CCP1/P1A
13
RA3/AN3/VREF+/C1IN+
5
RB3/AN9/PGM/C12IN2-
24
RE3/MCLR/VPP
1
U1
PIC16F883
RXD
RTS
TXD
CTS
MAESTRO
SCK
3
CS
2
SDI
4
LDAC
5
VOUTA
8
SHDN
6
U2
MCP4821
A
B
C
D
VDD
SCK
3
CS
2
SDI
4
LDAC
5
VOUTA
8
SHDN
6
U3
MCP4821
SCK
3
CS
2
SDI
4
LDAC
5
VOUTA
8
SHDN
6
U4
MCP4821 +88.8
Volts
+88.8
Volts
+88.8
Volts
03_spi_a_DACs_MCP4921.rar
Idem ejemplo 1, pero encamina lo ingresado por terminal como “:k,nnnn” con k=1 2 ó 3
Ejemplo: :3,2814<enter> Pone al DAC 3 en 2814/2=1407 milivolts
Ejemplo 04: Escritura unidireccional a 3 ejes
Idem ejemplo 1, pero encamina lo ingresado por terminal del maestro como “:k,nnnn”
con k=1 2 ó 3 a los µC 1, 2 ó 3. Esto se puede ver en los terminales de cada eje.
RA0/AN0/ULPWU/C12IN0-
2
RA1/AN1/C12IN1-
3
RA2/AN2/VREF-/CVREF/C2IN+
4
RA4/T0CKI/C1OUT
6
RA5/AN4/SS/C2OUT
7
RB0/AN12/INT
21
RB1/AN10/P1C/C12IN3-
22
RB2/AN8/P1B
23
RA7/OSC1/CLKIN
9
RA6/OSC2/CLKOUT
10
RC0/T1OSO/T1CKI
11
RC1/T1OSI/CCP2
12
RB7/ICSPDAT
28
RB6/ICSPCLK
27
RB5/AN13/T1G
26
RB4/AN11/P1D
25
RC7/RX/DT
18
RC6/TX/CK
17
RC5/SDO
16
RC4/SDI/SDA
15
RC3/SCK/SCL
14
RC2/CCP1/P1A
13
RA3/AN3/VREF+/C1IN+
5
RB3/AN9/PGM/C12IN2-
24
RE3/MCLR/VPP
1
U1
PIC16F883
RA0/AN0/ULPWU/C12IN0-
2
RA1/AN1/C12IN1-
3
RA2/AN2/VREF-/CVREF/C2IN+
4
RA4/T0CKI/C1OUT
6
RA5/AN4/SS/C2OUT
7
RB0/AN12/INT
21
RB1/AN10/P1C/C12IN3-
22
RB2/AN8/P1B
23
RA7/OSC1/CLKIN
9
RA6/OSC2/CLKOUT
10
RC0/T1OSO/T1CKI
11
RC1/T1OSI/CCP2
12
RB7/ICSPDAT
28
RB6/ICSPCLK
27
RB5/AN13/T1G
26
RB4/AN11/P1D
25
RC7/RX/DT
18
RC6/TX/CK
17
RC5/SDO
16
RC4/SDI/SDA
15
RC3/SCK/SCL
14
RC2/CCP1/P1A
13
RA3/AN3/VREF+/C1IN+
5
RB3/AN9/PGM/C12IN2-
24
RE3/MCLR/VPP
1
U2
PIC16F883
RA0/AN0/ULPWU/C12IN0-
2
RA1/AN1/C12IN1-
3
RA2/AN2/VREF-/CVREF/C2IN+
4
RA4/T0CKI/C1OUT
6
RA5/AN4/SS/C2OUT
7
RB0/AN12/INT
21
RB1/AN10/P1C/C12IN3-
22
RB2/AN8/P1B
23
RA7/OSC1/CLKIN
9
RA6/OSC2/CLKOUT
10
RC0/T1OSO/T1CKI
11
RC1/T1OSI/CCP2
12
RB7/ICSPDAT
28
RB6/ICSPCLK
27
RB5/AN13/T1G
26
RB4/AN11/P1D
25
RC7/RX/DT
18
RC6/TX/CK
17
RC5/SDO
16
RC4/SDI/SDA
15
RC3/SCK/SCL
14
RC2/CCP1/P1A
13
RA3/AN3/VREF+/C1IN+
5
RB3/AN9/PGM/C12IN2-
24
RE3/MCLR/VPP
1
U3
PIC16F883
RA0/AN0/ULPWU/C12IN0-
2
RA1/AN1/C12IN1-
3
RA2/AN2/VREF-/CVREF/C2IN+
4
RA4/T0CKI/C1OUT
6
RA5/AN4/SS/C2OUT
7
RB0/AN12/INT
21
RB1/AN10/P1C/C12IN3-
22
RB2/AN8/P1B
23
RA7/OSC1/CLKIN
9
RA6/OSC2/CLKOUT
10
RC0/T1OSO/T1CKI
11
RC1/T1OSI/CCP2
12
RB7/ICSPDAT
28
RB6/ICSPCLK
27
RB5/AN13/T1G
26
RB4/AN11/P1D
25
RC7/RX/DT
18
RC6/TX/CK
17
RC5/SDO
16
RC4/SDI/SDA
15
RC3/SCK/SCL
14
RC2/CCP1/P1A
13
RA3/AN3/VREF+/C1IN+
5
RB3/AN9/PGM/C12IN2-
24
RE3/MCLR/VPP
1
U4
PIC16F883
RXD
RTS
TXD
CTS
MAESTRO
RXD
RTS
TXD
CTS
EJE1
RXD
RTS
TXD
CTS
EJE2
RXD
RTS
TXD
CTS
EJE3
04_SPI_3EJES.rar
Ejemplo 05: Escritura bidireccional con 3 ejes
Idem ejemplo 4, pero permite la comunicación desde los ejes al maestro utilizando líneas
de interrupción auxiliares sobre RB4, RB5 y RB6 (interrupción combinada “on change”)
Maestro “:eje,dato<enter>”  eje:”dato” Eje “:dato<enter>”  Maestro “eje-dato<enter>”
RA0/AN0/ULPWU/C12IN0-
2
RA1/AN1/C12IN1-
3
RA2/AN2/VREF-/CVREF/C2IN+
4
RA4/T0CKI/C1OUT
6
RA5/AN4/SS/C2OUT
7
RB0/AN12/INT
21
RB1/AN10/P1C/C12IN3-
22
RB2/AN8/P1B
23
RA7/OSC1/CLKIN
9
RA6/OSC2/CLKOUT
10
RC0/T1OSO/T1CKI
11
RC1/T1OSI/CCP2
12
RB7/ICSPDAT
28
RB6/ICSPCLK
27
RB5/AN13/T1G
26
RB4/AN11/P1D
25
RC7/RX/DT
18
RC6/TX/CK
17
RC5/SDO
16
RC4/SDI/SDA
15
RC3/SCK/SCL
14
RC2/CCP1/P1A
13
RA3/AN3/VREF+/C1IN+
5
RB3/AN9/PGM/C12IN2-
24
RE3/MCLR/VPP
1
U1
PIC16F883
RA0/AN0/ULPWU/C12IN0-
2
RA1/AN1/C12IN1-
3
RA2/AN2/VREF-/CVREF/C2IN+
4
RA4/T0CKI/C1OUT
6
RA5/AN4/SS/C2OUT
7
RB0/AN12/INT
21
RB1/AN10/P1C/C12IN3-
22
RB2/AN8/P1B
23
RA7/OSC1/CLKIN
9
RA6/OSC2/CLKOUT
10
RC0/T1OSO/T1CKI
11
RC1/T1OSI/CCP2
12
RB7/ICSPDAT
28
RB6/ICSPCLK
27
RB5/AN13/T1G
26
RB4/AN11/P1D
25
RC7/RX/DT
18
RC6/TX/CK
17
RC5/SDO
16
RC4/SDI/SDA
15
RC3/SCK/SCL
14
RC2/CCP1/P1A
13
RA3/AN3/VREF+/C1IN+
5
RB3/AN9/PGM/C12IN2-
24
RE3/MCLR/VPP
1
U2
PIC16F883
RA0/AN0/ULPWU/C12IN0-
2
RA1/AN1/C12IN1-
3
RA2/AN2/VREF-/CVREF/C2IN+
4
RA4/T0CKI/C1OUT
6
RA5/AN4/SS/C2OUT
7
RB0/AN12/INT
21
RB1/AN10/P1C/C12IN3-
22
RB2/AN8/P1B
23
RA7/OSC1/CLKIN
9
RA6/OSC2/CLKOUT
10
RC0/T1OSO/T1CKI
11
RC1/T1OSI/CCP2
12
RB7/ICSPDAT
28
RB6/ICSPCLK
27
RB5/AN13/T1G
26
RB4/AN11/P1D
25
RC7/RX/DT
18
RC6/TX/CK
17
RC5/SDO
16
RC4/SDI/SDA
15
RC3/SCK/SCL
14
RC2/CCP1/P1A
13
RA3/AN3/VREF+/C1IN+
5
RB3/AN9/PGM/C12IN2-
24
RE3/MCLR/VPP
1
U3
PIC16F883
RA0/AN0/ULPWU/C12IN0-
2
RA1/AN1/C12IN1-
3
RA2/AN2/VREF-/CVREF/C2IN+
4
RA4/T0CKI/C1OUT
6
RA5/AN4/SS/C2OUT
7
RB0/AN12/INT
21
RB1/AN10/P1C/C12IN3-
22
RB2/AN8/P1B
23
RA7/OSC1/CLKIN
9
RA6/OSC2/CLKOUT
10
RC0/T1OSO/T1CKI
11
RC1/T1OSI/CCP2
12
RB7/ICSPDAT
28
RB6/ICSPCLK
27
RB5/AN13/T1G
26
RB4/AN11/P1D
25
RC7/RX/DT
18
RC6/TX/CK
17
RC5/SDO
16
RC4/SDI/SDA
15
RC3/SCK/SCL
14
RC2/CCP1/P1A
13
RA3/AN3/VREF+/C1IN+
5
RB3/AN9/PGM/C12IN2-
24
RE3/MCLR/VPP
1
U4
PIC16F883
RXD
RTS
TXD
CTS
MAESTRO
RXD
RTS
TXD
CTS
EJE1
RXD
RTS
TXD
CTS
EJE2
RXD
RTS
TXD
CTS
EJE3
05_SPI_3EJES_BIDIR.rar

17309828

  • 1.
  • 2.
    08:53 Síncronas: SPI I2C SMbus Asíncronas: UART (232/485/422) USB Ethernet CAN (ControllerArea Network) LIN (Local Interconnect Network) IrDA (Infrared Data Association) Interfaces de comunicación serie de microcontroladores Se utilizan para comunicar ICs dentro de un mismo equipo. No requieren adaptación eléctrica, excepto alguna R de pull-up o para interconectar ICs de distinto voltaje de alimentación. Muy difundidos para conectar uCs con memorias, conversores A/D- D/A e interfaces en general. Para comunicar equipos a diversas distancias. Requieren interfaz eléctrica según cada norma.
  • 3.
    Interfaces de comunicaciónserie de microcontroladores: SPI (Serial Peripheral Interface) Conexión entre 2 dispositivos Cuando se llena el registro de desplazamiento (normalmente 8 bits) se vuelca a memoria. En los uCs de gama media es un único registro de 8 bits (buffer). La velocidad, de hasta unos 10Mbps, la decide el SPI Master, y puede variarse aún durante la transmisión. La longitud del dato no está restringida a 8 bits, aunque el Slave debe ser ir leyendo el buffer a medida que se vuelca el registro de desplazamiento. No se dispone de control de flujo en el protocolo (el Slave no puede avisar si recibió bien, o está listo para seguir recibiendo etc) aunque esto se puede implementar con pines auxiliares.
  • 4.
    independientes cooperativos Interfaces decomunicación serie de microcontroladores: SPI Conexión entre 3 o más dispositivos
  • 5.
    08:53 Cuatro modos deoperación de SPI: Denominación convencional Modos de operación de SPI Polaridad, Fase 0,0 0,1 1,0 1,1 Polaridad refiere al estado en que queda la línea de CLK entre tramas Fase refiere al nivel de la señal CLK al comienzo del bit de datos.
  • 6.
    Cuatro modos deoperación de SPI Modos de operación de SPI Polaridad, Flanco 0,0 0,1 1,0 1,1 Cuatro modos de operación de SPI: Denominación en microcontroladores PIC Polaridad refiere al estado en que queda la línea de CLK entre tramas CKE (clock Edge) refiere al flanco de la señal CLK que transfiere el dato. Como regla mnemotécnica, CKE tiene el valor lógico contrario a Fase de la denominación convencional Denominación en PICs (CKP,CKE) 0,1 0,0 1,1 1,0
  • 7.
    Interfaz SPI enmicrocontroladores PIC 16F y 18F Principal Alternativo (excluyentes)
  • 8.
    08:53 Registros asociados ainterfaz SPI en µC 16F88x
  • 9.
    08:53 Registros asociados ainterfaz SPI en µC 16F88x (2)
  • 10.
    Registros asociados ainterfaz SPI en µC 16F88x (3)
  • 11.
  • 12.
    Ejemplo 02: Escriturade un conversor D/A MCP4821/4921 RA0/AN0/ULPWU/C12IN0- 2 RA1/AN1/C12IN1- 3 RA2/AN2/VREF-/CVREF/C2IN+ 4 RA4/T0CKI/C1OUT 6 RA5/AN4/SS/C2OUT 7 RB0/AN12/INT 21 RB1/AN10/P1C/C12IN3- 22 RB2/AN8/P1B 23 RA7/OSC1/CLKIN 9 RA6/OSC2/CLKOUT 10 RC0/T1OSO/T1CKI 11 RC1/T1OSI/CCP2 12 RB7/ICSPDAT 28 RB6/ICSPCLK 27 RB5/AN13/T1G 26 RB4/AN11/P1D 25 RC7/RX/DT 18 RC6/TX/CK 17 RC5/SDO 16 RC4/SDI/SDA 15 RC3/SCK/SCL 14 RC2/CCP1/P1A 13 RA3/AN3/VREF+/C1IN+ 5 RB3/AN9/PGM/C12IN2- 24 RE3/MCLR/VPP 1 U1 PIC16F883 RXD RTS TXD CTS MAESTRO SCK 3 CS 2 SDI 4 LDAC 5 VOUTA 8 SHDN 6 U2 MCP4821 A B C D0 V1 VSINE +88.8 Volts SCK 3 CS 2 SDI 4 LDAC 5 VOUTA 8 VREFA 6 U3 MCP4921 U3_VDD 02_SPI_AD_DAC_MCP4821_MCP4921.rar Idem anterior, transfiere lo ingresado por terminal en formato “:1,nnnn<enter>” al DAC Si se ingresa “:A<enter>” se pone en “modo analógico”, esto es transfiere la lectura del AD (AN0) a los DACs. Se prueba además cambio de Vref y Ganancia
  • 13.
    Ejemplo 03: Escriturade un conversor D/A MCP4821/4921 RA0/AN0/ULPWU/C12IN0- 2 RA1/AN1/C12IN1- 3 RA2/AN2/VREF-/CVREF/C2IN+ 4 RA4/T0CKI/C1OUT 6 RA5/AN4/SS/C2OUT 7 RB0/AN12/INT 21 RB1/AN10/P1C/C12IN3- 22 RB2/AN8/P1B 23 RA7/OSC1/CLKIN 9 RA6/OSC2/CLKOUT 10 RC0/T1OSO/T1CKI 11 RC1/T1OSI/CCP2 12 RB7/ICSPDAT 28 RB6/ICSPCLK 27 RB5/AN13/T1G 26 RB4/AN11/P1D 25 RC7/RX/DT 18 RC6/TX/CK 17 RC5/SDO 16 RC4/SDI/SDA 15 RC3/SCK/SCL 14 RC2/CCP1/P1A 13 RA3/AN3/VREF+/C1IN+ 5 RB3/AN9/PGM/C12IN2- 24 RE3/MCLR/VPP 1 U1 PIC16F883 RXD RTS TXD CTS MAESTRO SCK 3 CS 2 SDI 4 LDAC 5 VOUTA 8 SHDN 6 U2 MCP4821 A B C D VDD SCK 3 CS 2 SDI 4 LDAC 5 VOUTA 8 SHDN 6 U3 MCP4821 SCK 3 CS 2 SDI 4 LDAC 5 VOUTA 8 SHDN 6 U4 MCP4821 +88.8 Volts +88.8 Volts +88.8 Volts 03_spi_a_DACs_MCP4921.rar Idem ejemplo 1, pero encamina lo ingresado por terminal como “:k,nnnn” con k=1 2 ó 3 Ejemplo: :3,2814<enter> Pone al DAC 3 en 2814/2=1407 milivolts
  • 14.
    Ejemplo 04: Escrituraunidireccional a 3 ejes Idem ejemplo 1, pero encamina lo ingresado por terminal del maestro como “:k,nnnn” con k=1 2 ó 3 a los µC 1, 2 ó 3. Esto se puede ver en los terminales de cada eje. RA0/AN0/ULPWU/C12IN0- 2 RA1/AN1/C12IN1- 3 RA2/AN2/VREF-/CVREF/C2IN+ 4 RA4/T0CKI/C1OUT 6 RA5/AN4/SS/C2OUT 7 RB0/AN12/INT 21 RB1/AN10/P1C/C12IN3- 22 RB2/AN8/P1B 23 RA7/OSC1/CLKIN 9 RA6/OSC2/CLKOUT 10 RC0/T1OSO/T1CKI 11 RC1/T1OSI/CCP2 12 RB7/ICSPDAT 28 RB6/ICSPCLK 27 RB5/AN13/T1G 26 RB4/AN11/P1D 25 RC7/RX/DT 18 RC6/TX/CK 17 RC5/SDO 16 RC4/SDI/SDA 15 RC3/SCK/SCL 14 RC2/CCP1/P1A 13 RA3/AN3/VREF+/C1IN+ 5 RB3/AN9/PGM/C12IN2- 24 RE3/MCLR/VPP 1 U1 PIC16F883 RA0/AN0/ULPWU/C12IN0- 2 RA1/AN1/C12IN1- 3 RA2/AN2/VREF-/CVREF/C2IN+ 4 RA4/T0CKI/C1OUT 6 RA5/AN4/SS/C2OUT 7 RB0/AN12/INT 21 RB1/AN10/P1C/C12IN3- 22 RB2/AN8/P1B 23 RA7/OSC1/CLKIN 9 RA6/OSC2/CLKOUT 10 RC0/T1OSO/T1CKI 11 RC1/T1OSI/CCP2 12 RB7/ICSPDAT 28 RB6/ICSPCLK 27 RB5/AN13/T1G 26 RB4/AN11/P1D 25 RC7/RX/DT 18 RC6/TX/CK 17 RC5/SDO 16 RC4/SDI/SDA 15 RC3/SCK/SCL 14 RC2/CCP1/P1A 13 RA3/AN3/VREF+/C1IN+ 5 RB3/AN9/PGM/C12IN2- 24 RE3/MCLR/VPP 1 U2 PIC16F883 RA0/AN0/ULPWU/C12IN0- 2 RA1/AN1/C12IN1- 3 RA2/AN2/VREF-/CVREF/C2IN+ 4 RA4/T0CKI/C1OUT 6 RA5/AN4/SS/C2OUT 7 RB0/AN12/INT 21 RB1/AN10/P1C/C12IN3- 22 RB2/AN8/P1B 23 RA7/OSC1/CLKIN 9 RA6/OSC2/CLKOUT 10 RC0/T1OSO/T1CKI 11 RC1/T1OSI/CCP2 12 RB7/ICSPDAT 28 RB6/ICSPCLK 27 RB5/AN13/T1G 26 RB4/AN11/P1D 25 RC7/RX/DT 18 RC6/TX/CK 17 RC5/SDO 16 RC4/SDI/SDA 15 RC3/SCK/SCL 14 RC2/CCP1/P1A 13 RA3/AN3/VREF+/C1IN+ 5 RB3/AN9/PGM/C12IN2- 24 RE3/MCLR/VPP 1 U3 PIC16F883 RA0/AN0/ULPWU/C12IN0- 2 RA1/AN1/C12IN1- 3 RA2/AN2/VREF-/CVREF/C2IN+ 4 RA4/T0CKI/C1OUT 6 RA5/AN4/SS/C2OUT 7 RB0/AN12/INT 21 RB1/AN10/P1C/C12IN3- 22 RB2/AN8/P1B 23 RA7/OSC1/CLKIN 9 RA6/OSC2/CLKOUT 10 RC0/T1OSO/T1CKI 11 RC1/T1OSI/CCP2 12 RB7/ICSPDAT 28 RB6/ICSPCLK 27 RB5/AN13/T1G 26 RB4/AN11/P1D 25 RC7/RX/DT 18 RC6/TX/CK 17 RC5/SDO 16 RC4/SDI/SDA 15 RC3/SCK/SCL 14 RC2/CCP1/P1A 13 RA3/AN3/VREF+/C1IN+ 5 RB3/AN9/PGM/C12IN2- 24 RE3/MCLR/VPP 1 U4 PIC16F883 RXD RTS TXD CTS MAESTRO RXD RTS TXD CTS EJE1 RXD RTS TXD CTS EJE2 RXD RTS TXD CTS EJE3 04_SPI_3EJES.rar
  • 15.
    Ejemplo 05: Escriturabidireccional con 3 ejes Idem ejemplo 4, pero permite la comunicación desde los ejes al maestro utilizando líneas de interrupción auxiliares sobre RB4, RB5 y RB6 (interrupción combinada “on change”) Maestro “:eje,dato<enter>”  eje:”dato” Eje “:dato<enter>”  Maestro “eje-dato<enter>” RA0/AN0/ULPWU/C12IN0- 2 RA1/AN1/C12IN1- 3 RA2/AN2/VREF-/CVREF/C2IN+ 4 RA4/T0CKI/C1OUT 6 RA5/AN4/SS/C2OUT 7 RB0/AN12/INT 21 RB1/AN10/P1C/C12IN3- 22 RB2/AN8/P1B 23 RA7/OSC1/CLKIN 9 RA6/OSC2/CLKOUT 10 RC0/T1OSO/T1CKI 11 RC1/T1OSI/CCP2 12 RB7/ICSPDAT 28 RB6/ICSPCLK 27 RB5/AN13/T1G 26 RB4/AN11/P1D 25 RC7/RX/DT 18 RC6/TX/CK 17 RC5/SDO 16 RC4/SDI/SDA 15 RC3/SCK/SCL 14 RC2/CCP1/P1A 13 RA3/AN3/VREF+/C1IN+ 5 RB3/AN9/PGM/C12IN2- 24 RE3/MCLR/VPP 1 U1 PIC16F883 RA0/AN0/ULPWU/C12IN0- 2 RA1/AN1/C12IN1- 3 RA2/AN2/VREF-/CVREF/C2IN+ 4 RA4/T0CKI/C1OUT 6 RA5/AN4/SS/C2OUT 7 RB0/AN12/INT 21 RB1/AN10/P1C/C12IN3- 22 RB2/AN8/P1B 23 RA7/OSC1/CLKIN 9 RA6/OSC2/CLKOUT 10 RC0/T1OSO/T1CKI 11 RC1/T1OSI/CCP2 12 RB7/ICSPDAT 28 RB6/ICSPCLK 27 RB5/AN13/T1G 26 RB4/AN11/P1D 25 RC7/RX/DT 18 RC6/TX/CK 17 RC5/SDO 16 RC4/SDI/SDA 15 RC3/SCK/SCL 14 RC2/CCP1/P1A 13 RA3/AN3/VREF+/C1IN+ 5 RB3/AN9/PGM/C12IN2- 24 RE3/MCLR/VPP 1 U2 PIC16F883 RA0/AN0/ULPWU/C12IN0- 2 RA1/AN1/C12IN1- 3 RA2/AN2/VREF-/CVREF/C2IN+ 4 RA4/T0CKI/C1OUT 6 RA5/AN4/SS/C2OUT 7 RB0/AN12/INT 21 RB1/AN10/P1C/C12IN3- 22 RB2/AN8/P1B 23 RA7/OSC1/CLKIN 9 RA6/OSC2/CLKOUT 10 RC0/T1OSO/T1CKI 11 RC1/T1OSI/CCP2 12 RB7/ICSPDAT 28 RB6/ICSPCLK 27 RB5/AN13/T1G 26 RB4/AN11/P1D 25 RC7/RX/DT 18 RC6/TX/CK 17 RC5/SDO 16 RC4/SDI/SDA 15 RC3/SCK/SCL 14 RC2/CCP1/P1A 13 RA3/AN3/VREF+/C1IN+ 5 RB3/AN9/PGM/C12IN2- 24 RE3/MCLR/VPP 1 U3 PIC16F883 RA0/AN0/ULPWU/C12IN0- 2 RA1/AN1/C12IN1- 3 RA2/AN2/VREF-/CVREF/C2IN+ 4 RA4/T0CKI/C1OUT 6 RA5/AN4/SS/C2OUT 7 RB0/AN12/INT 21 RB1/AN10/P1C/C12IN3- 22 RB2/AN8/P1B 23 RA7/OSC1/CLKIN 9 RA6/OSC2/CLKOUT 10 RC0/T1OSO/T1CKI 11 RC1/T1OSI/CCP2 12 RB7/ICSPDAT 28 RB6/ICSPCLK 27 RB5/AN13/T1G 26 RB4/AN11/P1D 25 RC7/RX/DT 18 RC6/TX/CK 17 RC5/SDO 16 RC4/SDI/SDA 15 RC3/SCK/SCL 14 RC2/CCP1/P1A 13 RA3/AN3/VREF+/C1IN+ 5 RB3/AN9/PGM/C12IN2- 24 RE3/MCLR/VPP 1 U4 PIC16F883 RXD RTS TXD CTS MAESTRO RXD RTS TXD CTS EJE1 RXD RTS TXD CTS EJE2 RXD RTS TXD CTS EJE3 05_SPI_3EJES_BIDIR.rar