FreeCalypso > hg > fc-small-hw
annotate duart28/design-spec @ 41:45bbb72a8916
duart28/design-spec: layout instructions added
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 24 Jul 2020 20:22:36 +0000 |
parents | ba83a7cd6451 |
children |
rev | line source |
---|---|
34
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 FreeCalypso DUART28 Adapter |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 Board design specification |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 1. What it is and why it is desired |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 Under our FreeCalypso umbrella we have a family of hardware products based on |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 the Calypso chipset from Texas Instruments. The Calypso chip has two UARTs, |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 one with TxD & RxD data leads plus RTS & CTS flow control, and the other with |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 TxD & RxD data leads only. There is also a convention whereby some Calypso |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 GPIOs are defined to be additional modem control signals and associated with |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 the Modem UART (the one that has RTS & CTS flow control in addition to |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 TxD & RxD), thus the result is one UART with a near-complete set of modem |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 control signals and one UART with data leads only. |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 The convention established in FreeCalypso is that all of our Calypso development |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 boards bring out both Calypso UARTs in their native form, which is 2.8V native |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 logic levels, tolerant of 3.3V but not any higher voltages. In order to connect |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 these UARTs to a PC or laptop serving as the development host, a separate USB |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 to low-voltage UART adapter board is used, preferably one that puts both UARTs |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 (two ttyUSBx devices) behind a single USB device. Our USB to dual UART |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 converter chip of choice is FT2232D; this chip has been chosen over various |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 competitors because it provides two UART channels (ttyUSBx devices) in one USB |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 device, because it supports non-standard serial baud rates on both channels, |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 allowing us to use GSM-specific high baud rates of 203125, 406250 and 812500 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 bps, and because it supports the full set of modem control signals like one |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 would find on an old-fashioned RS-232 port. |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 Since we got our first FCDEV3B boards built in 2017 and up until the present, |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 we've been using FT2232D breakout boards made by PLDkit as our USB to dual UART |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 adapter: |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 http://pldkit.com/other/ft2232d-module |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 These generic FT2232D adapters work quite well for our current purposes, but |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 now we have several reasons for desiring our own custom-built adapter to |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 replace them, detailed below. |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 1.1. Desire for custom interface pinout |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 In FreeCalypso we have the following convention: all FC hardware products that |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 bring out both Calypso UARTs do so by way of a single 10-pin (2x5) 2.54 mm |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 header in a fixed pinout given below. This convention was started with |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 FCDEV3B, our first FC hw product, and is now being continued with MMTB1 and |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 Caramel2 boards. Our standardized DUART header pinout is as follows: |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 Header pin Calypso signal |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 1 GND |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 2 GND |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 3 TX_IRDA |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 4 TX_MODEM |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 5 RX_IRDA |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 6 RX_MODEM |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 7 GPIO2_DCD |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 8 RTS_MODEM |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 9 GPIO3_DTR |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 10 CTS_MODEM |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 Pins 7 and 9 were originally left unused (they are unconnected on FCDEV3B), but |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 they have been assigned as DCD and DTR (from the host's perspective) starting |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 with MMTB1. Note that while DCD and DTR in the table above are named from the |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 host's perspective, all Calypso signals ending with _MODEM or _IRDA are from |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 the chip's perspective, i.e., the opposite. |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 When we use FT2232D breakout boards from PLDkit as our USB to DUART adapter, we |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 use a custom hand-made ribbon cable with crimp terminations: a 10-wire ribbon |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 is used, the full ribbon runs intact in the main body of the cable, but toward |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 the FT2232D adapter board the ribbon is split in two, with 7 wires going to the |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 A side of PLDkit's breakout board and with 3 wires going to the B side. Each |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 of the two subribbons (both the 7-wire one and the 3-wire one) gets terminated |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 onto a 15-position female connector, with the two resulting 15-pin connectors |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 mating with the two 15-pin single-row headers located on the two sides of |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 PLDkit's breakout board. |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 This current solution is much better than manually connecting each wire |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 individually: with connectors being solid pieces rather than individual wires, |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 a setup can be very easily taken down and then put back together, which is |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 absolutely essential for our mode of usage. But the downside of this approach |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 is that once our two 15-position female connectors mate with PLDkit's headers, |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 there is no way to make a separate connection to other signals which are not |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 covered by our basic 10-wire set. This limitation is becoming problematic for |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 two reasons: |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 1) Our upcoming Caramel2 board will have the same 10-pin DUART header as FCDEV3B |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 and MMTB1 (with DCD & DTR present like on MMTB1), but it will also have an |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 additional RI modem control output on another Calypso GPIO accessible on the |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 general expansion interface header. There is no room to squeeze this extra RI |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 signal into our standardized 10-pin DUART interface, but this extra signal is |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 rarely needed. The compromise solution currently being pursued is that the |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 main 10-wire ribbon will connect all UART signals (both UARTs) with the |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 exception of RI, and those who need RI should be able to connect it with a |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 separate individual wire, connecting to the GPIO1 pin on the general expansion |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 interface header on the Caramel2 side. But if we use PLDkit breakout boards |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 with our current ribbon cables with crimp terminations, there will be no way to |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 connect this extra RI wire to the FT2232D adapter board when the big 15-pin |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 connector blocks the entire header. |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 2) PLDkit's FT2232D breakout boards bring out USB 5V on one of their pins, and |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 this auxiliary 5V output is useful in some applications. We have one upcoming |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 application where this auxiliary 5V will be used to exercise the Calypso+Iota |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 chipset's VCHG boot mode, also on the upcoming Caramel2 board - but we get into |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 the same problem of the PLDkit board header pin becoming inaccessible when our |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 crimp-terminated ribbon cables are used. |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 If we replace the generic PLDkit breakout with our own custom FreeCalypso USB |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 to dual UART adapter board, we can easily solve these problems by implementing |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 our own custom header pinouts. The new DUART28 adapter board covered by the |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 present design spec will bring out 3 headers as follows: |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 * One 10-pin header carrying TxD, RxD, RTS, CTS, DTR and DCD for UART 0 and |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 just TxD & RxD for UART 1, in a pinout exactly matching our standardized |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 FreeCalypso DUART interface; |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 * One 3-pin header carrying UART 0 auxiliary modem control inputs DSR and RI, |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 plus a ground pin; |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 * One 2-pin header bringing out USB 5V and GND, for auxiliary uses. |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 1.2. 3.3V vs. 2.8V logic levels |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 Calypso I/O pins have native 2.8V logic levels, but they are specified as being |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 tolerant of 3.3V. They do have internal clamping diodes to the Calypso chip's |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 2.8V V-IO rail, but their forward drop voltage is right around 0.5 V, thus if |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 external inputs are at 0.5 V above V-IO (practically meaning 3.3V inputs), no |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 significant current flows through these clamping diodes. |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 When we use a raw FT2232D breakout board as our USB to FreeCalypso DUART |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 adapter, we are connecting the FT2232D chip's 3.3V outputs directly to Calypso |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 inputs; this arrangement has been working well for us since 2017, but a more |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 proper 2.8V DUART adapter is desirable for a few reasons: |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 * When the Calypso+Iota chipset enters superdeep sleep (our shorthand term for |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 Calypso deep sleep combined with Iota ABB sleep mode), the chipset's VRIO |
35
846ebd21db8e
duart28/design-spec: minor fixes in the so-far-written section
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
133 regulator (the one that produces the 2.8V V-IO rail) switches into sleep mode, |
34
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 which has much looser regulation than in the regular Active mode. In this |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 condition external 3.3V can feed into the V-IO rail through pull-up resistors |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 and pull the rail itself a little higher than where the chipset's own regulators |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 would have it, which is certainly not desirable. If UART inputs to the Calypso |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 board are driven with 2.8V logic levels rather than 3.3V, this problem is not |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 expected to occur. |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 * If we are going to build a custom FreeCalypso DUART adapter for other reasons, |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 it is only proper to make it 2.8V native rather than 3.3V - after all, our |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 adapter is highly specific to Calypso applications, not generic, and Calypso |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 has native 2.8V I/O. |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 * We have a competitor: Sysmocom folks use CP2105 adapters (mv-uart adapter |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 board and other integrated designs) instead of our FT2232D, and their |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 CP2105-based designs operate at native 2.8V logic levels, no 3.3V. For |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 political reasons it is important to be no worse than the competition, giving |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 us one more reason to go for native 2.8V. |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 Because FT2232D I/O (unlike CP2105, FT232R and many other chips that aren't |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 suitable for other reasons) cannot go below 3.3V, making an FT2232D-based |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 adapter put out 2.8V logic levels requires inserting an extra level shifter |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 after FT2232D outputs - we shall use an LVC buffer for this purpose. |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 1.3. Partial power-down considerations |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 The following two corner cases need to be considered, as each can be a trouble |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 spot: |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 1) When the USB to DUART adapter is connected to a host computer and thus has |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 USB power present, but the connected Calypso device is in the switched-off |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 state in the Iota VRPC sense (a condition that occurs all the time in normal |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 operation, e.g., whenever you are running fc-loadtool and waiting to press the |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 PWON button on the board), current can flow from USB DUART adapter outputs into |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 powered-down Calypso chip inputs. This current flow cannot be eliminated |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 without putting LVC or similar buffers on the Calypso board side, but we need |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 to be mindful of this current and we need to limit it. |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 2) When a Calypso device is connected to the USB DUART adapter, the Calypso |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 device is up and running (VRPC Active state), but there is no USB host |
35
846ebd21db8e
duart28/design-spec: minor fixes in the so-far-written section
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
173 connected, current can flow from Calypso outputs into a powered-down FT2232D |
846ebd21db8e
duart28/design-spec: minor fixes in the so-far-written section
Mychaela Falconia <falcon@freecalypso.org>
parents:
34
diff
changeset
|
174 (or other front-end chips) in the USB DUART adapter. With our current raw |
37
b2d6d8f756ea
duart28/design-spec: re-measured partial power-down current
Mychaela Falconia <falcon@freecalypso.org>
parents:
36
diff
changeset
|
175 FT2232D-to-Calypso arrangement we have about 5.8 mA of current flowing per pin |
b2d6d8f756ea
duart28/design-spec: re-measured partial power-down current
Mychaela Falconia <falcon@freecalypso.org>
parents:
36
diff
changeset
|
176 under the described condition, which is way too much. |
34
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 If we replace the generic FT2232D breakout with our own custom adapter board |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 design, we can solve the second partial power-down problem (the case of Calypso |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 on, but no USB host) by inserting LVC buffers in front of FT2232D inputs - |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 these LVC buffers are fully specified for partial power-down applications and |
0eca5449abd7
duart28/design-spec started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 have very small Ioff leakage current. |
36
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
183 |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
184 2. Circuit design |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
185 |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
186 2.1. FT2232D core section |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
187 |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
188 Our FT2232D core section (basically everything from the USB connector to the |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
189 FT2232D chip's ADBUS and BDBUS interfaces) is based on PLDkit's generic FT2232D |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
190 module: |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
191 |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
192 ftp://ftp.freecalypso.org/pub/USB/FTDI/FT2232D_module_B_schematics.pdf |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
193 |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
194 This core section is essentially boilerplate in which we have zero desire for |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
195 innovation, hence we would like to copy it from a known-working design. In |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
196 this project the section in question has been recaptured in our ueda language |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
197 based on the above schematic drawing. |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
198 |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
199 2.2. UART outputs from the adapter |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
200 |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
201 We have a total of 4 outputs: TxD, RTS, DTR and TxD2. Because we wish to put |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
202 out 2.8V logic levels rather than 3.3V, each output needs to pass through an |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
203 LVC buffer; we use a 74LVC541A as our buffer IC. |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
204 |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
205 There is also a series resistor inserted into each output after the LVC buffer; |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
206 the initial value to be populated on the first board build is 2.2 kOhm, to be |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
207 further tuned empirically. The purpose of these series resistors is to limit |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
208 the current that will flow from our DUART28 adapter into the Calypso target |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
209 when the Calypso is powered down - see section 1.3. In our current setup with |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
210 direct FT2232D to Calypso connection (no series resistors) this current has |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
211 been measured to be somewhere around 1.77 mA, and it appears to be limited by |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
212 the current sourcing ability of FT2232D drivers (1 mA per datasheet). However, |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
213 our new LVC buffers have much stronger drivers, specified to both source and |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
214 sink up to 24 mA, thus series resistors become mandatory for proper operation |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
215 in this partial power-down scenario. |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
216 |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
217 The value of these series resistors is a delicate tuning job: they need to be |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
218 large enough to limit current flow in the partial power-down scenario, but they |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
219 cannot be too large, or they will adversely affect serial communication. Each |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
220 of these series resistors will form an RC circuit together with various |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
221 parasitic capacitances on the Calypso target side; larger R translates to a |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
222 larger RC time constant, resulting in slower signal rise and fall times, |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
223 adversely affecting serial communication at higher baud rates. |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
224 |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
225 We have an existing Calypso development board produced by another company that |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
226 features old-fashioned RS-232 interfaces (classic DE9F connectors) and uses an |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
227 on-board RS-232 to LVTTL/LVCMOS converter; this board features 1 kOhm series |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
228 resistors in the same place as in our proposed design, and it works fine at |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
229 812500 baud. If we populate the same 1 kOhm resistors, the undesirable current |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
230 in the partial power-down scenario will be 2.8 mA per pin, which is greater |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
231 than our current 1.77 mA; with our current plan of populating 2.2 kOhm resistors |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
232 the current will be 1.27 mA, and we are hoping that 812500 baud communication |
40e2106a0500
duart28/design-spec: coming along
Mychaela Falconia <falcon@freecalypso.org>
parents:
35
diff
changeset
|
233 will still work OK. |
38
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
234 |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
235 2.3. UART inputs to the adapter |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
236 |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
237 We have a total of 6 inputs: RxD, CTS, DSR, DCD, RI and RxD2. These inputs |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
238 need to pass through LVC buffers just like the outputs, but for a different |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
239 reason. With inputs there is no need for voltage level translation, but the |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
240 need for LVC buffers arises because of partial power-down considerations - the |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
241 scenario when the Calypso board is fully up and running and is connected to the |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
242 DUART adapter, but there is no USB host connected - see section 1.3. If |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
243 Calypso UART outputs are connected directly to FT2232D inputs without any |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
244 intermediate buffers, this condition is handled very poorly, with about 5.8 mA |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
245 of current flowing per pin, which is certainly not acceptable for a proper |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
246 design. |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
247 |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
248 Insertion of an LVC buffer into each input signal path neatly solves this |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
249 problem: these buffers are specifically designed for partial power-down |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
250 applications and have very small Ioff leakage current - listed as 0.1 uA |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
251 typical or 10 uA maximum in the 74LVC541A datasheet. |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
252 |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
253 One additional complication is that we also have to add explicit pull-up |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
254 resistors (to our local 2.8V rail) on each of our 6 inputs in front of the |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
255 buffer IC. Many of our UART inputs may be legitimately left unconnected, and |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
256 these unconnected inputs should be sensed by our FT2232D USB UART as high. If |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
257 we were connecting to FT2232D inputs directly, the FT2232D chip's internal |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
258 pull-ups would take care of this condition, but when we have a 74LVC541A buffer |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
259 in front of these FT2232D inputs, this buffer IC's own inputs must not be left |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
260 floating. |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
261 |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
262 2.4. LVC buffer details |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
263 |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
264 We shall use two LVC buffer ICs of the same type (74LVC541A), one for the 4 |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
265 outputs, the other for the 6 inputs. Each 74LVC541A is an octal buffer, thus |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
266 some slots in each IC remain unused; all unused slots will have their A inputs |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
267 tied to GND. Both nOE1 and nOE2 on each buffer IC are also tied to GND, |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
268 resulting in all buffers being always enabled. |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
269 |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
270 The 74LVC541A buffer for outputs will have its Vcc supply pin fed with 2.8V, as |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
271 required in order to produce 2.8V logic levels on outputs from the adapter. |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
272 However, the other 74LVC541A buffer for inputs will have its Vcc supply pin fed |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
273 with 3.3V, same as FT2232D VCCIOA and VCCIOB. |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
274 |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
275 When the inputs coming from the connected Calypso target have 2.8V logic levels |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
276 and ultimately need to go to FT2232D receivers operating at 3.3V, a sort of |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
277 translation will have to happen somewhere, with a CMOS input structure operating |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
278 with a 3.3V supply being fed 2.8V inputs. We can make this translation happen |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
279 in the FT2232D if we use an intermediate LVC buffer powered at 2.8V or no |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
280 intermediate buffer at all, or we can make this translation happen in the LVC |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
281 buffer if the latter is powered with the same 3.3V as the FT2232D I/O pins. |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
282 The second approach has been chosen because the behaviour of 74LVC541A under |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
283 these conditions is much better understood than the behaviour of FT2232D I/O |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
284 cells under the same, thanks to much better documentation being available for |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
285 74LVC541A than for that part of FT2232D. |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
286 |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
287 Please note, however, that the pull-up resistors on inputs before input-serving |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
288 74LVC541A buffer will be wired to our local 2.8V rail, not to 3.3V, even though |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
289 the buffer IC will be powered with 3.3V. This way all interface signals exist |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
290 strictly in the 2.8V domain and never get exposed to 3.3V in any form. |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
291 |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
292 2.5. LDO regulators |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
293 |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
294 Two LDO regulators will be implemented on our adapter board, both powered from |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
295 USB 5V: one producing 3.3V, the other producing 2.8V. Our 3.3V LDO will power |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
296 FT2232D VCCIOA & VCCIOB and the input-serving 74LVC541A buffer, whereas the |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
297 other 2.8V LDO will power our output-serving 74LVC541A buffer and our input |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
298 pull-up resistors. Both LDOs will be of TLV702 family from TI, based on our |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
299 recent good experiences with this LDO family in other projects. |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
300 |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
301 The FT2232D chip's built-in 3.3V LDO won't be used: its 5 mA current limit |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
302 seems to be too small, and our current FT2232D adapter boards made by PLDkit |
ba83a7cd6451
duart28/design-spec: circuit description should be complete
Mychaela Falconia <falcon@freecalypso.org>
parents:
37
diff
changeset
|
303 don't use it either, using an external beefier LDO instead. |
41
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
304 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
305 3. PCB layout specification |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
306 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
307 3.1. Overall dimensions |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
308 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
309 The generic FT2232D breakout board from PLDkit which the present DUART28 seeks |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
310 to replace measures 39.37x46.99 mm or 1550x1850 mil. If the present DUART28 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
311 circuit can be squeezed into the same size, great - but such squeeze is NOT |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
312 required. If our DUART28 requires a larger PCB because of our greater circuit |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
313 complexity and having more components, using a larger PCB would be perfectly |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
314 fine - however much space is needed to get the job done. There is no specific |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
315 form factor requirement, i.e., this project is a free-form design. |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
316 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
317 3.2. Layer count |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
318 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
319 PLDkit's FT2232D adapter board appears to have a 2-layer PCB, and our competitor |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
320 mv-uart by Sysmocom (CP2105-based) is known to have a 2-layer PCB thanks to |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
321 published design files. However, we shall go by the same business logic as with |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
322 board dimensions: if the needed layout can be done in just 2 layers, great, but |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
323 if the PCB layout engineer feels that going to 4 layers would be better or would |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
324 make the layout job easier, it would be perfectly OK to have 4 layers. |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
325 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
326 3.3. Mounting holes |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
327 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
328 The PCB should have 4 mounting holes in the corners, accommodating M3 screws. |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
329 It is OK to increase overall board dimensions slightly to make room for these |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
330 mounting holes. |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
331 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
332 3.4. Placement of connectors |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
333 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
334 USB mini-B connector J1 must be placed along one of the board edges; it does not |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
335 matter along which edge, or exactly where. |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
336 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
337 Shrouded 2x5 header J2 can be placed anywhere, as long as the placement makes |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
338 sense for cable attachment purposes. The cable plugged into this connector will |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
339 be a 10-wire ribbon terminated with an IDC connector, thus the body of the flat |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
340 cable will lie parallel to the board surface. Orientation: the body of the |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
341 cable will face toward the even-numbered row of pins, i.e., away from the |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
342 polarizing tab identified with a silk screen mark in the currently drawn |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
343 footprint. |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
344 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
345 Little headers J3 and J4 can be placed anywhere; they are not shrouded and the |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
346 only things that can be connected to them are either individual jumper wires or |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
347 crimped assemblies with wires rising up, perpendicular to the board. |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
348 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
349 3.5. Connector silk screen labels |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
350 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
351 All three user connection headers J2, J3 and J4 shall have silk screen labels |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
352 identifying every pin. J2 pins shall be labeled as follows, numbers in the |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
353 middle indicate physical pins and shall NOT be placed on the silk screen |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
354 themselves: |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
355 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
356 GND 1 2 GND |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
357 RxD2 3 4 RxD |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
358 TxD2 5 6 TxD |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
359 DCD 7 8 CTS |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
360 DTR 9 10 RTS |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
361 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
362 J3 pins shall be labeled as follows, numbers on the left indicate physical pins |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
363 and shall NOT be placed on the silk screen themselves: |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
364 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
365 1 GND |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
366 2 DSR |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
367 3 RI |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
368 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
369 J4 pins shall be labeled as follows, same deal with pin numbers: |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
370 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
371 1 +5V |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
372 2 GND |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
373 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
374 3.6. 74LVC541A slot assignment |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
375 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
376 74LVC541A is an octal buffer IC that can be seen as a bundle of 8 single buffers |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
377 with common output enables; the latter are always enabled in our present |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
378 circuit. The present design uses two of these octal buffer ICs (see section |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
379 2.4): one with 4 signals and 4 unused slots (grounded A inputs, unconnected Y |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
380 outputs) and one with 6 signals and 2 unused slots. The mapping of which signal |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
381 should go to which An/Yn slot is arbitrary from the standpoint of circuit |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
382 functionality, thus this mapping should be made at the time of PCB layout for |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
383 physical layout optimization. |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
384 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
385 The mapping of signals to U5 and U6 slots is defined in U5.slotmap and |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
386 U6.slotmap text files; to change these mappings, edit the two files to define |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
387 the desired mapping, then recompile the netlist by running 'make', producing an |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
388 updated pcb-netlist.txt generated file. |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
389 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
390 The preliminary slot mapping that exists in the present netlist was created as |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
391 a placeholder to pass compilation, and is NOT expected to be anywhere close to |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
392 optimal for layout! Therefore, the PCB layout engineer is expected to review |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
393 this slot mapping and optimize it for layout. |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
394 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
395 3.7. Power bypass capacitors |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
396 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
397 By the very nature of power bypass capacitors, a netlist gives absolutely no |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
398 indication as to where they need to be placed - yet their physical placement is |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
399 essential to their circuit function. Because the design of this board is |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
400 captured in ueda language instead of graphical schematics, it is possible that |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
401 the PCB layout engineer may have some difficulty with reading our ueda design |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
402 source to understand the design intent as to where each bypass capacitor should |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
403 be placed. The following listing is intended to resolve this ambiguity: |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
404 |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
405 * C4 and C7 need to be placed at the output of L1 on the P_5V net; |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
406 * C8 needs to be placed at the input of LDO regulator U3; |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
407 * C9 needs to be placed at the output of LDO regulator U3; |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
408 * C10 needs to be placed at the input of LDO regulator U4; |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
409 * C11 needs to be placed at the output of LDO regulator U4; |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
410 * C12 needs to be placed near pin 20 (Vcc) of U5; |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
411 * C13 needs to be placed near pin 20 (Vcc) of U6; |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
412 * C14 needs to be placed near pin 14 (VCCIOA) of U1; |
45bbb72a8916
duart28/design-spec: layout instructions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
38
diff
changeset
|
413 * C15 needs to be placed near pin 31 (VCCIOB) of U1. |