microcontrolador mc68hc11
microcontrolador mc68hc11
microcontrolador mc68hc11
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
MICROCONTROLADOR 68HC11: Fundamentos, recursos y programación.<br />
MICROBÓTICA<br />
Nº Cliclo de SCK<br />
1 2 3 4 5 6 7 8<br />
SCK (CPOL=0)<br />
SCK (CPOL=1)<br />
4.4.6.<br />
Ejemplo<br />
de<br />
DATO (CPHA=0)<br />
BMS<br />
6 5 4 3 2 1<br />
bms<br />
DATO (CPHA=1)<br />
BMS<br />
6 5 4 3 2 1<br />
bms<br />
SS<br />
Figura 28: Cronograma del envío de un byte por el SPI<br />
programación del SPI<br />
Se trata de un enlace entre dos <strong>microcontrolador</strong>es a través del canal síncrono. Los dos supuestos nodos<br />
(micros) se encuentran a su vez conectados a sendos Pcs vía serie asíncrona estándar, de tal forma que al presionar<br />
una tecla en uno de ellos (Maestro), el 68HC11 asociado recibe el dato transmitiéndolo vía SPI al otro para que este a<br />
su vez lo transmita al otro Pc (Esclavo). De esta manera los dos ordenadores quedan virtualmente conectados por el<br />
SPI. La red queda conformada por dos enlaces asíncronos entre los micros y los Pcs respectivos, y por un enlace<br />
síncrono entre los propios <strong>microcontrolador</strong>es.<br />
El programa ejemplo se ha probado conectando dos tarjetas CT6811 como se muestra en la figura 29.<br />
Cable<br />
Serie<br />
SPI<br />
Cable<br />
Serie<br />
PC<br />
CT6811<br />
CT6811<br />
PC<br />
PROGRAMA MAESTRO:<br />
MAESTRO<br />
Figura 29: Montaje realizado para probar el funcionamiento del SPI<br />
ESCLAVO<br />
; +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+<br />
; ¦ MAESTRO.ASM (C) GRUPO J&J. Abril 1997 ¦<br />
; ¦−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−¦<br />
; ¦ Programa ejemplo para ser ejecutado en la tarjeta CT6811. ¦<br />
; ¦ Este programa se debe cargar en la RAM interna del 6811. ¦<br />
; ¦ ¦<br />
; ¦ Se envía el carácter recibido por el SCI a través del SPI. ¦<br />
; +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+<br />
; Configuración del MAESTRO.<br />
; DDRD: . . !ss sck mosi miso txd rxd<br />
; 0 0 1 1 1 1 0 0<br />
; El ss se desactiva, en caso contrario, se activaría con una entrada a nivel<br />
; bajo => D/P<br />
; La salida será mosi, y miso da igual su valor<br />
; SPCR: spie spe dwom mstr cpol cpha spr1 spr0<br />
; 0 1 0 1 0 0 0 0<br />
; Desactivamos las interrupciones, activamos el SPI, salida con drivers,<br />
; configurado como maestro, formato de señal y alta velocidad.<br />
; SPSR: spif wcol . modf . . . .<br />
; x<br />
; Leemos el flag spif que se pone a uno cuando se termina la transmisión.<br />
; Constantes:<br />
PORTD equ $08 ; Registro de datos del puerto D.<br />
BLOQ equ $F000 ; Comienzo de la zona de datos a transmitir.<br />
TAM equ $1FFF ; Tamaño del buffer a transmitir.<br />
; Registros del SPI.<br />
LVI