User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 599
UG585 (v1.11) September 27, 2016
Chapter 19: UART Controller
5. Enable the interrupt. Enable the interrupt with a write of 1 to uart.Intrpt_en_reg0 [TEMPTY].
6. Wait until the TxFIFO is empty. Repeat from step 1 when uart.Channel_int_sts_reg0 [TEMPTY] is
set to 1.
19.3.4 Receive Data
Example: Receive Data using the Polling Method
1. Wait until the RxFIFO is filled up to the trigger level. Check to see if
uart.Channel_sts_reg0[RTRIG] = 1 or uart.Chnl_int_sts_reg0 [TIMEOUT] = 1.
2. Read data from the RxFIFO. Read data from the uart.TX_RX_FIFO0 register.
3. Repeat step 2 until FIFO is empty. Check that uart.Channel_sts_reg0 [REMPTY] = 1.
4. Clear if Rx timeout interrupt status bit is set. Write 1 to Chnl_int_sts_reg0 [TIMEOUT].
Example: Receive Data using the Interrupt Method
1. Enable interrupts. Write a 1 to uart.Intrpt_en_reg0 [TIMEOUT] and uart.Intrpt_en_reg0[RTRIG].
2. Wait until the RxFIFO is filled up to the trigger level or Rx timeout. Check that
uart.Chnl_int_sts_reg0 [RTRIG] = 1 or uart.Chnl_int_sts_reg0 [TIMEOUT] = 1.
3. Read data from the RxFIFO. Read data from the uart.TX_RX_FIFO0 register.
4. Repeat step 2 and 3 until the FIFO is empty. Check that uart.Channel_sts_reg0 [REMPTY] = 1.
5. Clear the interrupt status bits if set. Write a 1 to Chnl_int_sts_reg0 [TIMEOUT] or
Chnl_int_sts_reg0 [RTRIG].
19.3.5 RxFIFO Trigger Level Interrupt
Example: Set the RxFIFO Trigger Level and Enable the Interrupt
The Intrpt_en_reg0 register has bits to enable the interrupt mask and Intrpt_dis_reg0 has bits to
forcefully disable the interrupts. Each pair of bits should be set mutually exclusive (i.e., one register
has a 1 for the bit and the other register has a 0):
Intrpt_en_reg0: Write-only. Enable interrupt bit(s).
Intrpt_dis_reg0: Write-only. Force disable of interrupt bit(s).
1. Program the Trigger Level. Write to the 6-bit field, uart.Rcvr_FIFO_trigger_level0[RTRIG].
2. Enable the RTRIG interrupt. Set the enable bit, clear the disable bit, and verify the mask value:
a. Set uart.Intrpt_en_reg0[RTRIG] = 1.
b. Clear uart.Intrpt_dis_reg0[RTRIG] = 0.
c. The uart.intrpt_mask_reg0[RTRIG] read back = 1 (enabled interrupt).
3. Disable the RTRIG interrupt. Set the disable bit, clear the enable bit, and verify the mask value:
a. Set uart.Intrpt_dis_reg0[RTRIG] =1.
b. Clear uart.Intrp_en_reg0[RTRIG] = 0.