Microprocessors 2 lesson 7
Subjects lesson 7 Planning Interrupts Serial communication /USART Questions
Interrupt sources External Interrupt RA2/INT TMR0 Overflow Interrupt PORTA Change Interrupts 2 Comparator Interrupts A/D Interrupt Timer1 Overflow Interrupt Timer2 Match Interrupt EEPROM Data Write Interrupt Fail-Safe Clock Monitor Interrupt Enhanced CCP Interrupt
Interrupt Logic
Program memory map
Interrupt Software #include "int16CXX.H" #pragma origin 4 interrupt int_server( void) { int16 var; int_save_registers // W, STATUS (and PCLATH) if (T0IF) { /* TMR0 overflow interrupt */ TMR0 = -255; CharToLed(var); var=var*2; if (var>=255) var=1; T0IF = 0; /* reset flag */ int_restore_registers // W, STATUS (and PCLATH) }
Main program interrupts void main( void) { while (1) { }
Serial Communication Intoduction Morse code telegraphy Morse codetelegraphy RS-232 (low-speed, implemented by Serial Ports) RS-232Serial Ports RS485 Universal Serial Bus (moderate-speed, for connecting computers to peripherals) Universal Serial Bus FireWire Fibre Channel (high-speed, for connecting computers to mass storage devices) Fibre Channel InfiniBand (very high speed, broadly comparable in scope to PCI) InfiniBandPCI Serial Attached SCSI Serial ATA PCI Express
RS232-C 1 Half duplex Full duplex 5,6,7,8 databits ASCII (0-127) Stop bit(s) Parity DCE (Data communication equipment) DTE(Data terminal Equipment (PC)) Serial Communication
RS232 DB9-connector 9 Pin Connector on a DTE device (PC connection ) Male RS232 DB9 Pin Number Direction of signal : 1Carrier Detect (CD) (from DCE) Incoming signal from a modem 2 Received Data (RD) Incoming Data from a DCE 3 Transmitted Data (TD) Outgoing Data to a DCE 4 Data Terminal Ready (DTR) Outgoing handshaking signal 5 Signal Ground Common reference voltage 6 Data Set Ready (DSR) Incoming handshaking signal 7 Request To Send (RTS) Outgoing flow control signal 8 Clear To Send (CTS) Incoming flow control signal 9 Ring Indicator (RI) (from DCE) Incoming signal from a modem
RS232 Synchrone A-Synchrone Synchrone: Always dataflow of bits to synchronisize A-Synchrone; When no data needed to send no dataflow. Synchronysation by start and stop bits (So slower) Serial Communication
RS232 Voltages RS232 LevelTransmitter (V) Receiver (V) Space status (0) Mark status (1) Not defined … Serial Communication
Cabellenght versus baudrate Baud rateMaximum cabellength(m) RS232 kabellengte volgens Texas Instruments Serial Communication
Serial communication PIC16F688 Asynchronous - Auto-wake-up - Auto baud calibration - 13-bit Break character Synchronous – selectable clock Synchronous – clock polarity Serial Communication
Transmit status+control register bit 7 CSRC: Clock Source Select bit Asynchronous mode: Don’t care Synchronous mode: 1 = Master mode (clock generated internally from BRG) 0 = Slave mode (clock from external source) bit 6 TX9: 9-bit Transmit Enable bit 1 = Selects 9-bit transmission 0 = Selects 8-bit transmission bit 5 TXEN: Transmit Enable bit 1 = Transmit enabled 0 = Transmit disabled Note: SREN/CREN overrides TXEN in Sync mode. bit 4 SYNC: USART Mode Select bit 1 = Synchronous mode 0 = Asynchronous mode bit 3 SENDB: Send Break Character bit Asynchronous mode: 1 = Send Sync Break on next transmission (cleared by hardware upon completion) 0 = Sync Break transmission completed Synchronous mode: Don’t care bit 2 BRGH: High Baud Rate Select bit Asynchronous mode: 1 = High speed 0 = Low speed Synchronous mode: Unused in this mode bit 1 TRMT: Transmit Shift Register Status bit 1 = TSR empty 0 = TSR full bit 0 TX9D: 9th bit of Transmit Data Can be address/data bit or a parity bit.
Buad rate control
Baud rate calculating
SETUP for serial communication
Exercise In the last week of this quarter you have to finish a programm what shows the working of the serial port. You can do this with 2 persons. The programm on the 2 boards has to send the measured value from AN0 analogue input to the other board. The value received from the other board has to be shown, binary, on the 8 leds Serial Communication