19.5 Formatos de Trama
La trama serial para el MSPIM es definida para ser de o bits de Caracteres de
datos. EL USART en modo MSPIM tiene dos formatos de tramas válidas:
• 8-bits de datos con MSB primero.
• 8-bit de datos con LSB primero.
La trama comienza con el dato del bit más o menos significante. Luego los bits
del siguiente dato, suben a un total de ocho, esto sucede, enviando con el bit
más o menos significante. Cuando una trama completa es transmitida, una
nueva trama puede directamente seguir, o la línea a de comunicación puede ser
puesta en alto (idle).
El bit UDORDn en UCSRnC pone el formato de trama usada por la USART en
modo MSPIM. La recepción y Transmisión usa la misma configuración. Note
que el cambio de configuración de cualquiera de estos bits interrumpiría la
comunicación para ambos tanto Recepción como Transmisión.
La transferencia de 16-bits puede ser almacenada escribiendo dos bits de datos
a UDRn. El UART transmite completamente las interrupciones luego de que el
valor en 16-bits ha sido desplazado.
19.5.1 Inicialización USART MSPIM
El USART en modo MSPIM tiene que ser inicializado antes que cualquier
comunicación pueda tener lugar. El proceso de inicialización normalmente
consiste en la configuración de la velocidad en baudios, configurando en modo
maestro de operación (Poniendo DDR_XCKn a uno), configurando el formato
de trama y habilitando el Transmisor y Receptor. Solo el transmisor puede
operar independientemente. Para manejo de interrupciones USART, la Bandera
Global de Interrupción debería ser limpiada (y
así deshabilitar las
interrupciones globales) cuando se ha hecho la inicialización.
Nota: para asegurarse que la inmediata inicialización del XCKn del registro de
salida de la velocidad en baudios (UBRRn) seria cero al tiempo que la
transmisión es habilitada. Contrariamente al modo normal del USART
operando el UBRRn luego de ser escrito el valor deseado después que la
transmisión es habilitada, pero antes de que la primera transmisión es iniciada.
Configurando UBRRn a cero antes habilitando la transmisión no es necesaria si
la inicialización es hecha inmediatamente después del reset desde que UBRRn
es reseteada a cero.
Antes de hacer la re-inicialización con el cambio de velocidad en baudios, modo
de datos, o formato de trama, seria seguro que no habría transmisiones durante
el periodo en el que los registros son cambiados. La bandera TXCn puede ser
usada para chequear que transmisión ha sido completada, y la bandera RXCn
puede ser usada para chequear que no hay lecturas de datos en buffer de
recepción. Note que la bandera TXCn seria limpiada antes de cada transmisión
(antes de que UDRn es escrita) si esto es usado para este propósito.
El siguiente ejemplo de código para inicialización del USART es mostrado en
asembler y en C que tienen igual funcionalidad.