Академический Документы
Профессиональный Документы
Культура Документы
1
UNIVERSIDAD POLITÉCNICA SALESIANA
Trabajo de Sistemas Microprocesados II
Fecha de realización:10/06/2019
Fecha de entrega:14/06/2019
cambio el dato B (pero no hay forma de recibir También permite la comunicación de un master con varios
nada si yo no mando algo "a cambio"). [2] slaves:
3. Puede ser una transmisión/recepción
simultánea si tanto el dato A como el B son
significativos para la comunicación. Pensar por
ejemplo en un Digital Signal Procesor (DSP) que
recibe una serie de muestras de una señal y
efectúa algún tipo de procesado sobre ella. Tras
un cierto retraso, inherente al procesado,
empezará a mandar muestras de vuelta. A partir
de ese momento, por cada muestra de la señal
original que mande el host recibirá una muestra
procesada en una comunicación full-duplex. [2]
4. Finalmente, hay situaciones donde los
datos intercambiados no le interesan a ningún
dispositivo. Por ejemplo, en las especificaciones
del protocolo SPI de las tarjetas SD se requiere Figura 4. Transmisión de datos de Master a varios Slaves
mandar 8 clocks de reloj tras un intercambio
comando/respuesta para que la tarjeta pase a La barra encima de SS indica negación, y es la forma
ejecutar el comando recibido. En ese caso el standard de expresar que si queremos seleccionar al
esclavo #2 debemos poner a nivel bajo SS2 y mantener
microcontrolador y la tarjeta se intercambiarán
altas SS1 y SS3. De esta forma los esclavos #1 y #3
un byte que a ninguno de los dos interesa solo ignoraran educadamente la conversación entre Master y
para que le lleguen los 8 pulsos de reloj Slave #2. [3]
necesarios a la tarjeta. [2]
Como se ve, si empieza a haber muchos esclavos el
número de líneas dedicadas a la selección de dispositivos
crece. Además, el master tiene que estar continuamente
preguntando a los esclavos si desean algo, ya que un
esclavo no tiene ninguna forma de iniciar la conversación.
2
UNIVERSIDAD POLITÉCNICA SALESIANA
Trabajo de Sistemas Microprocesados II
Fecha de realización:10/06/2019
Fecha de entrega:14/06/2019
3. MATERIALES Y EQUIPO
Fuente DC variable
Fig. 6 Conexión del primer esclavo.
Modulo grabador de pic
3 Microcontroladores 18F4550 4.3. En ambos esclavos (receptor 1 y receptor 2)
3 Pulsadores acoplar ocho diodos led’s, los primeros cuatro son del
Resistencias de 220 ohms y 1 k ohms maestro y los cuatro siguiente pertenecen al esclavo,
tener en cuenta colocar resistencias de 220Ω para
Crystal de cuarzo de 4 MHz
protección de cada led’s y enlanzar en cada pin de su
Capacitores cerámicos de 22Pf puerto del PIC.
Software de PIckit2
Potenciómetro
16 LED’S
3 Dip Switch
GLCD
3
UNIVERSIDAD POLITÉCNICA SALESIANA
Trabajo de Sistemas Microprocesados II
Fecha de realización:10/06/2019
Fecha de entrega:14/06/2019
5 ANÁLISIS DE RESULTADOS
Disponemos de tres Pics 18F4550, los cuales, están
conectados a través del protocolo SPI, actuando como
Maestro-Esclavo.
4
UNIVERSIDAD POLITÉCNICA SALESIANA
Trabajo de Sistemas Microprocesados II
Fecha de realización:10/06/2019
Fecha de entrega:14/06/2019
8 REFERENCIAS:
[1] Colaboradores de Mikorelectronika, “Puertos de
Entrada/Salida”, Tomado en Mayo 2017, [Online]. Disponible en:
https://learn.mikroe.com/ebooks/microcontroladorespicc/chapter
/puertos-de-entradasalida/
5
UNIVERSIDAD POLITÉCNICA SALESIANA
Trabajo de Sistemas Microprocesados II
Fecha de realización:10/06/2019
Fecha de entrega:14/06/2019
9 ANEXOS
Simulación en Proteus
ANEXO 1
ANEXO 2
ANEXO 3
6
UNIVERSIDAD POLITÉCNICA SALESIANA
Trabajo de Sistemas Microprocesados II
Fecha de realización:10/06/2019
Fecha de entrega:14/06/2019
Programación en Mikroc
EMISOR
int cont=0;
short dato=0;
void main() {
//define puertos para SPI MASTER
TRISB.f0 =1; /* RB0 as input(SDI) */
TRISB.f1=0; /* RB1 as output(SCK) */
TRISA.f5=0; /* RA5 as a output(SS') */
TRISB.f2=0; /* RA5 as a output(SS1') */
TRISC.f7=0; /* RC7 as output(SDO) */
//Declaracion de entradas de pulsadores
TRISA.f0=1;
TRISA.f1=1;
TRISA.f2=1;
TRISA.f3=1;
TRISb.f7=1;
7
UNIVERSIDAD POLITÉCNICA SALESIANA
Trabajo de Sistemas Microprocesados II
Fecha de realización:10/06/2019
Fecha de entrega:14/06/2019
int num2=PORTA.f1;
int num3=PORTA.f2;
int num4=PORTA.f3;
int num5=PORTB.f7;
char txt[7];
int total;
8
UNIVERSIDAD POLITÉCNICA SALESIANA
Trabajo de Sistemas Microprocesados II
Fecha de realización:10/06/2019
Fecha de entrega:14/06/2019
RECEPTOR
int dato=0;
short dato1=0;
short dato2=0;
short datoMASTER=0;
int cont=0;
//INTERRUPCIÓN DEL DATO QUE ENVÍA EL MAESTRO
void interrupt(){
if(SSPIF_bit == 1){
datoMASTER = SSPBUF; //Lectura de valores que envia el MASTER
cont++;
if(cont==1){
PORTb = datoMASTER<<4; //Lectura de valor que envia el MASTER
//PORTd = datoMASTER;//>>4;
}
if(cont>1){
cont=0;
}
SSPBUF = dato1; //Suma de datos de MASTER y SLAVE
void main() {
//Define pines de SPI
TRISB.TRISB0 = 1; //RB0 as input(SDI)
TRISB.TRISB1 = 1; //RB1 as output(SCK)
TRISA.TRISA5 = 1; //RA5 as a output(SS')
TRISC.TRISC7 = 0; //RC7 as output(SDO)
TRISA.f0=1;
TRISA.f1=1;
TRISA.f2=1;
TRISA.f3=1;
TRISA.f4=1;
TRISB.TRISB4 = 0;
TRISB.TRISB5 = 0;
TRISB.TRISB6 = 0;
TRISB.TRISB7 = 0;
TRISD=0;
ADCON1=15; //Todas las entradas digitales
//interrupciones en el puerto paralelo
SSPBUF = 0; //almacena datos
9
UNIVERSIDAD POLITÉCNICA SALESIANA
Trabajo de Sistemas Microprocesados II
Fecha de realización:10/06/2019
Fecha de entrega:14/06/2019
while(1){
int num1=PORTA.f0;
int num2=PORTA.f1;
int num3=PORTA.f2;
int num4=PORTA.f3;
10