FreeCalypso > hg > fc-small-hw
annotate duart28/design-spec @ 37:b2d6d8f756ea
duart28/design-spec: re-measured partial power-down current
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 23 Jul 2020 18:14:16 +0000 |
parents | 40e2106a0500 |
children | ba83a7cd6451 |
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. |