Download CM7000 Series - Digi International
Transcript
The serial ports can be polled or interrupt-driven. A polling driver tests the ready flags (TDRE and RDRF) until a ready condition appears (transmitter data register empty or receiver data register full). If an error condition occurs on receive, the routine must clear the error flags and take appropriate action, if any. If the /CTS line is used for flow control, transmission of data is automatically stopped when /CTS goes high because the TDRE flag is disabled. This prevents the driver from transmitting more characters because it thinks the transmitter is not ready. The transmitter will still function with /CTS high, but exercise care because TDRE is not available to synchronize loading the data register (TDR) properly. An interrupt-driven port works as follows. The program enables the receiver interrupt as long as it wants to receive characters. The transmitter interrupt is enabled only while characters are waiting in the output buffer. When an interrupt occurs, the interrupt routine must determine the cause: receiver data register full, transmitter data register empty, receiver error, or /DCD0 pin high (channel 0 only). None of these interrupts is edgetriggered. Another interrupt will occur immediately if interrupts are reenabled without disabling the condition causing the interrupt. The signal /DCD0 is grounded on the CM7000. Table 3-10 lists the interrupt vectors. Table 3-10. Serial Port Interrupt Vectors Address Name 0E SER0_VEC Z180 Serial Port 0 (higher priority) 10 SER1_VEC Z180 Serial Port 1 64 s System Development Description CM7000