Part Number Hot Search : 
MA4SPS42 1N980 C1102 1N5244 W9844M 1H100 13080 STC403
Product Description
Full Text Search
 

To Download OX16PCI952-TQFP-A Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  oxford semiconductor ltd. 25 milton park, abingdon, oxon, ox14 4sh, uk tel: +44 (0)1235 824900 fax: +44(0)1235 821141 oxford semiconductor 2001 ox16pci952 datasheet rev 1.1 ? june 2001 part no. ox1 6pci952 - tqfp - a f eatures two 16c950 high performance uart channels ieee1284 compliant spp/epp/ecp parallel port multi - function target pci controller. fully compliant to pci bus specification 2.2 and pci power management 1.0. function access to pre - configure each ua rt and the parallel port, prior to handover to generic device drivers. uarts fully software compatible with 16c550 - type devices. baud rates up to 15mbps in asynchronous mode and 60mbps in external 1x clock mode 128 - byte deep fifo per transmitter and receiv er flexible clock prescaler from 1 to 31.875 automated in - band flow control using programmable xon/xoff in both directions automated out - of - band flow control using cts#/rts# and/or dsr#/dtr# arbitrary trigger levels for receiver and transmitter fifo inter rupts and automatic in - band and out - of - band flow control infra - red (irda) receiver and transmitter operation 5, 6, 7, 8 and 9 - bits data framing global interrupt status and readable fifo levels to facilitate implementation of efficient device drivers detect ion of bad data in the receiver fifo 2 multi - purpose io pins which can be configured as interrupt inputs or ?wake - up? pins (via local registers). auto - detection of a range of optional microwire tm compatible eeproms, to reconfigure device. operation via io or memory mapping. 5.0v operation 128 pin tqfp package d escription the ox16pci952 is a single chip solution for pci - based serial and parallel expansion add - in cards. it is a dual function device, offering io or memory mapped access to the two ultra - high performance ox16c950 uarts and the bi - directional parallel port. these functions are defined by function 0 and function 1, respectively. serial port cards with 2 serial ports and a parallel port can be designed without redefining any device parameters . each uart channel in the ox16pci952, is the fastest available pc - compatible uart, offering data rates up to 15mbps and 128 - byte deep transmitter and receiver fifos. the deep fifos reduce cpu overhead and allow utilisation of higher data rates. each uart channel is software compatible with the widely used industry - standard 16c550 devices and compatibles, as well as the ox16c95x family of high performance uarts. in addition to increased performance and fifo size, the uarts also provide the full set of ox16 c95x enhanced features including automated in - band flow control, readable fifo levels, etc. the parallel port is an ieee 1284 compliant spp, epp and ecp parallel port that fully supports the existing centronics interface. for legacy applications, the pci resources have been arranged so that the parallel port can be located at standard i/o addresses a set of local registers is available to enhance device driver efficiency and reduce interrupt latency. each internal uart has features such as shadowed fifo f ill levels, an interrupt source register and good - data status, readable in consecutive dword registers and is visible to logical function0 in both io space and memory space. the local registers also provide additional controls for each uart and the paralle l port, to customise the device for the end - users application. the efficient 32 - bit, 33mhz target - only interface is compliant with the pci bus specification version 2.2 and version 1.0 of pci power management specification. for full flexibility, all the default configuration register values can be overwritten using an optional microwire tm compatible serial eeprom. this eeprom can also be used to provide function access to pre - configure each uart into enhanced modes or pre - configure the parallel port, pr ior to any pci configuration accesses and before control is handed to generic device drivers. microwire tm is a trade mark of national semiconductor. ox16pci952 data sheet integrated high performance dual uarts, parallel port and 5.0v pci interface ds_b008a_00
datasheet revision 1.1 page 2 ox16pci952 oxford semiconductor ltd. c ontents 1 performance comparis on ................................ ................................ ................................ .. 4 1.1 improvements of the ox16pci952 over disc rete solutions: ................................ ................................ ....... 4 2 block diagram ................................ ................................ ................................ ....................... 6 3 pin information ................................ ................................ ................................ ..................... 7 4 pin description ................................ ................................ ................................ ...................... 8 5 configuration & oper ation ................................ ................................ ............................. 13 6 pci target controlle r ................................ ................................ ................................ ..... 14 6.1 operation ................................ ................................ ................................ ................................ ................................ ........ 14 6.2 configuration space ................................ ................................ ................................ ................................ ................. 15 6.3 accessing function 0 and function 1 ................................ ................................ ................................ ................. 17 6.4 accessing the local configuration regist ers ................................ ................................ ............................ 19 6.5 pci interru pts ................................ ................................ ................................ ................................ ............................... 24 6.6 power management ................................ ................................ ................................ ................................ .................... 25 7 internal ox16c950 ua rt ................................ ................................ ................................ ..... 28 7.1 o peration ? mode sele ction ................................ ................................ ................................ ................................ ... 28 7.2 register description tables ................................ ................................ ................................ ................................ . 30 7.3 reset configuration ................................ ................................ ................................ ................................ ................. 34 7.4 transmitter and rece iver fifos ................................ ................................ ................................ ........................... 35 7.5 line control & statu s ................................ ................................ ................................ ................................ ............... 36 7.6 interrupts & sleep m ode ................................ ................................ ................................ ................................ ......... 38 7.7 modem interface ................................ ................................ ................................ ................................ ......................... 40 7.8 other standard regis ters ................................ ................................ ................................ ................................ ..... 41 7.9 automati c flow control ................................ ................................ ................................ ................................ ......... 42 7.10 baud rate generation ................................ ................................ ................................ ................................ ............... 44 7.11 additional features ................................ ................................ ................................ ................................ .................. 46 8 bi - directional paral lel port ................................ ................................ .......................... 52 8.1 operation and mode s election ................................ ................................ ................................ ............................. 52 8.2 parallel port interr upt ................................ ................................ ................................ ................................ ......... 53 8.3 register description ................................ ................................ ................................ ................................ ................. 54 9 serial eeprom specif ication ................................ ................................ ........................... 57 9.1 eeprom data org anisation ................................ ................................ ................................ ................................ ..... 57 10 operating conditions ................................ ................................ ................................ ..... 61 11 dc electrical charac teristics ................................ ................................ ................... 62 11.1 5v standard (non - pc i) i/o buffers ................................ ................................ ................................ ....................... 62 11.2 pci i/o buffers ................................ ................................ ................................ ................................ ............................... 62 12 ac electrical charac teristics ................................ ................................ ................... 63 12.1 pci i/o buffers ................................ ................................ ................................ ................................ .............................. 63 12.2 serial ports ................................ ................................ ................................ ................................ ................................ .. 63 13 timing waveforms ................................ ................................ ................................ ............ 64 14 package information ................................ ................................ ................................ ..... 7 4 15 ordering information ................................ ................................ ................................ .... 75 16 contact details ................................ ................................ ................................ ............... 76
datasheet revision 1.1 page 3 ox16pci952 oxford semiconductor ltd. this page is intentionally left blank
datasheet revision 1.1 page 4 ox16pci952 oxford semiconductor ltd. 1 p erformance c omparison feature ox16pci952 16c552 + pci bridge 16c652 + pci bridge internal serial channels 2 0 0 integral 1284 compliant parallel port yes n o no multi - function pci device yes no no support for pci power management yes no no zero wait - state read/write operation yes no no no. of available external interrupt pins 2 2 2 dword access to uart interrupt source registers & fifo levels yes no no good - data status yes no no full plug and play with external eeprom yes yes yes external 1x baud rate clock yes no no max baud rate in normal mode 15 mbps 115 kbps 1.5 mbps max baud rate in 1x clock mode 60 mbps n/a n/a fifo depth 128 16 64 sleep mode yes no yes auto xon/xoff flow yes no yes auto cts#/rts# flow yes no yes auto dsr#/dtr# flow yes no no no. of rx interrupt thresholds 128 4 4 no. of tx interrupt thresholds 128 1 4 no. of flow control thresholds 128 n/a 4 transmitter empty interrup t yes no no readable status of flow control yes no no readable fifo levels yes no no clock prescaler options 248 n/a 2 rx/tx disable yes no no software reset yes no no device id yes no no 9 - bit data frames yes no no rs485 buffer enable yes no no i nfra - red (irda) yes no yes table 1 : ox16pci952 performance compared with pci bridge + generic uart/parallel port combinations. 1.1 improvements of the ox16pci952 over discrete solutions: higher degree of integration: the ox16pci952 offers two internal ultra - high performance 16c950 uarts and one ieee1284 compliant bi - directional parallel port. uart device driver efficiency is increased by using each channel?s features such as the 128 - byte deep transmitter & receiver fifos, flexible c lock options, automatic flow control, programmable interrupt and flow control trigger levels and readable fifo levels. data rates of each uart is up to 60mbps. improved access timing: access to the internal uarts require zero or one pci wait states. a pc i read transaction from an internal uart can complete within five pci clock cycles and a write transaction to an internal uart can complete within four pci clock cycles. reduces interrupt latency: the ox16pci952 offers shadowed fifo levels and interrupt status registers of the internal uarts, as well as general device interrupt status, to reduce the device driver interrupt latency.
datasheet revision 1.1 page 5 ox16pci952 oxford semiconductor ltd. power management: both functions of the ox16pci952 comply with the pci power management specification 1.0 and the pc98/99 power management specifications, by offering the extended capabilities for power management and supporting the power states d0, d2 and d3. this achieves significant power savings by allowing device drivers to power down the pci functions and disable the ua rt channels and the parallel port. a ?wake - up? event (the ?power management event?) is requested via the pme# pin from either of the power states d2 or d3. for the uart channels, this wake - up request is generated through the uart line ri (for power state d3), and any modem line and the serial data in (for power state d2). for the parallel port, this wake - up request is generated through the multi - purpose io pins, mio(1:0). optional eeprom: the ox16pci952 can be reconfigured from an external microwire tm ba sed eeprom. however, this is not required in many applications as default values are provided for typical applications. features available via the use of the eeprom include redefining device id?s and vendor/sub - vendor id fields in the pci header space, sel ectively enabling/disabling interrupts, powerdown and wakeup requests, and performing function access to pre - configure the uarts and the parallel port. multi - function device: the ox16pci952 is a multi - function device to enable users to load individual de vice drivers for the internal serial ports and the internal parallel port.
datasheet revision 1.1 page 6 ox16pci952 oxford semiconductor ltd. 2 b lock d iagram config interface pci interface clock & baud rate generator eeprom interface function 0 interrupt logic function 1 mio logic dual uarts parallel port ad[31:0] mode0 fifosel c/be[3:0] pci clk frame# devsel# irdy# trdy# stop# par serr# perr# idsel rst# inta# intb# pme# xtli xtlo ee_do ee_ck ee_cs ee_di internal data/control bus mio[1:0] sout[1:0] sin[1:0] rts[1:0] dtr[1:0] cts[1:0] dsr[1:0] dcd[1:0] ri[1:0] pd[7:0] ack# pe busy slct err# slin# init# afd# stb# figure 1 : ox16pci952 block diagram
datasheet revision 1.1 page 7 ox16pci952 oxford semiconductor ltd. 3 p in i nformation package : 128 tqfp. (14mm x 14mm) ox16pci952 vdd ad24 z_cbe3 idsel ad23 ad22 ad21 ad20 gnd ad19 ad18 ad17 ad16 z_cbe2 z_frame z_irdy z_trdy z_devsel z_stop z_perr z_serr par z_cbe1 ad15 vdd gnd gnd gnd vdd gnd gnd vdd ad14 ad13 ad12 ad11 gnd vdd ad10 ad9 ad8 z_cbe0 ad7 ad6 ad5 ad4 ad3 ad2 ad1 ad0 test mode0 multi io 0 seeprom_di seeprom_do gnd vdd gnd gnd gnd vdd multi io 1 gnd seeprom_cs seeprom_sk local_trans_en parallel data 7 parallel data 6 parallel data 5 parallel data 4 parallel data 3 parallel data 2 parallel data 1 parallel data 0 gnd vdd stb_n afd_n init_n slin_n error_n selct busy pe ack fifosel xtlo xtli ext_data_in[1] z_ri[1] gnd gnd vdd gnd gnd z_dcd[1] z_dsr[1] z_cts[1] z_dtr[1] z_rts[1] ext_data_out[1] gnd vdd ext_data_in[0] z_ri[0] z_dcd[0] z_dsr[0] z_cts[0] z_dtr[0] z_rts[0] ext_data_out[0] z_inta z_intb z_reset pci_clk z_pme ad31 ad30 ad29 ad28 ad27 ad26 gnd gnd vdd gnd ad25 gnd 1 32 33 64 65 96 97 128 10 20 30 40 50 60 70 80 90 100 110 120
datasheet revision 1.1 page 8 ox16pci952 oxford semiconductor ltd. 4 p in d escription please refer to section ?pin information? for actual signal name to pin number assignments. pins dir 1 name description pci interface 2, 5, 6, 7, 8, 12, 13, 14, 15, 32, 33, 34, 35, 3 6, 39, 40, 41, 43, 44, 47, 48, 49, 50, 51, 52, 121, 122, 123, 124, 125, 126, 127 p_i/o ad[31:0] multiplexed pci address/data bus 3, 16, 31, 42 p_i c/be[3:0]# pci command/byte enable 117 p_i pci clk pci system clock 17 p_i frame# cycle frame 24 p_o de vsel# device select 18 p_i irdy# initiator ready 23 p_o trdy# target ready 25 p_o stop# target stop request 28 p_i/o par parity 27 p_o serr# system error 26 p_i/o perr# parity error 4 p_i idsel initialization device select 115 p_i rst# pci system r eset 113 114 p_od inta#, intb# pci interrupts 120 p_od pme# power management event serial port pins 88 i fifosel fifo select. for backward compatibility with 16c550, 16c650 and 16c750 devices the fifo depth of both uarts is 16 when fifosel is low. th e fifo size of both uarts is increased to 128 when fifosel is high. the fifo size of each uart may also be set to 128 by setting the uarts fcr[5] when lcr[7] is set, or by putting the device into enhanced mode. the unlatched state of this pin is readable by software. 111 101 111 101 o o o o ext_data_out[0] ext_data_out[1] irda_out[0] irda_out[1] serial data output, uart 0 serial data output, uart 1. uart irda data outputs, for uart 0 and 1. serial data output pins redefined as irda data outputs when mcr[6] of the corresponding uart channel is set in enhanced mode 104 94 104 94 i i i i ext_data_in[0] ext_data_in[1] irda_in[0] irda_in[1] serial data input, uart 0. serial data input, uart 1. uart irda data inputs, for uart 0 and 1. serial data inpu t pins redefined as irda data inputs when mcr[6] of the corresponding uart channel is set in enhanced mode
datasheet revision 1.1 page 9 ox16pci952 oxford semiconductor ltd. pins dir 1 name description serial port pins (contd) 106 96 i i dcd[0]# dcd[1]# active - low modem ?data - carrier - detect? input, for uart 0 and ua rt 1. 109 99 109 99 109 99 o o o o o o dtr[0]# dtr[1]# 485_en[0] 485_en[1] tx_clk_out[0] tx_clk_out[1] active - low modem ?data - terminal - ready output?, for uart 0 and uart 1. if automated dtr# flow control is enabled for the corre sponding uart channel, the dtr# pin is asserted and deasserted if the receiver fifo reaches or falls below the channel?s programmed thresholds, respectively. in rs485 half - duplex mode, the dtr# pin of each uart channel may be programmed to reflect the sta te of the channel?s transmitter empty bit to automatically control the direction of the rs485 transceiver buffer (see register acr[4:3]) transmitter 1x clock (baud rate generator output). for isochronous applications, the 1x (or nx) transmitter clock of each uart channel may be asserted on the dtr# pins (see register cks[5:4]) 110 100 o o rts[0]# rts[1]# active - low modem ?request - to - send? output, for uart 0 and uart 1. if automated rts# flow control is enabled for the corresponding uart channel, the rts # pin is deasserted and reasserted whenever the receiver fifo reaches or falls below the programmed thresholds, respectively. 108 98 i i cts[0]# cts[1]# active - low modem ?clear - to - send? input, for uart 0 and uart 1. if automated cts# flow control is enabl ed for the corresponding uart channel, upon deassertion of the cts# pin, the channel?s transmitter will complete the current character and enter the idle mode until the cts# pin is reasserted. note: flow control characters are transmitted regardless of the state of the cts# pin. 107 97 107 97 i i i i dsr[0]# dsr[1]# rx_clk_in[0] rx_clk_in[0] active - low modem ?data - set - ready? input, for uart 0 and uart 1. if automated dsr# flow control is enabled for the corresponding uart channel, up on deassertion of the channel?s dsr# pin, the transmitter will complete the current character and enter the idle mode until the dsr# pin is reasserted. note: flow control characters are transmitted regardless of the state of the dsr# pin external receiver clock input, for isochronous applications. the dsr uart pins are redefined as rx_clk_in, when the corresponding uart channel?s cks[1:0] register bits = ?01?. 105 95 105 95 i i i i ri[0]# ri[1]# tx_clk_in[0] tx_clk_in[0] active - low modem ?ring - indicat or? input, for uart 0 and uart 1. external transmitter clock. the ri uart pins are redefined as transmitter clk pins (and thus used indirectly by the receiver) when the uart channel?s cks[6] register bit =?1?.
datasheet revision 1.1 page 10 ox16pci952 oxford semiconductor ltd. pins dir 1 name description serial port pi ns (contd) 91 xi xtli crystal oscillator input or external clock pin, for the uart channels. crystal oscillator frequency maximum 40mhz. maximum frequency 60mhz, via external clock source. 90 xo xtlo crystal oscillator output pins dir 1 name descri ption parallel port 87 87 i i ack# intr# acknowledge signal in spp mode. ack# is asserted (low) by the peripheral to indicate that a successful data transfer has taken place. intr# pin in epp mode. function identical to ack#. 86 i pe paper emp ty. activated by printer when it runs out of paper. 85 85 i i busy wait# busy signal in spp mode. busy is asserted (high) by the peripheral when it is not ready to accept data wait signal in epp mode. handshake signal for interlocked ieee 1284 com pliant epp cycles. 81 81 od 2 o slin# addrstb# select signal in spp mode. asserted by host to select the peripheral. address strobe in epp mode. provides address read and write strobe. 84 i slct peripheral selected. asserted by peripheral when s elected. 83 i err# error. held low by the peripheral during an error condition. 80 80 od 2 o init# init# initialize signal in spp mode. commands the peripheral to initialize. initialize signal in epp mode. function identical to spp. 79 79 od 2 o afd# datastb# auto feed signal in spp mode. data strobe signal in epp mode. provides data read and write strobe. 78 78 od 2 o stb# write# strobe signal in spp mode. used by the peripheral to latch data currently available on the pd[7:0] line s. write signal in epp mode. indicates a write cycle when low and a read cycle when high. 68, 69, 70, 71, 72, 73, 74, 75 i/o 2 pd[7:0] parallel port bi - directional data bus 66 o local_trans_en parallel port data output enable. this pin can be used by e xternal transceivers. it is high when pd[7:0] are in output mode, and low when they are in input mode.
datasheet revision 1.1 page 11 ox16pci952 oxford semiconductor ltd. pins dir 1 name description multi - purpose & external interrupt pins 59 i/o mio 0 multi - purpose i/o 0. can be driven high or low, or be used to asser t pci interrupts or power management events (pme). 60 i/o mio 1 multi - purpose i/o 1. can be driven high or low, or be used to assert pci interrupts or power management events (pme). microwire eeprom pins 65 o ee_ck eeprom clock signal 64 o ee_cs eeprom active - high chip select signal 62 iu ee_di eeprom data in (to be connected to the external eeprom?s do pin). when the optional serial eeprom is connected, this pin should be pulled up using an external 1 - 10k resistor. when the external eeprom is not required, this external pull - up is not necessary as the internal pull - up is sufficient. 63 o ee_do eeprom data out. (to be connected to the external eeprom?s di pin) miscellaneous pins 55 id test testpin. this must be connected to gnd. 56 i mode 0 mode selector. mode0 = 0. device operates as a dual function device, where function 0 is the dual uarts and function 1 is the parallel port. mode0 = 1. device operates only as a single function device, where function 0 is the dual uarts. function 1 does not exist, so the parallel port is not visible 2 to pci accesses. power and ground 3 1, 10, 21, 30, 38, 46, 58, 77, 89, 103, 118 v vdd device power 9, 11, 19, 20, 22, 29, 37, 45, 53, 54, 57, 61, 67, 76, 82, 92, 93, 102, 112, 116, 119, 128 g gnd device gn d. table 2 : pin descriptions
datasheet revision 1.1 page 12 ox16pci952 oxford semiconductor ltd. note 1: direction key: i 5v ttl input id 5v ttl input, with internal pull - down iu 5v ttl input, with internal pull - up i/o 5v tristate bi - directional o 5v output od 5v open drain x1 crystal oscilla tor (or clock) input xo crystal oscillator output note 2 : parallel port pins when mode0 = 1 p_i 5v pci input p_i/o 5v pci bi - directional p_o 5v pci output p_od 5v pci open drain g ground v 5.0v power when the device operates as a single functio n device (mode0 pin = ?1?), in addition to function 1 (the parallel port) not being made available to pci configuration accesses, all of the parallel port bi - directional pins and open - drain output pins are forced into their input modes. this means that whe n mode0 = 1, as well as the standard parallel port inputs needing a tie to ground to prevent floating inputs, all of the bi - directional and open - drain parallel port pins also require a tie to ground. this affects all of the pins of the parallel port with t he exception of the pin ?local_trans_en? that remains as an output. note 3: power & ground there are several types of vdd and vss in this design, providing not only power for the internal (core) and i/o pad area but also special power lines to the pci i/ o buffers. these power rails are not connected internally. this precaution reduces the effects of simultaneous switching outputs and undesirable rf radiation from the chip. further precaution is taken by segmenting the gnd and vdd rails to isolate the pci and uart pins.
datasheet revision 1.1 page 13 ox16pci952 oxford semiconductor ltd. 5 c onfiguration & o peration the ox16pci952 is a multi - function, target - only pci device, compliant with the pci local bus specification, revision 2.2 and pci power management specification, revision 1.0. the ox16pci952 affords maximum conf iguration flexibility by treating the internal uarts and the parallel port as separate logical functions (function 0 and function 1, respectively). each function has its own pci configuration space and is therefore recognised and configured by the pci bios separately (each function operates as though it were a separate device). the device can also be configured to operate as a single function device by making available only the internal uarts. this is controlled by the mode pin, as shown in table 3 . the ox16pci952 is configured by system start - up software during the bootstrap process that follows bus reset. the system scans the pci bus and reads the vendor and device identification codes from any devices/functions it finds and the resources being requested. it then loads the device - driver software according to this information and configures the i/o, memory and interrupt resources. device drivers can then access the functions at the assigned addresses in the usual fashion, with the improved data throughput provided by pci. a set of local configuration registers have been provided that can be used to control the device?s characteristics (such as interrupt handling) and report internal functional status. this is on top of the uart and the parallel port registers, and the registers contained in each of the 2 function?s pci configuration space. these local registers are common to both functions and can be set up by the device drivers of function 0 and function 1, or from the optional eep rom. the eeprom can also be used to redefine the reset values of most register areas to tailor the device to the end users requirements if the default values do not meet the specific requirements of the manufacturer, such as the identification registers. as an additional enhancement, the eeprom can be used to pre - program each uart and the parallel port, allowing pre - configuration, without requiring device driver changes. this, for example, does allow the enhanced features of the integrated uarts to be in place prior to handover to any generic device drivers. a similar arrangement is available for the parallel port. mode configuration 0 dual function device mode. function 0 is the dual uart. function 1 is the parallel port 1 single function device mod e. function 0 is the dual uart. function 1 (parallel port) is not available. table 3 : mode configuration
datasheet revision 1.1 page 14 ox16pci952 oxford semiconductor ltd. 6 pci t arget c ontroller 6.1 operation the ox16pci952 responds to the following pci transactions: - configuration access : the ox16p ci952 responds to type 0 configuration reads and writes if the idsel signal is asserted and the bus address selects the configuration registers for function 0 or 1. the device will respond to these configuration transactions by asserting devsel#. data tran sfer then follows. any other configuration transaction will be ignored by the ox16pci952. io reads/writes : the address is compared with the addresses reserved in the i/o base address registers (bars), of each available function. if the address falls withi n one of the assigned ranges, the device will respond to the io transaction by asserting devsel#. data transfer follows this address phase. for all modes, only byte accesses are possible to the function bars (excluding the local configuration registers for which word, dword access is supported). for io accesses to these regions, the controller compares ad[1:0] with the byte - enable signals as defined in the pci specification. the access is always completed; however if the correct be signal is not present the transaction will have no effect. memory reads/writes : these are treated in the same way as i/o transactions, except that the memory ranges are used. with the exception of memory accesses to the local configuration registers, memory access to single - byte regions such as the uart and parallel port registers is always expanded to dwords in the ox16pci952. in other words, the ox16pci952 reserves a dword per byte in single - byte regions. the device allows the user to define the active byte lane using lcc[4:3] s o that in big - endian systems the hardware can swap the byte lane automatically. for memory mapped access in single - byte regions, the ox16pci952 compares the asserted byte - enable with the selected byte - lane in lcc[4:3] and completes the operation if a match occurs, otherwise the access will complete normally on the pci bus, but it will have no effect on the uart or the parallel port (if available). all other cycles (64 - bit, special cycles, reserved encoding etc.) are ignored. the ox16pci952 will complete a ll transactions as disconnect - with - data, ie the device will assert the stop# signal alongside trdy#, to ensure that the bus master does not continue with a burst access. the exception to this is retry, which will be signalled in response to any access whil e the ox16pci952 is reading from the serial eeprom. the ox16pci952 performs medium - speed address decoding as defined by the pci specification. it asserts the devsel# bus signal two clocks after frame# is first sampled low on all bus transaction frames wh ich address the chip. fast back - to - back transactions (to both functions) are supported by the ox16pci952 as a target, so a bus master can perform faster sequences of write transactions (when an inter - frame turn - around cycle is not required) to the uarts, t he parallel port, the pci configuration space and the local configuration registers. the internal uarts are accessed with zero wait states inserted. the device supports any combination of byte - enables for accesses to the pci configuration registers and th e local configuration registers. if a byte - enable is not asserted, that byte is unaffected by a write operation and undefined data is returned upon a read. the ox16pci952 performs parity generation and checking on all pci bus transactions as defined by t he pci local bus standard. note that this is entirely unrelated to serial data parity which is handled within the uart functional modules themselves . if a parity error occurs during the pci bus address phase, the device will report the error in the standar d way by asserting the serr# bus signal. however if that address/command combination is decoded as a valid access, it will still complete the transaction as though the parity check was correct. the ox16pci952 does not support any kind of caching or data b uffering in addition to that already provided within the uarts by the transmit and receive data fifos. in general, data in the device cannot be pre - fetched because there may be side - effects on reads.
datasheet revision 1.1 page 15 ox16pci952 oxford semiconductor ltd. 6.2 configuration space the ox16pci952 is a dual - functio n (or single function) device, where each logical function has its own pci configuration space. all the required fields in the predefined pci header region have been implemented. the device dependant region of the pci configuration space contains the pc i power management extended capability register set. the format of the configuration space, for both function 0 and function 1, is as shown in table 4, below. in general, writes to any registers that are not implemented are ignored, and all reads from unimplemented registers return 0. 6.2.1 pci configuration space register map configuration register description offset 31 16 15 0 address device id vendor id 00h status command 04h class code revision id 08h bist 1 header type reserved reserved 0ch base address register 0 (bar 0) function 0 ? uart0 in i/o space function 1 ? parallel port base register set in i/o space 10h base address register 1 (bar 1) function 0 ? uart1 i/o space function 1 ? parallel port extended register set in i/o space 14h b ase address register 2 (bar 2) local configuration registers in io space, for function 0 and function 1 18h base address register 3 (bar 3) local configuration registers in memory space, for function 0 and function 1 1ch base address register 4 (bar 4 ) function 0 ? uart0 and uart1 in memory space function 1 ? not implemented. 20h base address register 5 (bar5) not implemented, for function 0 and function 1 24h reserved 28h subsystem id subsystem vendor id 2ch reserved 30h reserved cap_ptr 34h res erved 38h reserved reserved interrupt pin interrupt line 3ch predefined pci header region device dependent pci region power management capabilities (pmc) next ptr cap_id 40h reserved reserved pmc control/status register (pmcsr) 44h table 4 : pci configuration space (for uart and parallel port function)
datasheet revision 1.1 page 16 ox16pci952 oxford semiconductor ltd. reset value program read/write function 0 function 1 1 register name dual uart parallel port eeprom pci vendor id 0x1415 0x1415 w r device id 0x9521 0x9523 w r comman d 0x0000 0x0000 - r/w status 0x0290 0x0290 w (bit 4) r/w revision id 0x00 0x00 - r class code 0x070006 0x070101 w r header type 0x80 0x80 w (bit 7) r bar 0 0x00000001 0x00000001 - r/w bar 1 0x00000001 0x00000001 - r/w bar 2 0x00000001 0x00000001 - r /w bar 3 0x00000000 0x00000000 - r/w bar 4 0x00000000 - - r/w subsystem vid 0x1415 0x1415 w r subsystem id 0x0001 0x0001 w r cap ptr. 0x40 0x40 - r interrupt line 0x00 0x00 - r/w interrupt pin 0x01 2 0x01 2 w r cap id 0x01 0x01 - r next ptr. 0x00 0x 00 - r pm capabilities 0x6c01 0x6c01 w r pmc control/ status register 0x0000 0x0000 - r/w table 5 : pci configuration space reset values note 1: function 1 pci configuration space is available only when the ox16pci952 is operatin g in the dual - function device mode (mode0 pin = ?0?). configuration accesses to function 1 in the single function device mode (mode0 pin = ?1?) will result in ?master - aborts?. note 2 : default interrupt pins values for function 0 and function 1 result in both functions asserting interrupts on the pin inta#. the default values can be re - programmed by the serial controller so that the 2 functions can assert interrupts onto separate (function dependent) interrupt pins.
datasheet revision 1.1 page 17 ox16pci952 oxford semiconductor ltd. 6.3 accessing function 0 and function 1 ac cess to the internal uarts and the parallel port is achieved (at addresses defined by the base address registers in the pci configuration space) via standard i/o and memory mapping. these bars are configured by the system to allocate blocks of i/o and memo ry space to the logical functions, according to the size required by the function. the base addresses that have been allocated can then be used to access the functions. the mapping of these bars is shown in table 6 . bar function 0 function 1 1 0 internal uart 0 (i/o mapped) parallel port base registers (i/o mapped) 1 internal uart 1 (i/o mapped) parallel port extended registers (i/o mapped) 2 local configuration registers (i/o mapped) 3 local configuration registers (memory map ped) 4 internal uart 0 and uart 1 (memory mapped) not implemented 5 not implemented table 6 : base address register definition note 1. function 1 is only accessible in the dual function mode (mode0 = ?0?) 6.3.1 pci access to the inter nal uarts io and memory space bar 0, bar 1, and bar 4 of function 0 are used to access the internal uarts through i/o and memory transactions. the function reserves 8 - byte blocks of i/o space for each uart (total of 16 - bytes) and a 4k byte block of memory space for both uarts. once the i/o and/or the memory access enable bits in the command register (of this function?s pci configuration space) are set, the internal uarts can be accessed using the mappings shown in the following tables. uart 0 address p ci offset from base address 0 , for uart 0 in i/o space 000 00 001 01 002 02 003 03 004 04 005 05 006 06 007 07 uart 1 address pci offset from base address 1, for uart 1 in i/o space 000 00 001 01 002 02 003 03 004 04 005 05 006 06 007 07 base address mapping for uart0 and uart 1 registers, for i/o accesses. uart address pci offset from base address 4, for uart0 and uart 1 in memory space (hex) uart 0 uart 1 000 00 20 001 04 24 002 08 28 003 0c 2c 004 10 30 005 14 34 006 18 3 8 007 1c 3c base address mapping for uart 0 and uart1 registers, for memory accesses note 1: since 4k of memory space is reserved to map both uarts and the full bus address is not used for decoding, there are a number of aliases of the uarts in the a llocated memory region
datasheet revision 1.1 page 18 ox16pci952 oxford semiconductor ltd. 6.3.2 pci access to parallel port io space when the dual - mode of the device is utilised, then bar 0 and bar 1 of function 1 are used to access the internal parallel port through i/o transactions. memory accesses to the parallel port ar e not possible. these i/o bars correspond to the two sets of registers defined to operate an ieee1284 epp and bi - directional parallel port. bar0 reserves an 8 - byte block of i/o space and bar1 reserves a 4 byte - block of i/o space. once the i/o access enab le bits in the command register (of this function?s pci configuration space) are set, the internal parallel port can be accessed using the mappings shown in the following table. see section ?bi - directional parallel port? for more details. register name b ar 0 i/o address offset, in function 1 pdr 000h ecpafifo 000h dsr (epp mode) 001h (other modes) 001h dcr 002h eppa 003h eppd1 004h eppd2 005h eppd3 006h eppd4 007h register name bar1 i/o address offset, in function 1 ecpdfifo 400h tfif o 400h cnfga 400h cnfgb 401h ecr 402h - 403h legacy parallel ports expect the upper register set to be mapped 0x400 above the base block, therefore if the bars are fixed with this relationship, generic parallel port drivers can be used to operate th e device in all modes. example: bar0 = 0x00000379 (8 bytes of i/o at address 0x378) bar1 = 0x00000779 (4 bytes of i/o at address 0x778) if this relationship is not used, custom drivers will be needed. .
datasheet revision 1.1 page 19 ox16pci952 oxford semiconductor ltd. 6.4 accessing the local configuration regist ers the local configuration registers are a set of device specific registers that can be accessed from either function 0 or function 1. they are mapped to the i/o and memory addresses set up in bar2 and bar3 of each function, with the offsets defined for e ach register. i/o or memory accesses can be byte, word or dword accesses, however on little - endian systems such as intel 80x86 the byte order will be reversed. 6.4.1 local configuration and control register ?lcc? (offset 0x00) this register defines control of ancillary functions such as power management, endian selection and the serial eeprom. the individual bits are described below. bits description read/write reset eeprom pci 0 mode . this bit returns the state of the mode0 pin. - r x 1 test . this bit r eturns the state of the test pin. applications must tie the test pin to gnd, so this bit will always return ?0?. - r 0 2 parallel port filter enable. this controls the noise filters on the parallel ports input control lines and the data lines, of the para llel port and has meaning only when the parallel port is available (dual - mode device operation). 1 => enable filters, 0 => disable filters. w rw 1 4:3 endian byte - lane select for memory access to 8 - bit peripherals . 00 = select data[7:0] 10 = select data[23:16] 01 = select data[15:8] 11 = select data[31:24] memory access to ox16pci952 is always dword aligned. when accessing 8 - bit regions like the internal uarts and the parallel port, this option s elects the active byte lane. as both pci and pc architectures are little endian, the default value will be used by systems, however, some non - pc architectures may need to select the byte lane. w rw 00 6:5 power - down filter time. these bits define a time v alue for the internal powerdown filter, part of the power management circuitry of function 0 (only). once function0 is ready to go into the power down mode, the ox16pci952 will wait for the specified filter time and if function0 is still indicating a power - down, it will assert a powerdown request and a pci interrupt (if the latter is enabled). w rw 00 00 = power - down request disabled 01 = 4 seconds 10 = 129 seconds 11 = 515 seconds 23:7 reserved . these bits are used for test purposes. the device driv er must write zeros to these bits. - r 0000h 24 eeprom clock . for reads or writes to the external eeprom , toggle this bit to generate an eeprom clock (ee_ck pin). - w 0 25 eeprom chip select . when set to 1, the eeprom chip - select pin ee_cs is activated (high). when set to 0, ee_cs is de - active (low). - w 0 26 eeprom data out . for writes to the eeprom, this output feeds the data - input of the external eeprom. this bit is output on the devices ee_do pin and clocked into the eeprom by ee_ck. - w 0 27 eepr om data in . for reads from the eeprom, this input bit is the output - data (d0) of the external eeprom connected to ee_di pin. - r x 28 eeprom valid . a 1 indicates that a valid eeprom program header is present - r x
datasheet revision 1.1 page 20 ox16pci952 oxford semiconductor ltd. bits description read/write reset eeprom pci 29 reload configuration from eeprom . writing a 1 to this bit re - loads the configuration from eeprom. this bit is self - clearing after an eeprom read - w 0 30 reserved - - 0 31 reserved - r 0 6.4.2 multi - purpose i/o configuration register ?mic? (offset 0x04) this register configures the oper ation of the multi - purpose i/o pins ?mio[1:0]? as follows. bits description read/write reset eeprom pci 1:0 mio0 configuration register 00 - > mio0 is a non - inverting input pin 01 - > mio0 is an inverting input pin 10 - > mio0 is an output pin driving ? 0? 11 - > mio0 is an output pin driving ?1? w rw 00 3:2 mio1 configuration register 00 - > mio1 is a non - inverting input pin 01 - > mio1 is an inverting input pin 10 - > mio1 is an output pin driving ?0? 11 - > mio1 is an output pin driving ?1? w rw 00 4 mio0 power management event (pme) enable . a value of ?1? enables the mio0 pin to set the pme_status bit in the power management register pmcsr of the selected function, and hence assert the pme# pin if this option has been enabled. a value of ?0? preven ts mio0 from setting the pci pme_status bit. this pin can affect function 0 or function 1, through the control defined in the gis (local configuration) register. w rw 0 5 mio1 power management event (pme) enable . a value of ?1? enables the mio1 pin to s et the pme_status bit in the power management register pmcsr of the selected function, and hence assert the pme# pin if this option has been enabled. a value of ?0? prevents mio1 from setting the pci pme_status bit. this pin can affect function 0 or funct ion 1, through the control defined in the gis (local configuration) register. w rw 0 31:6 reserved - r 0000h
datasheet revision 1.1 page 21 ox16pci952 oxford semiconductor ltd. 6.4.3 uart fifo levels ?ufl? (offset 0x08) the receiver and transmitter fifo levels of both uarts is mirrored (shadowed) in this local configurat ion register, as follows. bits description read/write reset eeprom pci 7:0 uart0 receiver fifo level (rfl[7:0]) - r 0x00h 15:8 uart1 receiver fifo level (rfl[7:0]) - r 0x00h 23:16 uart0 transmitter fifo level (tfl[7:0]) - r 0x00h 31:24 uart1 tran smitter fifo level (tfl[7:0]) - r 0x00h 6.4.4 uart interrupt source register ?uis? (offset 0x0c) the interrupt source register of each uart and the general data status, is mirrored (shadowed) in this local configuration register, as follows. bits descripti on read/write reset eeprom pci 5:0 uart0 interrupt source register (isr[5:0]) - r 01h 11:6 uart1 interrupt source register (isr[5:0]) - r 01h 15:12 reserved - r 0h 16 uart0 good - data status - r 1 17 uart1 good - data status - r 1 30:18 reserved - r 00h 31 global good - data status . this bit is the logical and of bits 16 and 17, i.e. it is set if good - data status of all internal uarts is set. - r 1 good - data status for a given internal uart is set when all of the following conditions are met: isr reads a level0 (no - interrupt pending), a level 2a (receiver data available), a level 2b (receiver time - out) or a level 3 (transmitter thr empty) interrupt lsr[7] is clear so there is no parity error, framing error or break in the fifo lsr[1] is clear so no over - run error has occurred if the device driver software reads a given channel?s receiver fifo levels (from the ufl register) followed by the uis register, and the good - data status for that channel is set, the driver can remove the number of bytes ind icated by the fifo level without the need to read the line status register of that channel. this feature enhances the driver efficiency. for a given channel, if the good - data status bit is not set, then the software driver should examine the correspondin g isr bits. if the isr indicates a level 4 or higher interrupt, the interrupt is due to a change in the state of modem lines or detection of flow control characters, for that channel. the device driver - software should then take appropriate measures as wou ld in any other 550/950 driver. when isr indicates a level 1 (receiver status) interrupt then the driver can examine the line status register (lsr) of the relevant channel. since reading the lsr clears lsr[7], the device driver - software should either flush or empty the contents of the receiver fifo, otherwise the good - data status will no longer be valid. the uart fifo level (ufl), the uart interrupt source register (uis) and the global interrupt status register (gis) are allocated adjacent address offsets (08h to 10h) in the base address register. the device driver - software can read all of the above registers in a single burst read operation. the location offset of the registers are such that the fifo levels are usually read before the status registers so t hat the status of the n characters indicated in the receiver fifo levels are valid.
datasheet revision 1.1 page 22 ox16pci952 oxford semiconductor ltd. 6.4.5 global interrupt status and control register ?gis? (offset 0x10) this register controls the assertion of interrupts and power management events, as well as returning the internal status of all interrupt sources and power management events. bits description read/write reset eeprom pci 0 uart 0 internal interrupt status . this bit reflects the state of uart 0?s internal interrupt line 1 . - r 0x0h 1 uart 1 internal interrupt status . this bit reflects the state of uart 1?s internal interrupt line 1 . - r 0x0h 2 mio0 internal state. this bit reflects the state of the internal mio[0] signal. the internal mio[0] signal reflects the non - inverted or inverted state of mio0 pin. 2 - r x 3 mio1 internal state this bit reflects the state of the internal mio[1] signal. the internal mio[1] reflects the non - inverted or inverted state of mio1 pin. 2 - r x 15:4 reserved . - r 000h 16 uart 0 interrupt mask . when set (=1) th is bit enables uart 0 to assert a pci interrupt on function 0?s interrupt pin (inta# by default). when cleared (=0), uart 0 is prevented from asserting a pci interrupt. 3 w rw 1 17 uart 1 interrupt mask . when set (=1) this bit enables uart 1 to assert a pci interrupt on function 0?s interrupt pin (inta# by default). when cleared (=0), uart 1 is prevented from asserting a pci interrupt. 3 w rw 1 18 mio 0 interrupt mask . when set (=1) this bit enables the mio 0 pin to assert a pci interrupt, on the select ed function?s interrupt pin. when cleared (=0) this prevents mio 0 from asserting a pci interrupt. the function that is affected is controlled by gis, bit 26. the mio 0 pin is active high, unless inversion has been set in the mic register w rw 0 19 mio 1 interrupt mask . when set (=1) this bit enables the mio 1 pin to assert a pci interrupt, on the selected function?s interrupt pin. when cleared (=0) this prevents mio 1 from asserting a pci interrupt. the function that is affected is controlled by gis, b it 27. the mio 1 pin is active high, unless inversion has been set in the mic register w rw 0 20 mio 0 power - down mask . when set (=1) this bit enables the mio 0 pin to issue a powerdown event by setting the selected function?s power - down sticky bit (g is, bits 22 or 23). the function whose powerdown sticky bit is affected is controlled by gis, bit 26. note that if the mio 0 pin is routed to function 0, then the pin uses the uart power - down filtering algorithm. both the uarts and the mio 0 pin must indi cate a power - down for the filter period before any powerdown requests are issued, for function 0. however, when the mio 0 pin is routed to function 1, then a powerdown state on the pin mio 0 will immediately issue a powerdown request, for function 1, witho ut any filters. w rw 0
datasheet revision 1.1 page 23 ox16pci952 oxford semiconductor ltd. 21 mio 1 power - down mask . when set (=1) this bit enables the mio 1 pin to issue a powerdown event by setting the selected function?s power - down sticky bit (gis, bits 22 or 23). the function whose powerdown sticky bit is af fected is controlled by gis, bit 27. note that if the mio 1 pin is routed to function 0, then the pin uses the uart power - down filtering algorithm. both the uarts and the mio 1 pin must indicate a power - down for the filter period before any powerdown requ ests are issued, for function 0. however, when the mio 1 pin is routed to function 1, then a powerdown state on the pin mio 1 will immediately issue a powerdown request, for function 1, without any filters. w rw 0 22 function 0 powerdown interrupt status. this is a sticky bit. when set, it indicates a power - down request issued by function0. normally this would have asserted a pci interrupt on function 0?s interrupt pin (inta# by default) if gis bit24 were set. this bit is cleared on reading. - r 0 23 fun ction 1 powerdown interrupt status. this is a sticky bit. when set, it indicates a power - down request issued by function1. normally this would have asserted a pci interrupt on function 1?s interrupt pin (inta# by default) if gis bit25 were set. this bit i s cleared on reading. - r 0 24 function0 power - down interrupt mask . when set (=1), this enables function 0 powerdown requests to assert a pci interrupt, on function 0?s interrupt pin (inta# by default) w rw 0 25 function1 power - down interrupt mask . whe n set (=1), this enables function 1 powerdown requests to assert a pci interrupt, on function 1?s interrupt pin (inta# by default) w rw 0 26 mio0 function selection . when reset (=0), all functional and powerdown interrupt requests, and power management ev ents (pme) due to the mio0 pin will affect function 0. when set ?1?, these requests and events will affect function1. 4 w rw 1 27 mio1 function selection . when reset (=0), all functional and powerdown interrupt requests, and power management events (pme) due to the mio1 pin will affect function 0. when set ?1?, these requests and events will affect function1. 4 w rw 1 28 parallel port interrupt status . when set (=?1?), an internal parallel port interrupt is present. this would have issued a pci interrup t on function 1?s interrupt pin (inta# by default) if gis, bit 29 was set. when reset (=0), no internal parallel port interrupts are present. - r 0 29 parallel port interrupt enable . when set (=1), an internal parallel port interrupt will assert a pci in terrupt on function 1?s interrupt pin (inta# by default). when reset (=0), the parallel port will not be able to issue a pci interrupt. w rw 1 31:30 reserved - r 0h note 1: gis[1:0] are the inverse of uis[6] and uis[0] respectively. note 2: the retu rned value is either the direct state of the corresponding mio pin or its inverse as configured by the multi - purpose i/o configuration register ?mic? (offset 0x04). as the internal mio can assert a pci interrupt, the inversion feature can define each exte rnal interrupt to be defined as active - low or active - high, as controlled by the mic register. note 3: the uart interrupt mask register bits are all set after a hardware reset to enable the interrupt from all internal uarts. this will cater for generic de vice - driver software that does not access the local configuration registers. the default settings for uart interrupt mask bits can be changed using the serial eeprom. note that even though the uart interrupts are enabled in this register, by default after a reset the ier registers of the individual uarts are disabled so a pci interrupt will not be asserted by any uart after a hardware reset.
datasheet revision 1.1 page 24 ox16pci952 oxford semiconductor ltd. note 4 : powerdown behaviour of the mio pins is different when associated with function 0 or function 1. see secti on ?power management?. 6.5 pci interrupts interrupts in pci systems are level - sensitive and can be shared. in the ox16pci952, there are five sources of interrupts - one from each uart channel, two from multi - purpose io pins (mio0 to mio1), and one from the p arallel port. all interrupts can be routed to the pci interrupt pins, inta# or intb#. the default values assigned to the interrupt pin field within each function?s pci configuration space results in all function 0 interrupts to be made available on the in ta# pin, and all function1 interrupts also to be made available on the inta# pin (the interrupt pin fields are the same). these default interrupt pin values may be modified (for example, to map function 1 interrupts on the intb# line or disable all interr upts altogether) by writing to the interrupt pin field in each function?s pci configuration space using the serial eeprom facility. the interrupt pin field is normally considered a hard - wired read - only value in pci. it indicates to system software which pc i interrupt pin (if any) is used by a function. the interrupt pin may only be modified using the serial eeprom facility, and card developers must not set any value which violates the pci local bus specification on this issue. if in doubt, the default value s should be used. table 7 relates the interrupt pin field to the device pin used. interrupt pin field value 1 interrupt pin used 0 none 1 inta# 2 intb# 3 to 255 reserved table 7 : ?interrupt pin? defi nition note 1: the oxpci952 has only 2 interrupt pins : inta# and intb#. interrupt pin values other than 1 or 2, will result in that function not being able to assert an interrupt. during the system initialisation process and pci device configuration, sys tem - specific software reads the interrupt pin field to determine which (if any) interrupt pin is used by each function. it programmes the system interrupt router to logically connect this pci interrupt pin to a system - specific interrupt vector (irq). it th en writes this routing information to the interrupt line field in the function?s pci configuration space. device driver software must then hook the interrupt using the information in the interrupt line field. the interrupt status for all sources of inter rupts are available using the gis register in the local configuration register set, which can be accessed using i/o or memory accesses from both logical functions. this facility enables each function to snoop on interrupts asserted from the other function regardless of the interrupt routing. this is valid only when the device is operating in the dual - function mode. the 5 sources of interrupts on the ox16pci952, can be enabled/disabled individually using the options in the local configuration register ?gis ?. by default, the interrupt options for the uarts and the parallel port are enabled in the gis register. following the initial pci configuration process, any uart based interrupts that are generated as a result of 1 st enabling interrupts in the uart?s i nterrupt register (the isr register) will result in the assertion of the uart interrupt on the interrupt pin of function 0. by the same token, any parallel port based interrupts will result in the assertion of the parallel port interrupt on the interrupt p in of function 1. once the interrupt options for the multi - purpose mio pins (mio0, mio1) are enabled in the gis register, the assertion of these pins will, following the initial pci configuration process, assert an interrupt on the selected function?s in terrupt pin. the sense of the mio pin (active - high or active - low) that generates an interrupt is controlled by the options in the mic register. for greater flexibility, the mio pins can be individually associated with either function0 or function1, thereb y affecting the selected functions interrupt, power - down, or power management event logic. once an interrupt has been asserted, this interrupt can only be removed by the device driver either by disabling the relevant controls in the gis register or by rem oving the conditions on the 5 interrupt sources. for the uarts, this will require reads of the relevant register to clear any uart based interrupts.
datasheet revision 1.1 page 25 ox16pci952 oxford semiconductor ltd. 6.6 power management the ox16pci952 is compliant with the pci power management specification revision 1.0. each logical function implements its own set of power management registers and supports the power states d0, d2 and d3. power management is accomplished by handling the power - down and power - up (?power management event?) requests, that are asserted on the relevant function?s interrupt pin and the pme# pin respectively. each function can assert the pme# pin independently. power - down requests are not defined by any of the pci power management specifications. it is a device - specific feature and requires a b espoke device driver implementation. the device driver can either implement the power - down itself or use the special interrupt and power - down features offered by the device to determine when the function or device is ready for power - down. it is worth not ing that the pme# pin can, in certain cases, activate the pme# signal when power is removed from the device. this will cause the pc to wake up from low - power state d3(cold). to ensure full cross - compatibility with system board implementations, the use of a n isolator fet is recommended (see diagram). if power management capabilities are not required, the pme# pin can be treated as no - connect. vdd pme# g s d pci connector pme# pme# isolator circuitry 6.6.1 power management of function 0 provided that the necessary co ntrols have been set in the device?s local configuration registers (lcc, mic, and gis), the internal uarts and the 2 multi_purpose (mio) pins can be programmed to issue powerdown requests and/or ?wakeup? requests (power management events), for function 0. for the case of the 2 internal uarts, function 0 can be configured to monitor the activity of the serial channels, and issue a power - down interrupt when both of the uarts are inactive (no interrupts pending and both transmitters and receivers are idle). for the case when either or both of the mio pins are associated with function 0, the state of the mio pin that governs powerdown is the inverse of the mio state that asserts an interrupt on function 0?s interrupt pin (the inta# line) for normal functional ity (if that option were to be enabled). this means that when the mio pins are not interrupting, the mio state will be taken as a powerdown state. when all powerdown sources of function 0 are indicating a powerdown request (this means, both uarts are ind icating a powerdown and each mio pin associated with function 0 is indicating a powerdown) only then will the internal power management circuitry wait for a period of time as programmed into the power - down filter time. this time is defined by the local con figuration register, lcc[7:5]). if all function 0 powerdown requests remain valid for this time (for the uarts, this means that both channels are still inactive) then the ox16pci952 will issue a powerdown interrupt on this function?s interrupt pin, if this option is enabled. alternatively, the device driver can poll function 0?s powerdown status field in the local configuration register gis[22] to determine a powerdown request. the powerdown filter stops the uarts and any mio pins associated with function 0 from issuing too many powerdown interrupts whenever the uarts and mio pin activity is intermittent. upon a power down interrupt, the device driver can change the power - state of the device (function 0) as required. note that the power - state of function 0 is only changed by the device driver and at no point will the ox16pci952 change its own power state. the powerdown interrupt merely informs the device driver that this logical function is ready for power down. before placing the device into the lower po wer states, the driver must provide the means for the function to generate a ?wakeup? (power management) event. whenever the device driver changes function 0?s power - state to state d2 or d3, the device takes the following actions: the internal clock to th e internal uarts is shut down. pci interrupts are disabled regardless of the values contained in the gis registers. access to i/o or memory bars is disabled. however, access to the configuration space is still enabled.
datasheet revision 1.1 page 26 ox16pci952 oxford semiconductor ltd. the device driver can optional ly assert/de - assert any of its selected (design dependent) mio pins to switch - off vcc, disable other external clocks, or activate shut - down modes. the device can only issue a wakeup request (a power management event, pme#) if it is enabled by this functio n?s pme_en bit, bit - 8 of the pci power management register pmcsr. pme# assertion, is immediate and does not use the powerdown filter timer. it operates even if the powerdown filter time is set to disabled. like powerdown, wakeup requests for function 0 ca n be generated by up to 4 sources: by each of the internal uarts and either of the 2 multi - purpose mio pins (when they are associated with function 0). the means to generate wakeup events from these sources will have been setup prior to placing this functi on into the powerdown states d2 or d3 (including setting of the pme_en bit). for the case of each uart, when the device (function 0) is in the powerstate d3, only activity on the channel?s ri line (the trailing edge of a pulse) will generate a wakeup even t. when the device (function 0) is in the power - state d2, then wake - ups are configurable. in this case, a change in the state of any modem line (which is enabled by a 16c950 - specific mask bit) or a change in the state of the serial input line (again, if en abled by a 16c950 - specific mask bit) can issue a wake up request on the pme# pin . it is worth noting that after a hardware reset all of these mask bits are cleared to enable wake up assertion from all modem lines and the sin line when in the powerstate d2 . as the wake up operation from d2 requires at least one mask bit to be enabled, the device driver can for example disable the masks with the exception of the ring indicator, so only a modem ring can wake up the computer. in the case for a wake up request f rom the serial input line ext_data_in (from the power state d2) then the clock for that channel is turned on so serial data framing can be maintained. for the case of the mio pins (associated with function 0), the state of the mio pins that results in wak eup requests is determined by the settings in the local configuration register mic. the wakeup behaviour for these pins, unlike the uarts, is not dependent upon the powerstates d2 or d3. as soon as the correct logic is invoked then a power management event (wakeup) is asserted. when function 0 issues a wake up request, either from the uarts or the mio pins, the pme_status bit in this function?s pci power management registers (pmcsr[15]) will be set. this is a sticky bit which will only be cleared by writ ing a ?1? to it. while pme_en (pmcsr[8]) remains set, the pme_status will continue to assert the pme# pin to inform the device driver that a power management wake up event has occurred. after a wake up event is signalled, the device driver is expected to r eturn this function to the d0 power - state. 6.6.2 power management of function 1 provided that the necessary controls have been set in the device?s local configuration registers (mic, and gis), only the 2 multi_purpose (mio) pins can be programmed to issue pow erdown requests and/or ?wakeup? requests (power management events), for function 1. the parallel port is not capable of issuing a powerdown request or power management events but can be placed in a low power state through power management involving the mio pins. when either or both of the mio pins are associated with function 1, then the state of the mio pin(s) that issues a powerdown request is controlled by the mic register. this state can be the same mio state that asserts function 1?s interrupt pin for normal functionality. the assertion of the mio pins will result in a function 1 powerdown request being made immediately. unlike the case when the mio pins are associated with function 0, there is no powerdown filtering time associated with function 1. t he powerdown request can be issued on the function?s interrupt pin, if this option is enabled. alternatively, the device driver can poll function 1?s powerdown status field in the local configuration register gis[23] to determine a powerdown request. up on a power down interrupt, the device driver can change the power - state of the device (function 1) as required. note that the power - state of function 1 is only changed by the device driver and at no point will the ox16pci952 change its own power state. the powerdown interrupt merely informs the device driver that this logical function is ready for power down. before placing the device into the lower power states, the driver must provide the means for the function to generate a ?wakeup? (power management) e vent. whenever the device driver changes function 1?s power - state to state d2 or d3, the device takes the following actions: parallel port placed in low power mode. pci interrupts are disabled regardless of the values contained in the gis registers. acces s to i/o or memory bars is disabled. however, access to the configuration space is still enabled.
datasheet revision 1.1 page 27 ox16pci952 oxford semiconductor ltd. the device can only issue a wakeup request (power management event) if it is enabled by this function?s pme_en bit, bit - 8 of the pci power management reg ister pmcsr. like powerdown, wakeup requests for function 1 can be generated by either of the 2 multi_purpose mio pins when they are associated with function 1. the means to generate wakeup events from these sources will have been setup prior to placing t his function into the powerdown states d2 or d3. the state of the mio pins (when associated with function 1) that results in wakeup requests is determined by the settings in the local configuration register mic. as soon as the correct logic is invoked th an a power management event (wakeup) is asserted. the pme# event is immediate. when function 1 issues a wake up request, from the mio pins, the pme_status bit in this function?s pci power management registers (pmcsr[15]) will be set. this is a sticky bit which will only be cleared by writing a ?1? to it. while pme_en (pmcsr[8]) remains set, the pme_status will continue to assert the pme# pin to inform the device driver that a power management wake up event has occurred. after a wake up event is signalled, the device driver is expected to return this function to the d0 power - state
datasheet revision 1.1 page 28 ox16pci952 oxford semiconductor ltd. 7 i nternal ox16c950 uart each of the internal uarts in the ox16pci952 is an ox16c950 rev b specification high - performance serial port. the features of this uart are described in this section. 7.1 operation ? mode selection the uart is backward compatible with the 16c450, 16c550, 16c654 and 16c750 uarts. the operation of the port depends on a number of mode settings, which are referred to throughout this section. the modes, conditions and corresponding fifo depth are tabulated below: uart mode fifo size fcr[0] enhanced mode (efr[4]=1) fcr[5] (guarded with lcr[7] = 1) fifosel pin 450 1 0 x x x 550 16 1 0 0 0 extended 550 128 1 0 x 1 650 128 1 1 x x 750 128 1 0 1 0 950 1 128 1 1 x x table 8 : uart mode configuration note 1: 950 mode configuration is identical to 650 configuration 7.1.1 450 mode after a hardware reset, bit 0 of the fifo control register (?fcr?) is cleared, hence the uart is compatible with the 16 c450. the transmitter and receiver fifos (referred to as the ?transmit holding register? and ?receiver holding register? respectively) have a depth of one. this is referred to as ?byte mode?. when fcr[0] is cleared, all other mode selection parameters are ignored. 7.1.2 550 mode after a hardware reset, writing a 1 to fcr[0] will increase the fifo size to 16, providing compatibility with 16c550 devices. 7.1.3 750 mode writing a 1 to fcr[0] will increase the fifo size to 16. in a similar fashion to 16c750, the fifo si ze can be further increased to 128 by writing a 1 to fcr[5]. note that access to fcr[5] is protected by lcr[7]. i.e., to set fcr[5], software should first set lcr[7] to temporarily remove the guard. once fcr[5] is set, the software should clear lcr[7] for normal operation. the 16c750 additional features are available as long as the uart is not put into enhanced mode; i.e. ensure efr[4] = ?0?. these features are: deeper fifos automatic rts/cts out - of - band flow control sleep mode 7.1.4 650 mode the ox16pci952 u art is compatible with the 16c650 when efr[4] is set, i.e. the device is in enhanced mode. as 650 software drivers usually put the device in enhanced mode, running 650 drivers on the one of the uart channels will result in 650 compatibility with 128 deep f ifos, as long as fcr[0] is set. note that the 650 emulation mode of the ox16pci952 provides 128 - deep fifos rather than the 32 provided by a legacy 16c650. in enhanced (650) mode the device has the following features available over those provided by a gen eric 550. (note: some of these are similar to those provided in 750 mode, but enabled using different registers). deeper fifos sleep mode automatic in - band flow control special character detection infra - red ?irda - format? transmit and receive mode transmit trigger levels optional clock prescaler
datasheet revision 1.1 page 29 ox16pci952 oxford semiconductor ltd. 7.1.5 950 mode the additional features offered in 950 mode generally only apply when the uart is in enhanced mode (efr[4]=?1?). provided fcr[0] is set, in enhanced mode the fifo size is 128. note that 950 mode con figuration is identical to that of 650 mode, however additional 950 specific features are enabled using the additional control register ?acr? (see section 7.11.3 ). in addition to larger fifos and higher baud rat es, the enhancements of the 950 mode over 650 emulation mode are: selectable arbitrary trigger levels for the receiver and transmitter fifo interrupts improved automatic flow control using selectable arbitrary thresholds dsr#/dtr# automatic flow control t ransmitter and receiver can be optionally disabled software reset of device readable fifo fill levels optional generation of an rs - 485 buffer enable signal four - byte device identification (0x16c95004) readable status for automatic in - band and out - of - band f low control external 1x clock modes (see section 0 ) flexible ?m+n/8? clock prescaler (see section 7.10.2 ) programmable sample clock to allow data rates up to 15 mbps (see section 7.10.3 ). 9 - bit data mode readable fcr register the 950 trigger levels are enabled when acr[5] is set where bits 4 to 7 of fcr are ignored. then arbitrary trigger levels can be defined in rtl, ttl, fcl and fch registers (see secti on 7.11 ). the additional status register (?asr?) offers flow control status for the local and remote transmitters. fifo levels are readable using rfl and tfl registers. the uart has a flexible prescaler capable of dividing th e system clock by any value between 1 and 31.875 in steps of 0.125. it divides the system clock by an arbitrary value in ?m+n/8? format, where m and n are 5 - and 3 - bit binary numbers programmed in cpr[7:3] and cpr[2:0] respectively. this arrangement offer s a great deal of flexibility when choosing an input clock frequency to synthesise arbitrary baud rates. the default division value is 4 to provide backward compatibility with 16c650 devices. the user may apply an external 1x (or nx) clock for the transm itter and receiver to the ri# and dsr# pin respectively. the transmitter clock may instead be asserted on the dtr# pin. the external clock options are selected through the cks register (offset 0x02 of icr). it is also possible to define the over - sampling rate used by the transmitter and receiver clocks. the 16c450/16c550 and compatible devices employ 16 times over - sampling, where there are 16 clock cycles per bit. however the 950 uart can employ any over - sampling rate from 4 to 16 by programming the tcr re gister. this allows the data rates to be increased to 460.8 kbps using a 1.8432mhz clock, or 15 mbps using a 60 mhz clock. the default value after a reset for this register is 0x00, which corresponds to a 16 cycle sampling clock. writing 0x01, 0x02 or 0x03 will also result in a 16 cycle sampling clock. to program the value to any value from 4 to 15 it is necessary to write this value into the tcr i.e. to set the device to a 13 cycle sampling clock it would be necessary to write 0x0d to tcr. for further info rmation see section 7.10.3 the uart also offers 9 - bit data frames for multi - drop industrial applications.
datasheet revision 1.1 page 30 ox16pci952 oxford semiconductor ltd. 7.2 register description tables the uart is accessed through an 8 - byte block of i/o space (or through memory space). sin ce there are more than 8 registers, the mapping is also dependent on the state of the line control register ?lcr? and additional control register ?acr?: 1. lcr[7]=1 enables the divider latch registers dll and dlm. 2. lcr specifies the data format used for both transmitter and receiver. writing 0xbf (an unused format) to lcr enables access to the 650 compatible register set. writing this value will set lcr[7] but leaves lcr[6:0] unchanged. therefore, the data format of the transmitter and receiver data is not aff ected. write the desired lcr value to exit from this selection. 3. acr[7]=1 enables access to the 950 specific registers. 4. acr[6]=1 enables access to the indexed control register set (icr) registers as described on page 32 . regis ter name address r/w bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 thr 1 000 w data to be transmitted rhr 1 000 r data received ier 1,2 650/950 mode cts interrupt mask rts interrupt mask special char. detect 550/750 mode 001 r/w unused alternate sleep mode sleep mode modem interrupt mask rx stat interrupt mask thre interrupt mask rxrdy interrupt mask fcr 3 650 mode rhr trigger level thr trigger level 750 mode rhr trigger level fifo siz e unused 950 mode 010 w unused tx trigger enable flush thr flush rhr enable fifo isr 3 010 r fifos enabled interrupt priority (enhanced mode) interrupt priority (all modes) interrupt pending lcr 4 011 r/w divisor latch access tx break force parity odd / even parity parity enable number of stop bit s data length mcr 3,4 550/750 mode unused cts & rts flow control 650/950 mode 100 r/w baud prescale irda mode xon - any enable internal loop back unused rts dtr lsr 3,5 normal data error tx empty thr empty rx break framing error parity error overrun error rxrdy 9 - bit data mode 101 r 9 th rx data bit msr 3 110 r dcd ri dsr cts delta dcd trailing ri edge delta dsr delta cts spr 3 normal temporary data storage register and indexed control register offset value bits 9 - bit data mode 111 r/w unused 9 th tx data bit additional standard registers ? these registers require divisor latch access bit (lcr[7]) to be set to 1. dll 000 r/w divisor latch bits [7:0] (least significant byte) dlm 001 r/w divisor latch bits [15:8] (most significant byt e) table 9 : standard 550 compatible registers
datasheet revision 1.1 page 31 ox16pci952 oxford semiconductor ltd. register name address r/w bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 to access these registers lcr must be set to 0xbf efr 010 r/w cts flow control rts flow control specia l char detect enhance mode in - band flow control mode xon1 100 r/w xon character 1 9 - bit mode special character 1 xon2 101 r/w xon character 2 9 - bit mode special character 2 xoff1 110 r/w xoff character 1 9 - bit mode special character 3 xoff2 111 r/w xoff character 2 9 - bit mode special character 4 table 10 : 650 compatible registers register name address r/w bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 asr 1,6,7 001 r/w 7 tx idle fifo size fifo - sel special char detect dtr rts remote tx disabled tx disabled rfl 6 011 r number of characters in the receiver fifo tfl 3,6 100 r number of characters in the transmitter fifo icr 3,8,9 101 r/w data read/written depends on the value written to the spr prior to th e access of this register (see table 12 ) table 11 : 950 specific registers register access notes: note 1: requires lcr[7] = 0 note 2: requires acr[7] = 0 note 3: requires that last value written to lcr wa s not 0xbf note 4: to read this register acr[7] must be = 0 note 5: to read this register acr[6] must be = 0 note 6: requires acr[7] = 1 note 7: only bits 0 and 1 of this register can be written note 8: to read this register acr[6] must be = 1 note 9: this register acts as a window through which to read and write registers in the indexed control register set
datasheet revision 1.1 page 32 ox16pci952 oxford semiconductor ltd. register name spr offset 10 r/w bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 indexed control register set acr 0x00 r/w addit - ional status enab le icr read enable 950 trigger level enable dtr definition and control auto dsr flow control enable tx disable rx disable cpr 0x01 r/w 5 bit ?integer? part of clock prescaler 3 bit ?fractional? part of clock prescaler tcr 0x02 r/w unused 4 bit n - times cl ock selection bits [3:0] cks 0x03 r/w tx 1x mode tx clk select bdout on dtr dtr 1x tx clk rx 1x mode 0 receiver clock sel[1:0] ttl 0x04 r/w unused transmitter interrupt trigger level (0 - 127) rtl 0x05 r/w unused receiver interrupt trigger level (1 - 127) fcl 0x06 r/w unused automatic flow control lower trigger level (0 - 127) fch 0x07 r/w unused automatic flow control higher trigger level (1 - 127) id1 0x08 r hardwired id byte 1 (0x16) id2 0x09 r hardwired id byte 1 (0xc9) id3 0x0a r hardwired id byte 1 (0 x50) rev 0x0b r hardwired revision byte (0x04) csr 0x0c w writing 0x00 to this register will reset the uart (except the cks and cka registers) nmr 0x0d r/w unused 9 th bit schar 4 9 th bit schar 3 9 th bit schar 2 9 th bit schar 1 9 th - bit int. en. 9 bit ena ble mdm 0x0e r/w 0 0 sin wakeup disable modem wakeup disable d dcd wakeup disable trailing ri edge disable d dsr wakeup disable d cts wakeup disable rfc 0x0f r fcr[7] fcr[6] fcr[5] fcr[4] fcr[3] fcr[2] fcr[1] fcr[0] gds 0x10 r unused good data status d ms 0x11 r/w force txrdy inactive force rxrdy inactive unused txrdy status ( r ) rxrdy status ( r ) pidx 0x12 r hardwired port index ( 0x00 ) cka 0x13 r/w unused invert dtr signal invert internal tx clock invert internal rx clock table 12 : indexed control register set note 10: the spr offset column indicates the value that must be written into spr prior to reading / writing any of the indexed control registers via icr. offset values not listed in the table are reserved for futu re use and must not be used. to read or write to any of the indexed controlled registers use the following procedure: writing to icr registers: ensure that the last value written to lcr was not 0xbf (reserved for 650 compatible register access value). w rite the desired offset to spr (address 111b). write the desired value to icr (address 101b).
datasheet revision 1.1 page 33 ox16pci952 oxford semiconductor ltd. reading from icr registers: ensure that the last value written to lcr was not 0xbf (see above). write 0x00 offset to spr to select acr. set bit 6 of acr (icr rea d enable) by writing x1xxxxxxb to address 101b. ensure that other bits in acr are not changed. (software drivers should keep a copy of the contents of the acr elsewhere since reading icr involves overwriting acr!) write the desired offset to spr (address 1 11b). read the desired value from icr (address 101b). write 0x00 offset to spr to select acr. clear bit 6 of acr bye writing x0xxxxxxb to icr, thus enabling access to standard registers again.
datasheet revision 1.1 page 34 ox16pci952 oxford semiconductor ltd. 7.3 reset configuration 7.3.1 hardware reset after a hardware reset, all writable registers are reset to 0x00, with the following exceptions: dll, which is reset to 0x01. cpr, which is reset to 0x20. the state of read - only registers following a hardware reset is as follows: rhr[7:0]: indeterminate rfl[6:0]: 0000000 2 tfl[ 6:0]: 0000000 2 lsr[7:0]: 0x60 signifying that both the transmitter and the transmitter fifo are empty msr[3:0]: 0000 2 msr[7:4]: dependent on modem input lines dcd, ri, dsr and cts respectively isr[7:0]: 0x01, i.e. no interrupts are pending asr[7:0]: 1xx00 000 2 rfc[7:0]: 00000000 2 gds[7:0]: 00000001 2 dms[7:0]: 00000010 2 cka[7:0]: 00000000 2 the reset state of output signals are tabulated below: signal reset state sout inactive high rts# inactive high dtr# inactive high table 13 : output signal reset state 7.3.2 software reset an additional feature available in the ox16pci952 uarts is software resetting of the serial channel. this command has the same effect on a single channel as a hardware reset except it does not reset the clock sou rce selections (i.e. cks register and cka register). to reset the uart write 0x00 to the channel software reset register ?csr?.
datasheet revision 1.1 page 35 ox16pci952 oxford semiconductor ltd. 7.4 transmitter and receiver fifos both the transmitter and receiver have associated holding registers (fifos), referred to as the transmitter holding register (thr) and receiver holding register (rhr) respectively. in normal operation, when the transmitter finishes transmitting a byte it will remove the next data from the top of the thr and proceed to transmit it. if the thr is empty, it will wait until data is written into it. if thr is empty and the last character being transmitted has been completed (i.e. the transmitter shift register is empty) the transmitter is said to be idle. similarly, when the receiver finishes receivi ng a byte, it will transfer it to the bottom of the rhr. if the rhr is full, an overrun condition will occur (see section 7.5.3 ). data is written into the bottom of the thr queue and read from the top of the rhr queue complete ly asynchronously to the operation of the transmitter and receiver. the size of the fifos is dependent on the setting of the fcr register. when in byte mode, these fifos only accept one byte at a time before indicating that they are full; this is compatib le with the 16c450. when in a fifo mode, the size of the fifos is either 16 (compatible with the 16c550) or 128. data written to the thr when it is full is lost. data read from the rhr when it is empty is invalid. the empty or full status of the fifos ar e indicated in the line status register ?lsr? (see section 7.5.3 ). interrupts are generated when the uart is ready for data transfer to/from the fifos. the number of items in each fifo may also be read back from the transmitter fifo level (tfl) and receiver fifo level (rfl) registers (see section 7.11.2 ). 7.4.1 fifo control register ?fcr? fifo setup: fcr[0]: enable fifo mode logic 0 t byte mode. logic 1 t fifo mode. this bit should be enabled before s etting the fifo trigger levels. fcr[1]: flush rhr logic 0 t no change. logic 1 t flushes the contents of the rhr this is only operative when already in a fifo mode. the rhr is automatically flushed whenever changing between byte mode and a fifo mode. thi s bit will return to zero after clearing the fifos. fcr[2]: flush thr logic 0 t no change. logic 1 t flushes the contents of the thr, in the same manner as fcr[1] does for the rhr. thr trigger levels: fcr[3]: tx trigger level enable logic 0 t transmit t rigger levels enabled logic 1 t transmit trigger levels disabled when fcr[3]=0, the transmitter trigger level is always set to 1, thus ignoring fcr[5:4]. alternatively, 950 - mode trigger levels can be set using acr[5]. fcr[5:4]: compatible trigger levels 450, 550 and extended 550 modes: the transmitter interrupt trigger levels are set to 1 and fcr[5:4] are ignored. 650 mode: in 650 mode the transmitter interrupt trigger levels can be set to the following values: fcr[5:4] transmit interrupt trigger lev el 00 16 01 32 10 64 11 112 table 14 : transmit interrupt trigger levels these levels only apply when in enhanced mode and when fcr[3] is set, otherwise the trigger level is set to 1. a transmitter empty interrupt will be gener ated (if enabled) if the tfl falls below the trigger level. 750 mode: in 750 compatible mode, transmitter trigger level is set to 1, fcr[4] is unused and fcr[5] defines the fifo depth as follows: fcr[5]=0: fifo size is 16 bytes. fcr[5]=1: fifo size is 12 8 bytes. in non - enhanced mode and when fifosel pin is low, fcr[5] is writable only when lcr[7] is set. note that in enhanced mode, the fifo size is increased to 128 bytes when fcr[0] is set.
datasheet revision 1.1 page 36 ox16pci952 oxford semiconductor ltd. 950 mode: setting acr[5]=1 enables 950 - mode trigger levels set using the ttl register (see section 7.11.4 ), fcr[5:4] are ignored. rhr trigger levels fcr[7:6]: compatible trigger levels 450, 550, extended 550, 650 and 750 modes: the receiver fifo trigger levels are defined using fcr[7:6] . the interrupt trigger level and upper flow control trigger level where appropriate are defined by l1 in the table below. l2 defines the lower flow control trigger level. separate upper and lower flow control trigger levels introduce a hysteresis element in in - band and out - of - band flow control (see section 7.9 ). in byte mode (450 mode) the trigger levels are all set to 1. 950 mode: in similar fashion to for transmitter trigger levels, setting acr[5]=1 enables 950 - mode receiv er trigger levels. fcr[7:6] are ignored. mode 550 fifo size 16 ext. 550 / 750 fifo size 128 650 fifo size 128 fcr [7:6] l1 l2 l1 l2 l1 l2 00 1 n/a 1 1 16 1 01 4 n/a 32 1 32 16 10 8 n/a 64 1 112 32 11 14 n/a 112 1 120 112 table 15 : compatible receiver trigger levels a receiver data interrupt will be generated (if enabled) if the receiver fifo level (?rfl?) reaches the upper trigger level. 7.5 line control & status 7.5.1 false start bit detection on the falling edge of a start bit, the receiver will wait for 1/2 bit and re - synchronise the receiver?s sampling clock onto the centre of the start bit. the start bit is valid if the sin line is still low at this mid - bit sample and the receiver will proceed to read in a data character. ver ifying the start bit prevents noise generating spurious character generation. once the first stop bit has been sampled, the received data is transferred to the rhr and the receiver will then wait for a low transition on sin (signifying the next start bit). the receiver will continue receiving data even if the rhr is full or the receiver has been disabled (see section 7.11.3 ) in order to maintain framing synchronisation. the only difference is that the received data does not get transferred to the rhr. 7.5.2 line control register ?lcr? the lcr specifies the data format that is common to both transmitter and receiver. writing 0xbf to lcr enables access to the efr, xon1, xoff1, xon2 and xoff2, dll and dlm registers. this value (0xbf) co rresponds to an unused data format. writing the value 0xbf to lcr will set lcr[7] but leaves lcr[6:0] unchanged. therefore, the data format of the transmitter and receiver data is not affected. write the desired lcr value to exit from this selection. lcr[ 1:0]: data length lcr[1:0] determines the data length of serial characters. note however, that these values are ignored in 9 - bit data framing mode, i.e. when nmr[0] is set. lcr[1:0] data length 00 5 bits 01 6 bits 10 7 bits 11 8 bits table 16 : lcr data length configuration lcr[2]: number of stop bits lcr[2] defines the number of stop bits per serial character. lcr[2] data length no. stop bits 0 5,6,7,8 1 1 5 1.5 1 6,7,8 2 table 17 : lcr stop bit num ber configuration
datasheet revision 1.1 page 37 ox16pci952 oxford semiconductor ltd. lcr[5:3]: parity type the selected parity type will be generated during transmission and checked by the receiver, which may produce a parity error as a result. in 9 - bit mode parity is disabled and lcr[5:3] is ignored. lcr[5:3] parity t ype xx0 no parity bit 001 odd parity bit 011 even parity bit 101 parity bit forced to 1 111 parity bit forced to 0 table 18 : lcr parity configuration lcr[6]: transmission break logic 0 t break transmission disabled. logic 1 t forces the transmitter data output sout low to alert the communication terminal, or send zeros in irda mode. it is the responsibility of the software driver to ensure that the break duration is longer than the character period for it to be recognised rem otely as a break rather than data. lcr[7]: divisor latch enable logic 0 t access to dll and dlm registers disabled. logic 1 t access to dll and dlm registers enabled. 7.5.3 line status register ?lsr? this register provides the status of data transfer to cpu. lsr[0]: rhr data available logic 0 t rhr is empty: no data available logic 1 t rhr is not empty: data is available to be read. lsr[1]: rhr overrun error logic 0 t no overrun error. logic 1 t data was received when the rhr was full. an overrun error has oc curred. the error is flagged when the data would normally have been transferred to the rhr. lsr[2]: received data parity error logic 0 t no parity error in normal mode or 9 th bit of received data is ?0? in 9 - bit mode. logic 1 t data has been received that did not have correct parity in normal mode or 9 th bit of received data is ?1? in 9 - bit mode. the parity error flag will be set when the data item in error is at the top of the rhr and cleared following a read of the lsr. in 9 - bit mode lsr[2] is no longer a flag and corresponds to the 9 th bit of the received data in rhr. lsr[3]: received data framing error logic 0 t no framing error. logic 1 t data has been received with an invalid stop bit. this status bit is set and cleared in the same manner as lsr[2] . when a framing error occurs, the uart will try to re - synchronise by assuming that the error was due to sampling the start bit of the next data item. lsr[4]: received break error logic 0 t no receiver break error. logic 1 t the receiver received a break. a break condition occurs when the sin line goes low (normally signifying a start bit) and stays low throughout the start, data, parity and first stop bit. (note that the sin line is sampled at the bit rate). one zero character with associated break flag set will be transferred to the rhr and the receiver will then wait until the sin line returns high. the lsr[4] break flag will be set when this data item gets to the top of the rhr and it is cleared following a read of the lsr. lsr[5]: thr empty logic 0 t transmitter fifo (thr) is not empty. logic 1 t transmitter fifo (thr) is empty. lsr[6]: transmitter and thr empty logic 0 t the transmitter is not idle logic 1 t thr is empty and the transmitter has completed the character in shift register and is in idl e mode. (i.e. set whenever the transmitter shift register and the thr are both empty.) lsr[7]: receiver data error logic 0 t either there are no receiver data errors in the fifo or it was cleared by a read of lsr. logic 1 t at least one parity error, fram ing error or break indication in the fifo. in 450 mode lsr[7] is permanently cleared, otherwise this bit will be set when an erroneous character is transferred from the receiver to the rhr. it is cleared when the lsr is read. note that in 16c550 this bit is only cleared when all of the erroneous data are removed from the fifo . in 9 - bit data framing mode parity is permanently disabled, so this bit is not affected by lsr[2].
datasheet revision 1.1 page 38 ox16pci952 oxford semiconductor ltd. 7.6 interrupts & sleep mode the serial channel interrupts are asserted on the pci pi n, inta#, by default. the interrupts can be enabled or disabled using the gis register interrupt mask (see section 6.4.5 ) and the ier register. unlike generic 16c550 devices, the interrupt can not be disabled using the implemen tation - specific mcr[3]. 7.6.1 interrupt enable register ?ier? serial channel interrupts are enabled using the interrupt enable register (?ier?). ier[0]: receiver data available interrupt mask logic 0 t disable the receiver ready interrupt. logic 1 t enable th e receiver ready interrupt. ier[1]: transmitter empty interrupt mask logic 0 t disable the transmitter empty interrupt. logic 1 t enable the transmitter empty interrupt. ier[2]: receiver status interrupt normal mode: logic 0 t disable the receiver status interrupt. logic 1 t enable the receiver status interrupt. 9 - bit data mode: logic 0 t disable receiver status and address bit interrupt. logic 1 t enable receiver status and address bit interrupt. in 9 - bit mode (i.e. when nmr[0] is set), reception of a c haracter with the address - bit (i.e. 9 th bit) set can generate a level 1 interrupt if ier[2] is set. ier[3]: modem status interrupt mask logic 0 t disable the modem status interrupt. logic 1 t enable the modem status interrupt. ier[4]: sleep mode logic 0 t disable sleep mode. logic 1 t enable sleep mode whereby the internal clock of the channel is switched off. sleep mode is described in section 7.6.4 . ier[5]: special character interrupt mask or alternate sleep mode 9 - bit d ata framing mode: logic 0 t disable the received special character interrupt. logic 1 t enable the received special character interrupt. in 9 - bit data mode, the receiver can detect up to four special characters programmed in the special character regist ers (see map on page 31 ). when ier[5] is set, a level 5 interrupt is asserted when the receiver character matches one of the values programmed. 650/950 modes (non - 9 - bit data framing): logic 0 t disable the special character r eceive interrupt. logic 1 t enable the special character receive interrupt. in 16c650 compatible mode when the device is in enhanced mode (efr[4]=1), this bit enables the detection of special characters. it enables both the detection of xoff characters ( when in - band flow control is enabled via efr[3:0]) and the detection of the xoff2 special character (when enabled via efr[5]). 750 mode (non - 9 - bit data framing): logic 0 t disable alternate sleep mode. logic 1 t enable alternate sleep mode whereby the in ternal clock of the channel is switched off. in 16c750 compatible mode (i.e. non - enhanced mode), this bit is used an alternate sleep mode and has the same effect as ier[4]. ier[6]: rts interrupt mask logic 0 t disable the rts interrupt. logic 1 t enab le the rts interrupt. this enable is only operative in enhanced mode (efr[4]=1). in non - enhanced mode, rts interrupt is permanently enabled ier[7]: cts interrupt mask logic 0 t disable the cts interrupt. logic 1 t enable the cts interrupt. this enab le is only operative in enhanced mode (efr[4]=1). in non - enhanced mode, cts interrupt is permanently enabled.
datasheet revision 1.1 page 39 ox16pci952 oxford semiconductor ltd. 7.6.2 interrupt status register ?isr? the source of the highest priority interrupt pending is indicated by the contents of the interrupt s tatus register ?isr?. there are nine sources of interrupt at six levels of priority (1 is the highest) as shown in table 19 . level interrupt source isr[5:0] see note 3 - no interrupt pending 1 000001 1 receiver status error or address - bit detected in 9 - bit mode 000110 2a receiver data available 000100 2b receiver time - out 001100 3 transmitter thr empty 000010 4 modem status change 000000 5 2 in - band flow control xoff or special character (xoff2) or special character 1, 2, 3 or 4 or bit 9 set in 9 - bit mode 010000 6 2 cts or rts change of state 100000 table 19 : interrupt status identification codes note1: isr[0] indicates whether any interrupts are pending. note2: interrupts of priority levels 5 and 6 cannot occur unless the uart is in enhanced mode. note3: isr[5] is only used in 650 & 950 modes. in 750 mode, it is ?0? when fifo size is 16 and ?1? when fifo size is 128. in all other modes it is permanently set to 0 7.6.3 interrupt description level 1: r eceiver status error interrupt (isr[5:0]=?000110?): normal (non - 9 - bit) mode: this interrupt is active whenever any of lsr[1], lsr[2], lsr[3] or lsr[4] are set. these flags are cleared following a read of the lsr. this interrupt is masked with ier[2]. 9 - bit mode: this interrupt is active whenever any of lsr[1], lsr[2], lsr[3] or lsr[4] are set. the receiver error interrupt due to lsr[1], lsr[3] and lsr[4] is masked with ier[3]. the ?address - bit? received interrupt is masked with nmr[1]. the software driver c an differentiate between receiver status error and received address - bit (9 th data bit) interrupt by examining lsr[1] and lsr[7]. in 9 - bit mode lsr[7] is only set when lsr[3] or lsr[4] is set and it is not affected by lsr[2] (i.e. 9 th data bit). level 2a : receiver data available interrupt (isr[5:0]=?000100?): this interrupt is active whenever the receiver fifo level is above the interrupt trigger level. level 2b: receiver time - out interrupt (isr[5:0]=?001100?): a receiver time - out event, which may ca use an interrupt, will occur when all of the following conditions are true: the uart is in a fifo mode there is data in the rhr. there has been no read of the rhr for a period of time greater than the time - out period. there has been no new data written int o the rhr for a period of time greater than the time - out period. the time - out period is four times the character period (including start and stop bits) measured from the centre of the first stop bit of the last data item received. reading the first data i tem in rhr clears this interrupt. level 3: transmitter empty interrupt (isr[5:0]=?000010?): this interrupt is set when the transmit fifo level falls below the trigger level. it is cleared on an isr read of a level 3 interrupt or by writing more data to the thr so that the trigger level is exceeded. note that when 16c950 mode trigger levels are enabled (acr[5]=1) and the transmitter trigger level of zero is selected (ttl=0x00), a transmitter empty interrupt will only be asserted when both the transmitter fifo and transmitter shift register are empty and the sout line has returned to idle marking state. level 4: modem change interrupt (isr[5:0]=?000000?): this interrupt is set by a modem change flag (msr[0], msr[1], msr[2] or msr[3]) becoming active due to changes in the input modem lines. this interrupt is cleared following a read of the msr. level 5: receiver in - band flow control (xoff) detect interrupt, receiver special character (xoff2) detect interrupt, receiver special character 1, 2, 3 or 4 inter rupt or 9 th bit set interrupt in 9 - bit mode (isr[5:0]=?010000?): a level 5 interrupt can only occur in enhanced - mode when any of the following conditions are met: a valid xoff character is received while in - band flow control is enabled. a received charact er matches xoff2 while special character detection is enabled, i.e. efr[5]=1. a received character matches special character 1, 2, 3 or 4 in 9 - bit mode (see section 7.11.9 ). it is cleared on an isr read of a le vel 5 interrupt.
datasheet revision 1.1 page 40 ox16pci952 oxford semiconductor ltd. level 6: cts or rts changed interrupt (isr[5:0]=?100000?): this interrupt is set whenever any of the cts# or rts# pins changes state from low to high. it is cleared on an isr read of a level 6 interrupt. 7.6.4 sleep mode for a channel to go into sleep mode, all of the following conditions must be met: sleep mode enabled (ier[4]=1 in 650/950 modes, or ier[5]=1 in 750 mode): the transmitter is idle, i.e. the transmitter shift register and fifo are both empty. sin is high. the receiver is idle . the receiver fifo is empty (lsr[0]=0). the uart is not in loopback mode (mcr[4]=0). changes on modem input lines have been acknowledged (i.e. msr[3:0]=0000). no interrupts are pending. a read of ier[4] (or ier[5] if a 1 was written to that bit instead) shows whether the power - down request was successful. the uart will retain its programmed state whilst in power - down mode. the channel will automatically exit power - down mode when any of the conditions 1 to 7 becomes false. it may be woken manually by clear ing ier[4] (or ier[5] if the alternate sleep mode is enabled). sleep mode operation is not available in irda mode. 7.7 modem interface 7.7.1 modem control register ?mcr? mcr[0]: dtr logic 0 t force dtr# output to inactive (high). logic 1 t force dtr# output t o active (low). note that dtr# can be used for automatic out - of - band flow control when enabled using acr[4:3] (see section 7.11.3 ). mcr[1]: rts logic 0 t force rts# output to inactive (high). logic 1 t force rts# output to ac tive (low). note that rts# can be used for automatic out - of - band flow control when enabled using efr[6] (see section 7.9.4 ). mcr[2]: out1 logic 0 t force out1# output low when loopback mode is disabled. logic 1 t force out1# output high. mcr[3]: out2/external interrupt enable logic 0 t force out2# output low when loopback mode is disabled. if int_sel# is low the external interrupt is in high - impedance state when mcr[3] is cleared. if int_sel# is high mcr[3] does not affect th e interrupt. logic 1 t force out2# output high. if int_sel# is low the external interrupt is enabled and operating in normal active (forcing) mode when mcr[3] is high. if int_sel# is high mcr[3] does not affect the interrupt. mcr[4]: loopback mode log ic 0 t normal operating mode. logic 1 t enable local loop - back mode (diagnostics). in local loop - back mode, the transmitter output (sout) and the four modem outputs (dtr#, rts#, out1# and out2#) are set in - active (high), and the receiver inputs sin, cts# , dsr#, dcd#, and ri# are all disabled. internally the transmitter output is connected to the receiver input and dtr#, rts#, out1# and out2# are connected to modem status inputs dsr#, cts#, ri# and dcd# respectively. in this mode, the receiver and transmi tter interrupts are fully operational. the modem control interrupts are also operational, but the interrupt sources are now the lower four bits of the modem control register instead of the four modem status inputs. the interrupts are still controlled by th e ier. mcr[5]: enable xon - any in enhanced mode or enable out - of - band flow control in non - enhanced mode 650/950 (enhanced) modes: logic 0 t xon - any is disabled. logic 1 t xon - any is enabled. in enhanced mode (efr[4]=1), this bit enables the xon - any opera tion. when xon - any is enabled, any received data will be accepted as a valid xon (see in - band flow control, section 7.9.3 ).
datasheet revision 1.1 page 41 ox16pci952 oxford semiconductor ltd. 750 (normal) mode: logic 0 t cts/rts flow control disabled. logic 1 t cts/rts flow control enabled. in non - enhanced mode, this bit enables the cts/rts out - of - band flow control. mcr[6]: irda mode logic 0 t standard serial receiver and transmitter data format. logic 1 t data will be transmitted and received in irda format. this function is only availab le in enhanced mode. it requires a 16x clock to function correctly. mcr[7]: baud rate prescaler select logic 0 t normal (divide by 1) baud rate generator prescaler selected. logic 1 t divide - by - ?m+n/8? baud rate generator prescaler selected. where m & n are programmed in cpr (icr offset 0x01). after a hardware reset, cpr defaults to 0x20 (divide - by - 4) and mcr[7] is reset. user writes to this flag will only take effect in enhanced mode. see section 7.9.1 . 7.7.2 modem status regis ter ?msr? msr[0]: delta cts# indicates that the cts# input has changed since the last time the msr was read. msr[1]: delta dsr# indicates that the dsr# input has changed since the last time the msr was read. msr[2]: trailing edge ri# indicates that the ri# input has changed from low to high since the last time the msr was read. msr[3]: delta dcd# indicates that the dcd# input has changed since the last time the msr was read. msr[4]: cts this bit is the complement of the cts# input. it is equivalent to rts (mcr[1]) in internal loop - back mode. msr[5]: dsr this bit is the complement of the dsr# input. it is equivalent to dtr (mcr[0]) in internal loop - back mode. msr[6]: ri this bit is the complement of the ri# input. in internal loop - back mode it is equiv alent to the internal out1. msr[7]: dcd this bit is the complement of the dcd# input. in internal loop - back mode it is equivalent to the internal out2. 7.8 other standard registers 7.8.1 divisor latch registers ?dll & dlm? the divisor latch registers are used to program the baud rate divisor. this is a value between 1 and 65535 by which the input clock is divided by in order to generate serial baud rates. after a hardware reset, the baud rate used by the transmitter and receiver is given by: divisor inputclock baudrate * 16 = where divisor is given by dll + ( 256 x dlm ). more flexible baud rate generation options are also available. see section 7.10 for full details. 7.8.2 scratch pad register ?spr? the scratch pad register does not affect operati on of the rest of the uart in any way and can be used for temporary data storage. the register may also be used to define an offset value to access the registers in the indexed control register set. for more information on indexed control registers see sec tions 7.2 and 7.11 .
datasheet revision 1.1 page 42 ox16pci952 oxford semiconductor ltd. 7.9 automatic flow control automatic in - band flow control, automatic out - of - band flow control and special character detection features can be used when in enhanced mode (flow cont rol is software compatible with the 16c654). alternatively, 750 - compatible automatic out - of - band flow control can be enabled when in non - enhanced mode. in 950 mode, in - band and out - of - band flow controls are compatible with 16c654 with the addition of fully programmable flow control thresholds. 7.9.1 enhanced features register ?efr? writing 0xbf to lcr enables access to the efr and other enhanced mode registers. this value corresponds to an unused data format. writing 0xbf to lcr will set lcr[7] but leaves lcr[6: 0] unchanged. therefore, the data format of the transmitter and receiver data is not affected. write the desired lcr value to exit from this selection. note: in - band transmit and receive flow control is disabled in 9 - bit mode. efr[1:0]: in - band receive f low control mode when in - band receive flow control is enabled, the uart compares the received data with the programmed xoff character(s). when this occurs, the uart will disable transmission as soon as any current character transmission is complete. the ua rt then compares the received data with the programmed xon character(s). when a match occurs, the uart will re - enable transmission (see section 7.11.6 ). for automatic in - band flow control, bit 4 of efr must be set. the combin ations of software receive flow control can be selected by programming efr[1:0] as follows: logic [00] t in - band receive flow control is disabled. logic [01] t single character in - band receive flow control enabled, recognising xon2 as the xon character an d xoff2 as the xoff character. logic [10] t single character in - band receive flow control enabled, recognising xon1 as the xon character and xoff1 and the xoff character. logic [11] t the behaviour of the receive flow control is dependent on the configurat ion of efr[3:2]. single character in - band receive flow control is enabled, accepting xon1 or xon2 as valid xon characters and xoff1 or xoff2 as valid xoff characters when efr[3:2] = ?01? or ?10?. efr[1:0] should not be set to ?11? when efr[3:2] is ?00?. e fr[3:2]: in - band transmit flow control mode when in - band transmit flow control is enabled, xon/xoff character(s) are inserted into the data stream whenever the rfl passes the upper trigger level and falls below the lower trigger level respectively. for au tomatic in - band flow control, bit 4 of efr must be set. the combinations of software transmit flow control can then be selected by programming efr[3:2] as follows: logic [00] t in - band transmit flow control is disabled. logic [01] t single character in - ba nd transmit flow control enabled, using xon2 as the xon character and xoff2 as the xoff character. logic [10] t single character in - band transmit flow control enabled, using xon1 as the xon character and xoff1 as the xoff character. logic[11] t the value e fr[3:2] = ?11? is reserved for future use and should not be used efr[4]: enhanced mode logic 0 t non - enhanced mode. disables ier bits 4 - 7, isr bits 4 - 5, fcr bits 4 - 5, mcr bits 5 - 7 and in - band flow control. whenever this bit is cleared, the setting of othe r bits of efr are ignored. logic 1 t enhanced mode. enables the enhanced mode functions. these functions include enabling ier bits 4 - 7, fcr bits 4 - 5, mcr bits 5 - 7. for in - band flow control the software driver must set this bit first. if this bit is set, o ut - of - band flow control is configured with efr bits 6 - 7, otherwise out - of - band flow control is compatible with 16c750. efr[5]: enable special character detection logic 0 t special character detection is disabled. logic 1 t while in enhanced mode (efr[4]=1 ), the uart compares the incoming receiver data with the xoff2 value. upon a correct match, the received data will be transferred to the rhr and a level 5 interrupt (xoff or special character) will be asserted if level 5 interrupts are enabled (ier[5] set to 1). efr[6]: enable automatic rts flow control. logic 0 t rts flow control is disabled (default). logic 1 t rts flow control is enabled in enhanced mode (i.e. efr[4] = 1), where the rts# pin will be forced inactive high if the rfl reaches the upper flo w control threshold. this will be released when the rfl drops below the lower threshold. 650 and 950 - mode drivers should use this bit to enable rts flow control.
datasheet revision 1.1 page 43 ox16pci952 oxford semiconductor ltd. efr[7]: enable automatic cts flow control. logic 0 t cts flow control is disabled (default). logic 1 t cts flow control is enabled in enhanced mode (i.e. efr[4] = 1), where the data transmission is prevented whenever the cts# pin is held inactive high. 650 and 950 - mode drivers should use this bit to enable cts flow control. a 750 - mode driver sho uld set mcr[5] to enable rts/cts flow control. 7.9.2 special character detection in enhanced mode (efr[4]=1), when special character detection is enabled (efr[5]=1) and the receiver matches received data with xoff2, the 'received special character' flag asr[4] will be set and a level 5 interrupt is asserted, if enabled by ier[5]. this flag will be cleared following a read of asr. the received status (i.e. parity and framing) of special characters does not have to be valid for these characters to be accepted as valid matches. 7.9.3 automatic in - band flow control when in - band receive flow control is enabled, the uart will compare the received data with xoff1 or xoff2 characters to detect an xoff condition. when this occurs, the uart will disable transmission as soon a s any current character transmission is complete. status bits isr[4] and asr[0] will be set. a level 5 interrupt will occur (if enabled by ier[5]). the uart will then compare all received data with xon1 or xon2 characters to detect an xon condition. when t his occurs, the uart will re - enable transmission and status bits isr[4] and asr[0] will be cleared. any valid xon/xoff characters will not be written into the rhr. an exception to this rule occurs if special character detection is enabled and an xoff2 cha racter is received that is a valid xoff. in this instance, the character will be written into the rhr. the received status (i.e. parity and framing) of xon/xoff characters does not have to be valid for these characters to be accepted as valid matches. wh en the 'xon any' flag (mcr[5]) is set, any received character is accepted as a valid xon condition and the transmitter will be re - enabled. the received data will be transferred to the rhr. when in - band transmit flow control is enabled, the rfl will be sam pled whenever the transmitter is idle (briefly, between characters, or when the thr is empty) and an xon/xoff character will be inserted into the data stream if needed. initially, remote transmissions are enabled and hence asr[1] is clear. if asr[1] is cle ar and the rfl has passed the upper trigger level (i.e. is above the trigger level), xoff will be sent and asr[1] will be set. if asr[1] is set and the rfl falls below the lower trigger level, xon will be sent and asr[1] will be cleared. if transmit flow control is disabled after an xoff has been sent, an xon will be sent automatically. 7.9.4 automatic out - of - band flow control automatic rts/cts flow control is selected by different means, depending on whether the uart is in enhanced or non - enhanced mode. when in non - enhanced mode, mcr[5] enables both rts and cts flow control. when in enhanced mode, efr[6] enables automatic rts flow control and efr[7] enables automatic cts flow control. this allows software compatibility with both 16c650 and 16c750 drivers. whe n automatic cts flow control is enabled and the cts# input becomes active, the uart will disable transmission as soon as any current character transmission is complete. transmission is resumed whenever the cts# input becomes inactive. when automatic rts flow control is enabled, the rts# pin will be forced inactive when the rfl reaches the upper trigger level and will return to active when the rfl falls below the lower trigger level. the automatic rts# flow control is anded with mcr[1] and hence is only op erational when mcr[1]=1. this allows the software driver to override the automatic flow control and disable the remote transmitter regardless by setting mcr[1]=0 at any time. automatic dtr/dsr flow control behaves in the same manner as rts/cts flow contro l but is enabled by acr[3:2], regardless of whether or not the uart is in enhanced mode.
datasheet revision 1.1 page 44 ox16pci952 oxford semiconductor ltd. 7.10 baud rate generation 7.10.1 general operation the uart contains a programmable baud rate generator that is capable of taking any clock input from 1.8432mhz to 60mhz and d ividing it by any 16 - bit divisor number from 1 to 65535 written into the dlm (msb) and dll (lsb) registers. in addition to this, a clock prescaler register is provided which can further divide the clock by values in the range 1.0 to 31.875 in steps of 0.12 5. also, a further feature is the times clock register ?tcr? which allows the sampling clock to be set to any value between 4 and 16. these clock options allow for highly flexible baud rate generation capabilities from almost any input clock frequency (up to 60mhz). the actual transmitter and receiver baud rate is calculated as follows: prescaler divisor sc inputclock baudrate * * = where : sc = sample clock values defined in tcr[3:0] divisor = dll + ( 256 x dlm ) prescaler = 1 when mcr[7] = ?0? else: = m + ( n / 8 ) where: m = cpr[7:3] (integer part ? 1 to 31) n = cpr[2:0] (fractional part ? 0.000 to 0.875 ) after a hardware reset, the prescaler is bypassed (set to 1) and tcr is set to 0x00 (i.e. sc = 16). assuming this default configuration, the following table gives the divisors required to be programmed into the dll and dlm registers in order to obtain various standard baud rates: dlm:dll divisor word baud rate (bits per second) 0x0900 50 0x0300 110 0x0180 300 0x00c0 600 0x0060 1,200 0x0030 2,400 0x0018 4,800 0x 000c 9,600 0x0006 19,200 0x0004 28,800 0x0003 38,400 0x0002 57,600 0x0001 115,200 table 20 : standard pc com port baud rate divisors (assuming a 1.8432mhz crystal) 7.10.2 clock prescaler register ?cpr? the cpr register is located at o ffset 0x01 of the icr the prescaler divides the system clock by any value in the range of 1 to ?31 7/8? in steps of 1/8. the divisor takes the form ?m+n/8?, where m is the 5 bit value defined in cpr[7:3] and n is the 3 bit value defined in cpr[2:0]. the prescaler is by - passed and a prescaler value of ?1? is selected by default when mcr[7] = 0. note that since access to mcr[7] is restricted to enhanced mode only, efr[4] should first be set and then mcr[7] set or cleared as required. for higher baud rate s use a higher frequency clock, e.g. 14.7456mhz, 18.432mhz, 32mhz, 40mhz or 60.0mhz. the flexible prescaler allows system designers to use clocks that are not integer multiples of popular baud rates; when using a non - standard clock frequency, compatibility with existing 16c550 software drivers may be maintained with a minor software patch to program the on - board prescaler to divide the high frequency clock down to 1.8432mhz. table 22 on the following page gives the prescaler value s required to operate the uarts at compatible baud rates with various different crystal frequencies. also given is the maximum available baud rates in tcr = 16 and tcr = 4 modes with cpr = 1. 7.10.3 times clock register ?tcr? the tcr register is located at offse t 0x02 of the icr the 16c550 and other compatible devices such as 16c650 and 16c750 use a 16 times (16x) over - sampling channel clock. the 16x over - sampling clock means that the channel clock runs at 16 times the selected serial bit rate. it limits the hig hest baud rate to 1/16 of the system clock when using a divisor latch value of unity. however, each uart of the ox16pci952 is designed in a manner to enable it to accept other multiplications of the bit rate clock. it can use values from 4x to 16x clock as programmed in the tcr as long as the clock (oscillator) frequency error, stability and jitter are within reasonable parameters. upon hardware reset the tcr is reset to 0x00 which means that a 16x clock will be used, for compatibility with the 16c550 and c ompatibles. the maximum baud - rates available for various system clock frequencies at all of the allowable values of tcr are indicated in table 23 on the following page. these are the
datasheet revision 1.1 page 45 ox16pci952 oxford semiconductor ltd. values in bits - per - second (bps ) that are obtained if the divisor latch = 0x01 and the prescaler is set to 1. the ox16pci952 has the facility to operate at baud - rates up to 15 mbps in normal mode. table 26 indicates how the value in the register corresponds to the number of clock cyc les per bit. tcr[3:0] is used to program the clock. tcr[7:4] are unused and will return ?0000? if read. tcr[3:0] clock cycles per bit 0000 to 0011 16 0100 to 1111 4 - 15 table 21 : tcr sample clock configuration use of the tcr do es not require the device to be in 650 or 950 mode although only drivers that have been written to take advantage of the 950 mode features will be able to access this register. writing 0x01 to the tcr will not switch the device into 1x isochronous mode, th is is explained in the following section. (tcr has no effect in isochronous mode). if 0x01, 0x10 or 0x11 is written to tcr the device will operate in 16x mode. reading tcr will always return the last value that was written to it irrespective of mode of o peration. clock frequency (mhz) cpr value effective crystal frequency error from 1.8432mhz (%) max. baud rate with cpr = 1, tcr = 16 max. baud rate with cpr = 1, tcr = 4 1.8432 0x08 (1) 1.8432 0.00 115,200 460,800 7.3728 0x20 (4) 1.8432 0.00 460,800 1 ,843,200 14.7456 0x40 (8) 1.8432 0.00 921,600 3,686,400 18.432 0x50 (10) 1.8432 0.00 1,152,000 4,608,000 32.000 0x8b (17.375) 1.8417 0.08 2,000,000 8,000,000 33.000 0x8f (17.875) 1.8462 0.16 2,062,500 8,250,000 40.000 0xae (21.75) 1.8391 0.22 2,500, 000 10,000,000 50.000 0xd9 (27.125) 1.8433 0.01 3,125,000 12,500,000 60.000 0xff (31.875) 1.8824 2.13 3,750,000 15,000,000 table 22 : example clock options and their associated maximum baud rates system c lock (mhz) sampling clock tcr value 1.8432 7.372 14.7456 18.432 32 40 50 60 16 0x00 115,200 460,750 921,600 1.152m 2.00m 2.50m 3.125m 3.75m 15 0x0f 122,880 491,467 983,040 1,228,800 2,133,333 2,666,667 3,333,333 4.00m 14 0x0e 131,657 526,571 1,053,257 1,316,571 2,285,714 2,8 57,143 3,571,429 4,285,714 13 0x0d 141,785 567,077 1,134,277 1,417,846 2,461,538 3,076,923 3,846,154 4,615,384 12 0x0c 153,600 614,333 1,228,800 1,536,000 2,666,667 3,333,333 4,166,667 5.00m 11 0x0b 167,564 670,182 1,340,509 1,675,636 2,909,091 3,636,36 4 4,545,455 5,454545 10 0x0a 184,320 737,200 1,474,560 1,843,200 3.20m 4.00m 5.00m 6.00m 9 0x09 204,800 819,111 1,638,400 2,048,000 3,555,556 4,444,444 5,555,556 6,666,667 8 0x08 230,400 921,500 1,843,200 2,304,000 4.00m 5.00m 6.25m 7.50m 7 0x07 263,31 4 1,053,143 2,106,514 2,633,143 4,571,429 5,714,286 7,142,857 8,571428 6 0x06 307,200 1,228,667 2,457,600 3,072,000 5,333,333 6,666,667 8,333,333 10.00m 5 0x05 368,640 1,474,400 2,949,120 3,686,400 6.40m 8.00m 10.00m 12.00m 4 0x04 460,800 1,843,000 3,68 6,400 4,608,000 8.00m 10.00m 12.50m 15.00m table 23 : maximum baud rates available at all ?tcr? sampling clock values
datasheet revision 1.1 page 46 ox16pci952 oxford semiconductor ltd. 7.10.4 external 1x clock mode the transmitter and receiver can accept an external clock applied to the ri# and dsr# p ins respectively. the clock options are selected using the cks register (see section 7.11.8 ). the transmitter and receiver may be configured to operate in 1x (i.e. isochronous mode) by setting cks[7] and cks[3], respectively. in isochronous mode, transmitter or receiver will use the 1x clock (usually, but not necessarily, an external source) where asynchronous framing is maintained using start - , parity - and stop - bits. however serial transmission and reception is synchronised to the 1x clock. in this mode asynchronous data may be transmitted at baud rates up to 60mbps. the local 1x clock source can be asserted on the dtr# pin. note that line drivers need to be capable of transmission at data rates twice the system clock used (as one cycle of the system clock corresponds to 1 bit of serial data). also note that enabling modem interrupts is illegal in isochronous mode, as the clock signal will cause a continuous change to the modem status (unless masked in mdm regist er, see section 7.11.10 ). 7.10.5 crystal oscillator circuit the uarts reference reference clock may be provided by its own crystal oscillator or directly from a clock source connected to the xtli pin. the circuit required to use the internal oscillator is shown in figure 2 . r 1 r 2 c 1 c 2 xtli xtlo figure 2 : crystal oscillator circuit frequency range (mhz) c 1 (pf) c 2 (pf) r 1 ( w w ) r 2 ( w w ) 1.8432 - 8 68 22 220k 470r 8 - 60 33 - 68 33 ? 68 220k - 2m2 470r ta ble 24 : component values note: for better stability use a smaller value of r 1 . increase r 1 to reduce power consumption. the total capacitive load (c1 in series with c2) should be that specified by the crystal manufacturer (nominall y 16pf). 7.11 additional features 7.11.1 additional status register ?asr? asr[0]: transmitter disabled logic 0 t the transmitter is not disabled by in - band flow control. logic 1 t the receiver has detected an xoff, and has disabled the transmitter. this bit is cleared after a hardware reset or channel software reset. the software driver may write a 0 to this bit to re - enable the transmitter if it was disabled by in - band flow control. writing a 1 to this bit has no effect. asr[1]: remote transmitter disabled logic 0 t the remote transmitter is not disabled by in - band flow control. logic 1 t the transmitter has sent an xoff character, to disable the remote transmitter (cleared when subsequent xon is sent). this bit is cleared after a hardware reset or channel software reset. the software driver may write a 0 to this bit to re - enable the remote transmitter (an xon is transmitted). note: writing a 1 to this bit has no effect. asr[2]: rts this is the complement of the actual state of the rts# pin when the devic e is not in loopback mode. the driver software can determine if the remote transmitter is disabled by rts# out - of - band flow control by reading this bit. in loopback mode this bit reflects the flow control status rather than the pin?s actual state. asr[3]: dtr this is the complement of the actual state of the dtr# pin when the device is not in loopback mode. the driver software can determine if the remote transmitter is disabled by dtr# out - of - band flow control by reading this bit. in loopback mode this bit reflects the flow control status rather than the pin?s actual state.
datasheet revision 1.1 page 47 ox16pci952 oxford semiconductor ltd. asr[4]: special character detected logic 0 t no special character has been detected. logic 1 t a special character has been received and is stored in the rhr. this can be used to dete rmine whether a level 5 interrupt was caused by receiving a special character rather than an xoff. the flag is cleared following the read of the asr. asr[5]: fifosel this bit reflects the unlatched state of the fifosel pin. asr[6]: fifo size logic 0 t fi fos are 16 deep if fcr[0] = 1. logic 1 t fifos are 128 deep if fcr[0] = 1. asr[7]: transmitter idle logic 0 t transmitter is transmitting. logic 1 t transmitter is idle. this bit reflects the state of the internal transmitter. it is set when both the tr ansmitter fifo and shift register are empty. 7.11.2 fifo fill levels ?tfl & rfl? the number of characters stored in the thr and rhr can be determined by reading the tfl and rfl registers respectively. when data transfer is in constant operation, the values shoul d be interpreted as follows: 1. the number of characters in the thr is no greater than the value read back from tfl. 2. the number of characters in the rhr is no less than the value read back from rfl. 7.11.3 additional control register ?acr? the acr register is locat ed at offset 0x00 of the icr acr[0]: receiver disable logic 0 t the receiver is enabled, receiving data and storing it in the rhr. logic 1 t the receiver is disabled. the receiver continues to operate as normal to maintain the framing synchronisation wit h the receive data stream but received data is not stored into the rhr. in - band flow control characters continue to be detected and acted upon. special characters will not be detected. changes to this bit will only be recognised following the completion of any data reception pending. acr[1]: transmitter disable logic 0 t the transmitter is enabled, transmitting any data in the thr. logic 1 t the transmitter is disabled. any data in the thr is not transmitted but is held. however, in - band flow control characters may still be transmitted. changes to this bit will only be recognised following the completion of any data transmission pending. acr[2]: enable automatic dsr flow control logic 0 t normal. the state of the dsr# line does not affect the flow con trol. logic 1 t data transmission is prevented whenever the dsr# pin is held inactive high. this bit provides another automatic out - of - band flow control facility using the dsr# line. acr[4:3]: dtr# line configuration when bits 4 or 5 of cks (offset 0x03 of icr) are set, the transmitter 1x clock or the output of the baud rate generator (nx clock) are asserted on the dtr# pin, otherwise the dtr# pin is defined as follows: logic [00] t dtr# is compatible with 16c450, 16c550, 16c650 and 16c750 (i.e. normal). logic [01] t dtr# pin is used for out - of - band flow control. it will be forced inactive high if the receiver fifo level (?rfl?) reaches the upper flow control threshold. dtr# line will be re - activated (=0) when the rfl drops below the lower threshold (see fcl & fch). logic [10] t dtr# pin is configured to drive the active - low enable pin of an external rs485 buffer. in this configuration the dtr# pin will be forced low whenever the transmitter is not empty (lsr[6]=0), otherwise dtr# pin is high. logic [11] t dtr# pin is configured to drive the active - high enable pin of an external rs485 buffer. in this configuration, the dtr# pin will be forced high whenever the transmitter is not empty (lsr[6]=0), otherwise dtr# pin is low. if the user sets acr[4], then t he dtr# line is controlled by the status of the transmitter empty bit of lcr. when acr[4] is set, acr[3] is used to select active high or active low enable signals. in half - duplex systems using rs485 protocol, this facility enables the dtr# line to directl y control the enable signal of external 3 - state line driver buffers. when the transmitter is empty the dtr# would go inactive once the sout line returns to it?s idle marking state.
datasheet revision 1.1 page 48 ox16pci952 oxford semiconductor ltd. acr[5]: 950 mode trigger levels enable logic 0 t interrupts and flow co ntrol trigger levels are as described in fcr register and are compatible with 16c650/16c750 modes. logic 1 t 950 specific enhanced interrupt and flow control trigger levels defined by rtl, ttl, fcl and fch are enabled. acr[6]: icr read enable logic 0 t th e line status register is readable. logic 1 t the indexed control registers are readable. setting this bit will map the icr set to the lsr location for reads. during normal operation this bit should be cleared. acr[7]: additional status enable logic 0 t access to the asr, tfl and rfl registers is disabled. logic 1 t access to the asr, tfl and rfl registers is enabled. when acr[7] is set, the mcr, lcr and ier registers are no longer readable but remain writable, and the registers asr, tfl and rfl replace them in the register map for read operations. the software driver may leave this bit set during normal operation, since mcr, lcr and ier do not generally need to be read. 7.11.4 transmitter trigger level ?ttl? the ttl register is located at offset 0x04 of the i cr whenever 950 trigger levels are enabled (acr[5]=1), bits 4 and 5 of fcr are ignored and an alternative arbitrary transmitter interrupt trigger level can be defined in the ttl register. this 7 - bit value provides a fully programmable transmitter interrup t trigger facility. in 950 mode, a priority level 3 interrupt occurs indicating that the transmitter buffer requires more characters when the interrupt is not masked (ier[1]=1) and the transmitter fifo level falls below the value stored in the ttl register . the value 0 (0x00) has a special meaning. in 950 mode when the user writes 0x00 to the ttl register, a level 3 interrupt only occurs when the fifo and the transmitter shift register are both empty and the sout line is in the idle marking state. this feat ure is particularly useful to report back the empty state of the transmitter after its fifo has been flushed away. 7.11.5 receiver interrupt. trigger level ?rtl? the rtl register is located at offset 0x05 of the icr whenever 950 trigger levels are enabled (acr[ 5]=1), bits 6 and 7 of fcr are ignored and an alternative arbitrary receiver interrupt trigger level can be defined in the rtl register. this 7 - bit value provides a fully programmable receiver interrupt trigger facility as opposed to the limited trigger le vels available in 16c650 and 16c750 devices. it enables the system designer to optimise the interrupt performance hence minimising the interrupt overhead. in 950 mode, a priority level 2 interrupt occurs indicating that the receiver data is available whe n the interrupt is not masked (ier[0]=1) and the receiver fifo level reaches the value stored in this register. 7.11.6 flow control levels ?fcl? & ?fch? the fcl and fch registers are located at offsets 0x06 and 0x07 of the icr respectively enhanced software fl ow control using xon/xoff and hardware flow control using rts#/cts# and dtr#/dsr# are available when 950 mode trigger levels are enabled (acr[5]=1). improved flow control threshold levels are offered using flow control lower trigger level (?fcl?) and flow control higher trigger level (?fch?) registers to provide a greater degree of flexibility when optimising the flow control performance. generally, these facilities are only available in enhanced mode. in 650 mode, in - band flow control is enabled using the efr register. an xoff character may be transmitted when the receiver fifo exceeds the upper trigger level defined by fcr[7:6] as described in section 7.4.1 . an xon is then sent when the fifo is read down the lo wer fill level. the flow control is enabled and the appropriate mode is selected using efr[3:0]. in 950 mode, the flow control thresholds defined by fcr[7:6] are ignored. in this mode, threshold levels are programmed using fcl and fch. when flow control i s enabled by efr[3:0] and the receiver fifo level (?rfl?) reaches the value programmed in the fch register, one xoff may be transmitted to stop the flow of serial data as defined by efr[3:0]. when the receiver fifo level falls below the value programmed in fcl, the flow is resumed by sending one xon character (as defined in efr[3:0]). the fcl value of 0x00 is illegal. cts/rts and dsr/dtr out - of - band flow control use the same trigger levels as in - band flow control. when out - of - band flow control is enabled, rts# (or dtr#) line is de - asserted when the receiver fifo level reaches the upper limit defined in the fch and is re - asserted when the receiver fifo is drained below a lower limit defined in fcl. when 950 trigger levels are enabled (acr[5]=1), the cts# fl ow control functions as in 650 mode and is configured by efr[7]. however, rts# is automatically de - asserted and re - asserted when efr[6] is set and rfl reaches fch and drops below fcl. dsr# flow control is configured with acr[2]. dtr# flow control is config ured with acr[4:3].
datasheet revision 1.1 page 49 ox16pci952 oxford semiconductor ltd. 7.11.7 device identification registers the identification registers is located at offsets 0x08 to 0x0b of the icr the uarts offer four bytes of device identification. the device id registers may be read using offset values 0x08 to 0x0b of th e indexed control register. registers id1, id2 and id3 identify the device as an ox16c950 and return 0x16, 0xc9 and 0x50 respectively. the rev register resides at offset 0x0b of icr and identifies the revision of 950 core. this register returns 0x04 for th e uart core in this device. 7.11.8 clock select register ?cks? the cks register is located at offset 0x03 of the icr this register is cleared to 0x00 after a hardware reset to maintain compatibility with 16c550, but is unaffected by software reset. this allows the user to select a clock source and then reset the channel to work - around any timing glitches. cks[1:0]: receiver clock source selector logic [00] t the rclk pin is selected for the receiver clock (550 compatible mode). logic [01] t the dsr# pin is sel ected for the receiver clock. logic [10] t the output of baud rate generator (internal bdout#) is selected for the receiver clock. logic [11] t the transmitter clock is selected for the receiver. this allows ri# to be used for both transmitter and receiv er. cks[2]: reserved cks[3]: receiver 1x clock mode selector logic 0 t the receiver is in nx clock mode as defined in the tcr register. after a hardware reset the receiver operates in 16x clock mode, i.e. 16c550 compatibility. logic 1 t the receiver is i n isochronous 1x clock mode. cks[5:4]: transmitter 1x clock or baud rate generator output (bdout) on dtr# pin logic [00] t the function of the dtr# pin is defined by the setting of acr[4:3]. logic [01] t the transmitter 1x clock (bit rate clock) is asser ted on the dtr# pin and the setting of acr[4:3] is ignored. logic [10] t the output of baud rate generator (nx clock) is asserted on the dtr# pin and the setting of acr[4:3] is ignored. logic [11] t reserved. cks[6]: transmitter clock source selector lo gic 0 t the transmitter clock source is the output of the baud rate generator (550 compatibility). logic 1 t the transmitter uses an external clock applied to the ri# pin. cks[7]: transmitter 1x clock mode selector logic 0 t the transmitter is in nx cloc k mode as defined in the tcr register. after a hardware reset the transmitter operates in 16x clock mode, i.e. 16c550 compatibility. logic 1 t the transmitter is in isochronous 1x clock mode. 7.11.9 nine - bit mode register ?nmr? the nmr register is located at off set 0x0d of the icr the uart offers 9 - bit data framing for industrial multi - drop applications. the 9 - bit mode is enabled by setting bit 0 of the nine - bit mode register (nmr). in 9 - bit mode the data length setting in lcr[1:0] is ignored. furthermore as par ity is permanently disabled, the setting of lcr[5:3] is also ignored. the receiver stores the 9th bit of the received data in lsr[2] (where parity error is stored in normal mode). note that the uart provides a 128 - deep fifo for lsr[3:0]. the transmitter fifo is 9 bits wide and 128 deep. the user should write the 9th (msb) data bit in spr[0] first and then write the other 8 bits to thr. as parity mode is disabled, lsr[7] is set whenever there is an overrun, framing error or received break condition. it is unaffected by the contents of lsr[2] (now the received 9th data bit). in 9 - bit mode, in - band flow control is disabled regardless of the setting of efr[3:0] and the xon1/xon2/xoff1 and xoff2 registers are used for special character detection. interrupt s in 9 - bit mode: while ier[2] is set, upon receiving a character with status error, a level 1 interrupt is asserted when the character and the associated status are transferred to the fifo. the uart can assert an optional interrupt if a received character has its 9 th bit set. as multi - drop systems often use the 9 th bit as an address bit, the receiver is able to generate an interrupt upon receiving an address character. this feature is enabled by setting nmr[2]. this will result in a level 1 interrupt bein g asserted when the address character is transferred to the receiver fifo. in this case, as long as there are no errors pending, i.e. lsr[1], lsr[3], and lsr[4] are clear, '0' can be read back from lsr[7] and lsr[1], thus differentiating between an ?addr ess? interrupt and receiver error or overrun interrupt in
datasheet revision 1.1 page 50 ox16pci952 oxford semiconductor ltd. 9 - bit mode. note however that should an overrun or error interrupt actually occur, an address character may also reside in the fifo. in this case, the software driver should examine the contents of the receiver fifo as well as process the error. the above facility produces an interrupt for recognizing any ?address? characters. alternatively, the user can configure the uart to compare the receiver data stream with up to four programmable 9 - bit charac ters and assert a level 5 interrupt after detecting a match. the interrupt occurs when the character is transferred to the fifo (see below). nmr[0]: 9 - bit mode enable logic 0 t 9 - bit mode is disabled. logic 1 t 9 - bit mode is enabled. nmr[1]: enable inte rrupt when 9 th bit is set logic 0 t receiver interrupt for detection of an ?address? character (i.e. 9 th bit set) is disabled. logic 1 t receiver interrupt for detection of an ?address? character (i.e. 9 th bit set) is enabled and a level 1 interrupt is ass erted. special character detection while the uart is in both 9 - bit mode and enhanced mode, setting ier[5] will enable detection of up to four ?address? characters. the least significant eight bits of these four programmable characters are stored in speci al characters 1 to 4 (xon1, xon2, xoff1 and xoff2 in 650 mode) registers and the 9 th bit of these characters are programmed in nmr[5] to nmr[2] respectively. nmr[2]: bit 9 of special character 1 nmr[3]: bit 9 of special character 2 nmr[4]: bit 9 of speci al character 3 nmr[5]: bit 9 of special character 4 nmr[7:6]: reserved bits 6 and 7 of nmr are always cleared and reserved for future use. 7.11.10 modem disable mask ?mdm? the mdm register is located at offset 0x0e of the icr this register is cleared after a hard ware reset to maintain compatibility with 16c550. it allows the user to mask interrupts, sleep operation and power management events due to individual modem lines or the serial input line. mdm[0]: disable delta cts logic 0 t delta cts is enabled. it can generate a level 4 interrupt when enabled by ier[3]. in power - state d2, delta cts can assert the pme# line. delta cts can wake up the uart when it is asleep under auto - sleep operation. logic 1 t delta cts is disabled. in can not generate an interrupt, ass ert a pme# or wake up the uart. mdm[1]: disable delta dsr logic 0 t delta dsr is enabled. it can generate a level 4 interrupt when enabled by ier[3]. in power - state d2, delta dsr can assert the pme# line. delta dsr can wake up the uart when it is asleep un der auto - sleep operation. logic 1 t delta dsr is disabled. in can not generate an interrupt, assert a pme# or wake up the uart. mdm[2]: disable trailing edge ri logic 0 t trailing edge ri is enabled. it can generate a level 4 interrupt when enabled by ie r[3]. in power - state d2, trailing edge ri can assert the pme# line. trailing edge ri can wake up the uart when it is asleep under auto - sleep operation. logic 1 t trailing edge ri is disabled. in can not generate an interrupt, assert a pme# or wake up the uart. mdm[3]: disable delta dcd logic 0 t delta dcd is enabled. it can generate a level 4 interrupt when enabled by ier[3]. in power - state d2, delta dcd can assert the pme# line. delta dcd can wake up the uart when it is asleep under auto - sleep operation. logic 1 t delta dcd is disabled. in can not generate an interrupt, assert a pme# or wake up the uart. mdm[4]: reserved this bit must be set to ?0? mdm[5]: disable sin wake up logic 0 t when the device is in power - down state d2, a change in the state of the serial input line (i.e. start bit) can assert the pme# line logic 1 t when the device is in power - down state d2, a change in the state of the serial input line cannot assert the pme# line. mdm[7:6]: reserved 7.11.11 readable fcr ?rfc? the rfc register is lo cated at offset 0x0f of the icr this read - only register returns the current state of the fcr register (note that fcr is write - only). this register is included for diagnostic purposes.
datasheet revision 1.1 page 51 ox16pci952 oxford semiconductor ltd. 7.11.12 good - data status register ?gds? the gds register is located at o ffset 0x10 of the icr for the definition of good - data status refer to section 6.4.3 gds[0]: good data status gds[7:1]: reserved 7.11.13 dma status register ?dms? the dms register is located at offset 0x11 of the icr. this allows the internal txrdy# and rxrdy# lines to be permanently deasserted, and the current internal status to be monitored. this mainly has applications for testing. dms[0]: rxrdy status read only: set when rxrdy is asserted (pin driven low). dms[1]: txrdy status read only: set when txrdy is asserted (pin driven low). dms[5:2] reserved dms[6]: force rxrdy inactive logic 0 t rxrdy# acts normally logic 1 t rxrdy# is permanently inactive (high) regardless of fifo thresholds dma[7]: force txrdy inactive logic 0 t txrdy# acts normally logic 1 t txrdy# is permanently inactive (high) regardless of fifo thresholds. 7.11.14 port index register ?pix? the pix register is located at offset 0x12 of the icr. this read - only register gives the uart index. for a single channel device such as the ox16c950 this rea ds ?0?. 7.11.15 clock alteration register ?cka? the cka register is located at offset 0x13 of the icr. this register adds additional clock control mainly for isochronous and embedded applications. the register is effectively an enhancement to the cks register. t his register is cleared to 0x00 after a hardware reset to maintain compatibility with 16c550, but is unaffected by software reset. this allows the user to select a clock mode and then reset the channel to work - around any timing glitches.
datasheet revision 1.1 page 52 ox16pci952 oxford semiconductor ltd. 8 b i - directional p arallel p ort 8.1 operation and mode selection the ox16pci952 offers a compact, low power, ieee - 1284 compliant host - interface parallel port, designed to interface to many peripherals such as printers, scanners and external drives. it supports compatibility modes, spp, nibble, ps2, epp and ecp modes. the register set is compatible with the microsoft register definition. the system can access the parallel port registers via two blocks of i/o space as defined by 2 bars (base address registers) in the pci configuration space of function 1(dual - mode device operation only). bar0 (8 - bytes of i/o space) contains the address of the basic parallel port registers and bar1 (4 - bytes of i/o space) contains the address of th e upper (extended) registers. these register blocks are referred to as the ?lower block? and ?upper block?, respectively, in this section. if the upper block is located at an address 0x400 above the lower block, as shown below, then generic pc parallel p ort device drivers can be used to configure the port, as the addressable registers of legacy parallel ports always have this relationship. bar0 = 0x00000379 (8 bytes of i/o at address 0x378) bar1 = 0x00000779 (4 bytes of i/o at address 0x778) if this re lationship is not used, then a custom driver will be needed. 8.1.1 spp mode spp (output - only) mode is the standard implementation of a simple parallel port, and is the default mode of the ox16pci952 following a reset. in this mode, the parallel port data line s (pd[7:0] lines) always drive the value written to the pdr register. all data transfers are done under software control using the registers dcr and dsr. input must be performed in nibble mode. generic device driver - software may use the address in i/o spa ce defined by bar0 (of function 1) to access these parallel port registers. 8.1.2 ps2 mode this mode is also referred to as bi - directional or compatible parallel port. to use the ps2 mode, the mode field of the extended control register (ecr[7:5]) must be set to ?001?, using the negotiation steps as defined by the ieee1284 specification. ps2 operation is similar to spp mode but, in this mode, directional control of the parallel port data lines (pd[7:0]) is possible by setting & clearing dcr[5], the data direc tion bit. 8.1.3 epp mode to use the enhanced parallel port (?epp?) mode, the mode field of the extended control register (ecr[7:5]) must be set to ?100? using the negotiation steps as defined by the ieee1284 specification the epp address and data port regist ers are compatible with the ieee 1284 definition. a write or read to one of the epp port registers is passed through the parallel port to access the external peripheral. in epp mode, the stb#, init#, afd# and slin# pins change from open - drain outputs to active push - pull (totem pole) drivers (as required by ieee 1284) and the pins ack#, afd#, busy, slin# and stb# are redefined as intr#, datastb#, wait#, addrstb# and write# respectively. an epp port access begins with the host reading or writing to one of the epp port registers. the device automatically buffers the data between the i/o registers and the parallel port depending on whether it is a read or a write cycle. when the peripheral is ready to complete the transfer it takes the wait# status line high. this allows the host to complete the epp cycle. if a faulty or disconnected peripheral failed to respond to an epp cycle the host would never see a rising edge on wait#, and subsequently lock up. a built - in time - out facility is provided in order to preve nt this from happening. it uses a fixed internal timer which aborts the epp cycle and sets a flag in the dsr register to indicate the condition. when the parallel port is not in epp mode the timer is switched off to reduce current consumption. the host tim e - out period is 10 m s as specified with the ieee - 1284 specification. the register set is compatible with the microsoft register definition. assuming that the upper block is located 400h above the lower block, the epp registers are found at offset 000 - 007h and 400 - 402h.
datasheet revision 1.1 page 53 ox16pci952 oxford semiconductor ltd. 8.1.4 ecp mode to use the extended capabilities port (?ecp?) mode, the mode field of the extended control register (ecr[7:5]) must be set to ?011? using the negotiation steps as defined by the ieee1284 specification. ecp mode is compatible with the microsoft register definition for ecp, and the ieee - 1284 bus protocol and timing. the ecp mode supports the decompression of run - length encoded (rle) data, in hardware. the rle received data is expanded automatically by the correct number, into the ecp receiver fifo. run - length encoding on data to be transmitted is not available in hardware. this needs to be handled in software, if this feature is required. assuming that the upper block is located 400h above the lower block, the ecp registers are f ound at offset 000 - 007h and 400 - 402h. 8.2 parallel port interrupt the parallel port interrupt is asserted on function 1?s interrupt pin (inta# by default, on the ox16pci952). this interrupt is enabled by setting bit 4 of the dcr register. when the interrup t is enabled, a rising edge of the ack# (intr#) pin results in a parallel port interrupt to be asserted on function 1?s interrupt pin and this interrupt state to be mirrored in the register dsr, bit 2. this condition is maintained until the status register (dsr) is read, which clears the interrupt and clears the interrupt status field in this register (dsr[2]).
datasheet revision 1.1 page 54 ox16pci952 oxford semiconductor ltd. 8.3 register description the parallel port registers are described below. it is assumed that the upper block is placed 400h above the lower block. register name address offset r/w bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 spp (compatibility mode) registers pdr 000h r/w parallel port data register ecpafifo 000h r/w ecp fifo : address / rle dsr (epp mode) 001h r nbusy ack# pe slct err# int# 1 timeout (other modes) 001h r nbusy ack# pe slct err# int# 1 1 dcr 002h r/w 0 0 dir int_en nslin# init# nafd# nstb# eppa 1 003h r/w epp address register eppd1 1 004h r/w epp data 1 register eppd2 1 005h r/w epp data 2 register eppd3 1 006h r/w epp data 3 register eppd4 1 007h r/w epp data 4 register lower address block (bar0) upper address block (bar1) ecpdfifo 400h r/w ecp data fifo tfifo 400h r/w test fifo cnfga 400h r configuration a register ? always 90h cnfgb 401h r 0 int ?0 00000? ecr 402h r/w mode[2:0] must write ?00001? - 403h - reserved table 25 : parallel port register set note 1 : these registers are only available in epp mode. note 2 : prefix ?n? denotes that a signal is inverted at the conn ector. suffix ?#? denotes active - low signalling the reset state of pdr, eppa and eppd1 - 4 is not determinable (i.e. 0xxx). the reset value of dsr is ?xxxxx111?. dcr and ecr are reset to ?0000xxxx? and ?00000001? respectively. 8.3.1 parallel port data regis ter ?pdr? pdr is located at offset 000h in the lower block. it is the standard parallel port data register. writing to this register in mode 000 (spp mode) will drive data onto the parallel port data lines. in all the other modes, the drivers may be tri - stated by setting the direction bit in the dcr. reads from this register return the actual logic values on the parallel port data lines. 8.3.2 ecp fifo address / rle a data byte written to this address will be interpreted as an address if bit(7) is set, otherw ise an rle count for the next data byte. count = bit(6:0) + 1. 8.3.3 device status register ?dsr? dsr is located at offset 001h in the lower block. it is a read only register showing the current state of control signals from the peripheral. additionally in ep p mode, bit 0 is set to ?1? when an operation times out (see section 8.1.3 ) dsr[0]: epp mode only: timeout logic 0 t epp timer timeout has not occurred. logic 1 t epp timer timeout has occurred (reading this bit clears it). other parallel port modes: unused this bit returns a ?1?.
datasheet revision 1.1 page 55 ox16pci952 oxford semiconductor ltd. dsr[1]: unused this bit returns a ?1?. dsr[2]: int# logic 0 t a parallel port interrupt is pending. logic 1 t no parallel port interrupt is pending. this bit is activated (set low) on a rising edge of the ack# pin. it is de - activated (set high) after reading the dsr. dsr[3]: err# logic 0 t the err# input is low. logic 1 t the err# input is high. dsr[4]: slct logic 0 t the slct input is low. logic 1 t the slct input is high. dsr[5]: pe l ogic 0 t the pe input is low. logic 1 t the pe input is high. dsr[6]: ack# logic 0 t the ack# input is low. logic 1 t the ack# input is high. dsr[7]: nbusy logic 0 t the busy input is high. logic 1 t the busy input is low. 8.3.4 device control register ?d cr? dcr is located at offset 002h in the lower block. it is a read - write register which controls the state of the peripheral inputs and enables the peripheral interrupt. when reading this register, bits 0 to 3 reflect the actual state of the stb#, afd#, i nit# and slin# pins, respectively. when in the epp mode, the write#, datastb# and the addrstb# pins are normally controlled by the epp controller, for epp bus signalling, but writes to the corresponding bits in the dcr register will override the epp cont roller?s states for these lines. the bits in the dcr register must result in these lines to be in the inactive state, allowing the epp controller to control these lines. this is also applicable for the ecp mode, to allow the ecp controller to control the p arallel port pins. dcr[0]: nstb# logic 0 t set stb# output to high (inactive). logic 1 t set stb# output to low (active). during an epp address or data cycle the write# pin is driven by the epp controller, otherwise it is inactive. dcr[1]: nafd# l ogic 0 t set afd# output to high (inactive). logic 1 t set afd# output to low (active). during an epp address or data cycle the datastb# pin is driven by the epp controller, otherwise it is inactive. dcr[2]: init# logic 0 t set init# output to low (act ive). logic 1 t set init# output to high (inactive). dcr[3]: nslin# logic 0 t set slin# output to high (inactive). logic 1 t set slin# output to low (active). during an epp address or data cycle the addrstb# pin is driven by the epp controller, other wise it is inactive. dcr[4]: ack interrupt enable logic 0 t ack interrupt is disabled. logic 1 t ack interrupt is enabled. dcr[5]: dir (direction) * logic 0 t pd pins in output mode. logic 1 t pd pins in input mode. this bit is overridden during an ep p address or data cycle, when the direction of the port is controlled by the bus access (read/write) *note : microsoft?s ecp specification states that all direction changes related to ecp mode must first be made in the ps/2 mode, for reliable operation . dcr[7:6]: reserved these bits are reserved and drivers must not utilise the values associated with these bits. the ox16pci952 returns ?00? for these bits, for all parallel port modes. 8.3.5 epp address register ?eppa? eppa is located at offset 003h in lower bl ock, and is only used in epp mode. a byte written to this register will be transferred to the peripheral as an epp address by the hardware. a read from this register will transfer an address from the peripheral under hardware control. 8.3.6 epp data registers ? eppd1 - 4? the eppd registers are located at offset 004h - 007h of the lower block, and are only used in epp mode. data written or read from these registers is transferred to/from the peripheral under hardware control.
datasheet revision 1.1 page 56 ox16pci952 oxford semiconductor ltd. 8.3.7 ecp data fifo hardware transfers data from this 16 - bytes deep fifo to the peripheral when dcr(5) = ?0?. when dcr(5) = ?1? hardware transfers data from the peripheral to this fifo. 8.3.8 test fifo used by the software in conjunction with the full and empty flags to determine the depth of the fifo an d interrupt levels. 8.3.9 configuration a register ecr[7:5] must be set to ?111? to access this register. interrupts generated will always be level, and the ecp port only supports an impid of ?001?. 8.3.10 configuration b register ecr[7:5] must be set to ?111? to acc ess this register. read only, all bits will be set to 0, except for bit[6] which will reflect the state of the interrupt. 8.3.11 extended control register ?ecr? the extended control register is located at offset 002h in upper block. it is used to configure the operation of the parallel port. ecr[4:0]: reserved - write these bits are reserved and must always be set to ?00001?. ecr[0]: empty - read when dcr[5} = ?0? logic 0 t fifo contains at least one byte logic 1 t fifo completely empty when dcr[5} = ?1? lo gic 0 t fifo contains at least one byte logic 1 t fifo contains less than one byte ecr[1]: full - read when dcr[5} = ?0? logic 0 t fifo has at least one free byte fifo completely full when dcr[5} = ?1? logic 0 t fifo has at least one free byte logi c 1 t fifo full ecr[2]: serviceintr - read when dcr[5} = ?0? logic 1 t writeintrthreshold (8) free bytes or more in fifo when dcr[5} = ?1? logic 1 t readintrthreshold (8) bytes or more in fifo ecr[7:5]: mode ? read / write these bits define the operat ional mode of the parallel port. logic ?000? spp logic ?001? ps2 logic ?010? reserved logic ?011? ecr logic ?100? epp logic ?101? reserved logic ?110? test logic ?111? config
datasheet revision 1.1 page 57 ox16pci952 oxford semiconductor ltd. 9 s erial eeprom s pecification the ox16pci952 can be configured using an optional serial electrically - erasable programmable read only memory (eeprom). if the eeprom is not present, the device will remain in its default configuration after reset. although this may be adequate for some applications, many will benefit from the deg ree of programmability afforded by this feature. the eeprom also allows accesses to the integrated uarts and the parallel port, which can be useful for default setups. the eeprom interface supports a variety of serial eeprom devices that have a proprietar y serial interface known as microwire tm . this interface has four pins which supply the memory device with a clock, a chip - select, and serial data input and output lines. in order to read from such a device, a controller has to output serially a read comman d and address, then input serially the data. the interface controller has been designed to handle (autodetect) the following list of compatible devices that have a 16 - bit data word format but differ in memory size (and hence the number of address bits). nm 93c46 (64 words), nm93c56 (128 words), devices with 256 words, 512 words and 1024 words. the ox16pci952 incorporates a controller module which reads data from the serial eeprom and writes data into the relevant register space. it performs this operation in a sequence which starts immediately after a pci bus reset and ends either when the controller finds no eeprom is present or when it reaches the end of the eeprom data. note that any attempted pci access while the eeprom is being sensed or while data is being downloaded from the serial eeprom will result in a ?retry? response . the operation of this controller is described below. following device configuration, driver software can access the serial eeprom through four bits in the device - specific local co nfiguration register lcc[27:24]. software can use this register to manipulate the device pins in order to read and modify the eeprom contents as desired. any changes to the eeprom contents, however, will not take effect until a pci bus reset takes place or until the eeprom reload option (lcc[29]) is set. a windows based utility to program the eeprom is available. for further details please contact oxford semiconductor (see back cover). microwire tm is a trade mark of national semiconductor. for a descript ion of microwire tm , please refer to national semiconductor data manuals. 9.1 eeprom data organisation the serial eeprom data is divided into five zones. the size of each zone is an exact multiple of 16 - bit words. zone0 is allocated to the header. an eeprom p rogram must contain a valid header before any further data is interrogated. the general eeprom data structure is shown in table 26 . data zone size (words) description 0 one header 1 multiples of 2 function access 2 one to m ore local configuration registers 3 one to four identification registers 4 two or more pci configuration registers table 26 : eeprom data format 9.1.1 zone0: header the header identifies the eeprom program as valid. bits description 15:4 these bits should return 0x950 to identify a valid program. once the ox16pci952 reads 0x950 from these bits, it sets lcc[28] to indicate that a valid eeprom program is present. 3 1 = zone1 (function access) exists 0 = zone1 does not exist 2 1 = zon e2 (local configuration registers) exists 0 = zone2 does not exist 1 1 = zone3 (identification registers) exists 0 = zone3 does not exist 0 1 = zone4 (pci configuration registers) exists 0 = zone4 does not exist the programming data for each zone follo ws the proceeding zone if it exists. for example a header value of 0x950f indicates that all zones exist and they follow one another in sequence (from zone1 to zone4), while 0x950a indicates that only zones 1 and 3 exist where the header data is followed b y zone1 words, and since zone2 is missing zone1 words are followed by zone3 words.
datasheet revision 1.1 page 58 ox16pci952 oxford semiconductor ltd. 9.1.2 zone 1: function access zone 1 allows each uart and the parallel port of the ox16pci952 to be pre - configured, prior to any pci accesses. this is very useful when these functions need to run with (typically generic) device drivers and these drivers are not capable of utilising the enhanced features/modes of these logical units. for example, the 950 mode of the uarts offer high performance. generic uart drivers will be un able to enable the 950 mode since this requires setting of registers outside the register definition within the generic device drivers. by using function access, the relevant uart registers can be accessed (setup) via the eeprom to enable/customize these f eatures before control is handed to these device drivers. each 8 - bit (function) access is equivalent to accessing each uart and/or the parallel port through its assigned i/o bar (base address register), with the exception that a function read access does not return any data (it is discarded internally). the uarts and the parallel port behave as though these function accesses via the eeprom were corresponding read/write pci accesses. each entry for function access zone comprises 2 16 bit words (word pairs ), with the exception when ending this zone that requires a single word (all 0?s) for ?termination?. the format is as shown. word bits description 1 15 ?1? - function access word pair available. ?0? ? end function access zone* (over to next available zo ne or end eeprom download) 1 14:12 bar number to access 000 for bar 0 (uart0 or parallel port i/o bar) 001 for bar 1 (uart1 or parallel port io bar) others reserved . 1 11 ?0? : read access required (data will be discarded) ?1? : write access required 1 10:8 function number, requiring access. 000 ? function 0 (uarts) 001 ? function 1 (parallel port) others reserved . 1 7:0 i/o address to access this is the address that needs to be written/read and is the offset address from the specified bar. e.g to acces s spr register of uart, address is 00000111 (7dec). 1 st word of function access pair word bits description 2 15 ?1? 2 14:8 reserved ? write 0?s 2 7:0 data to be written to specified address. field is unused for function access reads (set to 0?s for reads) 2 nd word of function access pair function access examples 1) enable internal loopback, of uart 0 (enable bit 4, of uart 0?s mcr register). 1000100000000100 1000000000010000 1 st word : function number = 000, bar no = 000 (uart0), write access, address=00000100 (mcr reg). 2 nd word : data to be written=00010000 2) (continue). enable fifo of uart 1 (enable bit 0, of uart 1?s fcr register) 1001100000000010 1000000000000001 1 st word : function number = 000, bar no = 001 (uart1), write acces s, address=00000010 (fcr reg) 2 nd word : data to be written=00000001 3) (continue). read ier register, uart 0. end function access zone 1000000000000001 (function access word pair) 1000000000000000 0000000000000000 (end function access zone*) 1 st word : function number = 000, bar no =000 (uart0), read access, address=00000001 (ier reg) 2 nd word : no data to be written (as read access). read data is discarded * when ending function access zone, only a single word is required (not word pairs) and all fiel ds must be zeros. see example 3.
datasheet revision 1.1 page 59 ox16pci952 oxford semiconductor ltd. 9.1.3 zone2: local configuration register zone zone2 of the eeprom allows the end - user to override the default settings of the local configuration registers to meet their specific applications. accesses require one or more co nfiguration words. registers are selected using a 7 - bit byte - offset field. this offset value is the offset from base address registers in i/o or memory space (see section 6.4 ). note: not all of the registers in the local config uration register set are writable by the eeprom. (see section ?accessing the local configuration registers?). the format of configuration words for the local configuration registers in zone 2 are described in the following table. bits description 15 ?0? = there are no more configuration words to follow in zone2. move to the next available zone or end eeprom program if no more zones are enabled in the header. ?1? = there is another configuration word to follow for the local configuration registers. 14:8 these seven bits define the byte - offset of the local configuration register to be programmed. for example the byte - offset for lcc[23:16] is 0x02. 7:0 8 - bit value of the register to be programmed eeprom word format for zone 2 9.1.4 zone 3 : identif ication registers zone 3 of the eeprom allows the end - user to change the vendor and/or subsystem vendor id?s of both logical functions, to suit their requirements. writes to this zone affects the corresponding fields in the pci configuration space of both function 0 and function 1. the format of device identification configuration words are described in table 27 . bits description 15 ?0? = there are no more zone 3 (identification) bytes to program. move to the next available zone or end eeprom program if no more zones are enabled in the header. ?1? = there is another zone 3 (identification) byte to follow. 14:8 0x00 = vendor id bits [7:0]. 0x01 = vendor id bits [15:8]. 0x02 = subsystem vendor id [7:0]. 0x03 = subsystem v endor id [15:8]. 0x03 to 0x7f = reserved. 7:0 8 - bit value of the register to be programmed table 27 : zone 3 data format 9.1.5 zone 4 : pci configuration registers zone 4 of the eeprom allows the end - user to alter the default values /settings of the pci configuration space registers of both functions, independently. this excludes writes to the vendor id and subsystem vendor id fields that can be written only through zone 3). this zone is divided into two groups, one for the pci conf iguration space of function 0 and one for function 1. each group consists of a function header word, and one or more configuration words for that function. the function header is described in the following table. bits description 15 ?0? = end of zone 4. ?1? = define this function header. 14:3 reserved. write zeros. 2:0 function number for the following configuration word(s). ?000? = function 0 (uarts) ?001? = function 1 (parallel port) other values = reserved. the subsequent words for each functi on contain the address offset and a byte of programming data for the pci configuration space belonging to the function number selected by the proceeding function - header. the format of configuration words for the pci configuration registers are described be low. bits description 15 ?0? = this is the last configuration word in for the selected function in the function - header. ?1? = there is another word to follow for this function. 14:8 these seven bits define the byte - offset of the pci configuration regis ter to be programmed. for example the byte - offset of the interrupt pin register is 0x3d. offset values are tabulated in section 6.2 . 7:0 8 - bit value of the register to be programmed table 28 : zone 4 d ata format (data)
datasheet revision 1.1 page 60 ox16pci952 oxford semiconductor ltd. table 29 defines which pci configuration registers are writable from the eeprom. offset bits description 0x00 7:0 vendor id bits 7 to 0. 0x01 7:0 vendor id bits 15 to 8. 0x02 7:0 device id bits 7 to 0. 0x03 7:0 device id bits 15 t o 8. 0x06 3:0 4 7:5 must be ?0000?. extended capabilities must be ?000? 0x09 7:0 class code bits 7 to 0. 0x0a 7:0 class code bits 15 to 8. 0x0b 7:0 class code bits 23 to 16. 0x0e 7 header type (multi/single function bit) 0x2e 7:0 subsystem id bits 7 to 0. 0x2f 7:0 subsystem id bits 15 to 8. 0x3d 7:0 interrupt pin. 0x42 7:0 power management capabilities bits 7 to 0. 0x43 7:0 power management capabilities bits 15 to 8. table 29 : eeprom - writable pci configuration registers
datasheet revision 1.1 page 61 ox16pci952 oxford semiconductor ltd. 10 o perating c onditions symbol parameter min max units v dd dc supply voltage - 0.3 7.0 v v in dc input voltage - 0.3 v dd + 0.3 v i in dc input current +/ - 10 ma t stg storage temperature - 40 125 c table 30 : absolute maximum ratings symbol parameter min max units v dd dc supply voltage 4.75 5.25 v t c temperature ? commercial 0 70 c table 31 : recommended operating conditions
datasheet revision 1.1 page 62 ox16pci952 oxford semiconductor ltd. 11 dc e lectrical c haracteristics 11.1 5v standard (non - p ci) i/o buffers vdd = 5.0v +/ - 5%, ta = 0 to 70c symbol parameter condition min typ max units v ih high level input voltage ttl interface 2.0 v v il low level input voltage ttl interface 0.8 v v t switching threshold ttl 1.4 v v t+ schmitt trigg er, positive - going threshold ttl 2.0 v v t - schmitt trigger, negative - going threshold ttl 0.8 v i ih high level input current v in = v dd, no pull - downs. v in = v dd, buffer with pull - down. - 10 10 50 10 100 m a i il low level inpu t current v in = v ss, no pull - ups v in = v ss, buffer with pull - up. - 10 - 100 - 50 10 - 10 m a v oh high level output voltage i oh = - 1 m a i oh = - 1ma to - 12ma v dd ? 0.05 2.4 v v ol low level output voltage i ol = 1 m a i ol = 1ma to 12 ma 0.05 0.4 v i oz tri - state output leakage current vout = vss or vdd - 10 10 m a ios output short circuit current vdd = 5.25v, vo = vdd vdd = 5.25v, vo = vss - 180 200 ma i dd qu iescent supply current vin = vss or vdd 100 1 ua c in cap of input buffers 2 any input and bi - directional buffers 4.0 pf c out cap of output buffers 2 any output buffer 4.0 pf table 32: characteristics of 5v tolerant i/o buffers note 1 : this value d epends upon the customer design. note 2: this value excludes package parasitics 11.2 pci i/o buffers symbol parameter condition min max unit dc specifications v cc supply voltage 4.75 5.25 v v il input low voltage - 0.5 0.8 v v ih input high voltage 2.0 v c c + 0.5 v i il input low leakage current v in = 0.5v - 70 m a i ih input high leakage current v in = 2.7v 70 m a v ol output low voltage i out = - 2 ma 0.55 v v oh output low voltage i out = 3 ma, 6ma 2.4 v c in input pin capacitance 10 pf c clk clk pin cap acitance 5 12 pf c idsel idsel pin capacitance 8 pf l pin pin inductance 10 nh
datasheet revision 1.1 page 63 ox16pci952 oxford semiconductor ltd. 12 ac electrical characteristics 12.1 pci i/o buffers all pci i/o buffers are compliant to the ac electrical characteristics of the 5.0v signalling environment, as defined in th e pci local bus specification, revision 2.2. (section 4.2.1.2 of this specification) ac specifications switching current 0 < v out  1.4 - 44 i oh(ac) high 1.4 < v out  2.4 - 44 (v out - 1.4)/0.024 ma 3.1 < v out  v cc eq. a (test point) v out = 3.1 - 142 switching current v out  2.2 95 i ol(ac) low 2.2 > v out > 0.55 v out / 0.023 ma 0.71 > v out > 0 eq. b (test point) v out = 0.71 206 i cl low clamp current - 5 < v in < - 1 - 25 + (v in +1)/ 0.015 ma i hl high clamp current v cc +4 < v in < v cc +1 25+ (v in - v cc - 1)/ 0.015 ma slew r output rise slew rate 0.4v to 2.4v 1 5 v/ns slew f output fall slew rate 2.4v to 0.4v 1 5 v/ns table 32 : characteristics of pci i/o buffers eq. a : i oh = 11.9 * (v out - 5.25) * (v out + 2 .45) for 3.1 < v out  v cc eq. b : i ol = 78.5 * v out * (4.4 - v out ) for 0.71 > v out > 0 12.2 serial ports isochronous (x1 clock) timing: symbol parameter min max units t irs sin set - up time to isochronous input clock ?rx_clk_in rising 1 tbd 10 ns t irh sin hold time after i sochronous input clock ?rx_clk_in? rising 1 tbd 0.1 ns t its sout valid after isochronous output clock ?tx_clk_out? falling 1 tbd 6 ns table 33 : isochronous mode timing note 1: in isochronous mode, transmitter data is available a fter the falling edge of the x1 clock and the receiver data is sampled using the rising edge of the x1 clock. the system designer is should ensure that mark - to - space ratio of the x1 clock is such that the required set - up and hold timing constraint are met. one way of achieving this is to choose a crystal frequency which is twice the required data rate and then divide the clock by two using the on - board prescaler. in this case the mark - to - space ratio is 50/50 for the purpose of set - up and hold calculations.
datasheet revision 1.1 page 64 ox16pci952 oxford semiconductor ltd. 13 timing waveforms clk frame# ad[31:0] c/be[3:0]# irdy# trdy# devsel# stop# address bus cmd byte enable# 1 2 3 4 data data transfer figure 1: pci read transaction from the pci configuration space (function 0 or function 1) clk frame# ad[31:0] c/be[3:0]# irdy# trdy# devsel# stop# address bus cmd byte enable# 1 2 3 4 data data transfer figure 2: pci write transaction to the pci configuration space (function 0 or function 1)
datasheet revision 1.1 page 65 ox16pci952 oxford semiconductor ltd. clk frame# ad[31:0] c/be[3:0]# irdy# trdy# devsel# stop# address bus cmd byte ena ble# 1 2 3 4 5 data wait data transf er figure 3. pci read from the internal uarts (uart 0 or uart 1) clk frame# ad[31:0] c/be[3:0]# irdy# trdy# devsel# stop# address bus cmd byte enable# 1 2 3 4 data data transfer figure 4. pci write to the internal uarts (uart0 or uart 1)
datasheet revision 1.1 page 66 ox16pci952 oxford semiconductor ltd. tpd (pci clk to valid parallel port data ) : 16 ns max* * these values exclude the effects of external p arasitic (board) capacitances.
datasheet revision 1.1 page 67 ox16pci952 oxford semiconductor ltd. tpc : pci clk to valid parallel port control lines. tpc (slin_n) : 16.0 ns max* tpc (stb_n) : 16.0 ns max* tpc (init_n) : 16.0 ns max* tpc (afd_n) : 16.0 ns max* * these values exclude the eff ects of external parasitic (board) capacitances.
datasheet revision 1.1 page 68 ox16pci952 oxford semiconductor ltd. write to epp data register (epp write data cycle) pci clk no (1 st transaction) 1 - start of pci write to epp data register 5 - start of epp data write cycle on parallel port side. 8 - pci transaction completes with a ?retry? (without affecting ongoing epp write data cycle) as epp cycle cannot complete within 16 pci clk cycles 7 - 8 - peripheral asserts busy 11 - host responds to busy by de - asserting afd_n (3 clock cycles after sampling busy) 13 - 14 - per ipheral deasserts busy 16 - host responds to busy by asserting stb_n and the parallel port data lines (2 clock cycles after sampling busy). - epp cycle completed. pci clk no (retry transaction) 1 - start of retry transaction, to the original write to epp data register 5 - retry transaction completes with ?data transfer?, without initiating another epp write data cycle. tafd (pci clk to valid afd_n) - 16ns max* tstb (pci clk to valid stb_n) - 16ns max* tpd (pci clk to valid parallel data) - 16ns max* epp write data cycle duration is dependant upon the timing response of the peripheral?s busy line and the parallel port filters. example waveform has the parallel port filters disabled. an extra 2 pci clk cycles will be incurred in the response of the h ost to the peripheral?s busy line when the filters are enabled. * these values exclude the effects of external parasitic (board) capacitances.
datasheet revision 1.1 page 69 ox16pci952 oxford semiconductor ltd. read from epp data register (epp read data cycle) pci clk no (1 st transaction) 1 - start of pci read from epp data register 4 - start of epp data read cycle on parallel port side. 8 - pci transaction completes with a ?retry? (without affecting ongoing epp read data cycle) as epp cycle cannot complete within 16 pci clk cycles 7 - 8 - peripheral asserts busy in r esponse to the host driving afd_n low. 11 - host responds to busy by de - asserting afd_n (3 clock cycles after sampling busy) 14 - 15 - peripheral deasserts busy - epp cycle completed. pci clk no (retry transaction) 1 - start of retry transaction, to the o riginal read from epp data register 5 - retry transaction completes with ?data transfer?, without initiating another epp read data cycle. tafd (pci clk to valid afd_n) - 16ns max* tstb (pci clk to valid stb_n) - 16ns max* tpd (pci clk to valid parallel d ata) - 16ns max* epp read data cycle duration is dependant upon the timing response of the peripheral?s busy line and the parallel port filters. example waveform has the parallel port filters disabled. an extra 2 pci clk cycles will be incurred in the response of the host to the peripheral?s busy line when the filters are enabled. * these values exclude the effects of external parasitic (board) capacitances.
datasheet revision 1.1 page 70 ox16pci952 oxford semiconductor ltd. write to epp address register (epp write address cycle) pci clk no (1 st transaction) 1 - start of pci write to epp address register 5 - start of epp address write cycle on parallel port side. 8 - pci transaction completes with a ?retry? (without affecting current epp write address cycle) as epp cycle cannot complete within 16 pci clk cycle s 7 - 8 - peripheral asserts busy 11 - host responds to busy by de - asserting slin_n (4 clock cycles after sampling busy) 14 - 15 - peripheral deasserts busy 17 - host responds to busy by asserting slin_n and the parallel port data lines (2 clock cycles after sampling busy). - epp cycle completed. pci clk no (retry transaction) 1 - start of retry transaction, to the original write to epp address register 5 - retry transaction completes with ?data transfer?, without initiating another epp write address cycl e. tslin (pci clk to valid slin_n) - 16ns max* tstb (pci clk to valid stb_n) - 16ns max* tpd (pci clk to valid port address) - 16ns max* epp write address cycle duration is dependant upon the timing response of the peripheral?s busy line and the paral lel port filters. example waveform has the parallel port filters disabled. an extra 2 pci clk cycles will be incurred in the response of the host to the peripheral?s busy line when the filters are enabled. * these values exclude the effects of exte rnal parasitic (board) capacitances.
datasheet revision 1.1 page 71 ox16pci952 oxford semiconductor ltd. read from epp address register (epp read address cycle) pci clk no (1 st transaction) 1 - start of pci read from epp address register 4 - start of epp address read cycle on parallel port side. 8 - pci transaction c ompletes with a ?retry? (without affecting current epp read address cycle) as epp cycle cannot complete within 16 pci clk cycles 8 - 9 - peripheral asserts busy in response to the host driving slin_n low. 12 - host responds to busy by de - asserting slin_n (3 clock cycles after sampling busy) 15 - 16 - peripheral deasserts busy - epp cycle completed. pci clk no (retry transaction) 1 - start of retry transaction, to the original read from epp address register 5 - retry transaction completes with ?data transfer ?, without initiating another epp read address cycle. tslin (pci clk to valid slin_n) - 16ns max* tpd (pci clk to valid port address) - 16ns max* epp read address cycle duration is dependant upon the timing response of the peripheral?s busy line and th e parallel port filters. example waveform has the parallel port filters disabled. an extra 2 pci clk cycles will be incurred in the response of the host to the peripheral?s busy line when the filters are enabled. * these values exclude the effects of e xternal parasitic (board) capacitances.
datasheet revision 1.1 page 72 ox16pci952 oxford semiconductor ltd. 2 consecutive write transactions to ecp dfifo pci clk no 1 - start of 1 st pci write to ecp dfifo register 6 - start of 1 st ecp forward transfer cycle - 1 st pci transaction terminates with a ?data transfer? 9 - 10 - peripheral asserts busy in response to the host driving stb_n low 10 - start of 2 nd pci write to ecp dfifo register. current ecp forward transfer remains unaffected. 11 - host responds to busy by de - asserting stb_n (2 clock cycles after sampling busy) ? 1 st e cp forward transfer. 14 - 15 - peripheral deasserts busy 17 - end of 1 st ecp forward transfer (2 clock cycles after sampling busy) 18 start of 2nd ecp forward transfer cycle tstb (pci clk to valid stb_n) - 16ns max* tpd (pci clk to valid port address) - 16ns ma x* ecp forward transfer cycle duration is dependant upon the timing response of the peripheral?s busy line and the parallel port filters. example waveform has the parallel port filters disabled. an extra 2 pci clk cycles will be incurred in the response of the host to the peripheral?s busy line when the filters are enabled. * these values exclude the effects of external parasitic (board) capacitances.
datasheet revision 1.1 page 73 ox16pci952 oxford semiconductor ltd. pci clk no (parallel port already placed in the reverse ecp transfer mode) 2 - start of 1 st ecp reverse transfer by peripheral 2 - 3 - peripheral asserts ack_n low 6 - host responds by asserting afd_n (3 clock cycles after sampling ack_n low) 10 - 11 - peripheral deasserts ack_n 13 - host responds by de - asserting afd_n (2 clock cycles after sampling ack_n low) - end of ecp reverse transfer (data already transferred to ecp dfifo) 24 - start of pci read from ecp dfifo (does not initiate or affect any ecp reverse transfers that may be taking place) 26 - start of 2nd ecp reverse transfer by peripheral. tafd ( pci clk to afd_n valid) : 16ns max* tack - afd : 3 clock cycles (see below) + tafd ecp reverse transfer cycle duration is dependant upon the timing response of the peripheral?s ack_n line and the parallel port filters.example waveform has the parallel por t filters disabled. an extra 2 pci clk cycles will be incurred in the response of the host to the peripheral?s ack_n line when the filters are enabled.
datasheet revision 1.1 page 74 ox16pci952 oxford semiconductor ltd. 14 p ackage i nformation
datasheet revision 1.1 page 75 ox16pci952 oxford semiconductor ltd. 15 o rdering i nformation ox16pci952 - tqfp - a revision package type ? 128 tqfp
datasheet revision 1.1 page 76 ox16pci952 oxford semiconductor ltd. 16 c ontact d etails oxford semiconductor ltd. 25 milton park abingdon oxfordshire ox14 4sh united kingdom telephone: +44 (0)1235 824900 fax: +44 (0)1235 821141 sales e - mail: sales@oxsemi.com web site: http://www.oxse mi.com d isclaimer oxford semiconductor believes the information contained in this document to be accurate and reliable. however, it is subject to change without notice. no responsibility is assumed by oxford semiconductor for its use, nor for infringement of patents or other rights of third parties. no part of this publication may be reproduced, or transmitted in any form or by any means without the prior consent of oxford semiconductor ltd. oxford semiconductor?s terms and conditions of sale apply at all times.


▲Up To Search▲   

 
Price & Availability of OX16PCI952-TQFP-A

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X