IEEE 802.15.4 subsystem
Sign in or create your account | Project List | Help
IEEE 802.15.4 subsystem Git Source Tree
Root/
Source at commit b3b037e18d4ac2018cbef505b6ee3e01bfd24896 created 12 years 9 months ago. By Werner Almesberger, TODO: update for switch to spi_atben | |
---|---|
1 | Current stuff |
2 | ------------- |
3 | |
4 | - add spi_atben driver, for improved performance and to serve as an |
5 | example for spi_atusb |
6 | |
7 | Resolution: done. Average frame buffer transfer speed increased from |
8 | about 0.82 Mbps to 4.2 Mbps. Things still pending: |
9 | |
10 | - restore GPIOs in spi_atben |
11 | - update unbinding procedure |
12 | |
13 | - need to document fab workflow in makefiles/Makefile.kicad |
14 | |
15 | Deadline: before FISL 12 :-) |
16 | |
17 | - boot.hex is now bigger than 4 kB. Need to split USB stack build into |
18 | "lean" and "fat" version. |
19 | |
20 | Work-around: those wishing to build their boot loader should use |
21 | commit ce16a16. |
22 | |
23 | Resolution: should work now (after the stack split). Still needs |
24 | testing. |
25 | |
26 | - atusb/fw/ design flaw: we can send an interrupt queued in EP1 after |
27 | a control transfer has happened that turns off the interrupt source |
28 | |
29 | Work-around: seems that waiting for 10 ms gets it most of the time |
30 | |
31 | - atusb/fw/ should combine interrupts so that we don't have to read |
32 | IRQ_STATUS (this goal may conflict with the synchronization |
33 | requirement above, though) |
34 | |
35 | Resolution: do less instead of more - we now don't even touch |
36 | IRQ_STATUS in the atusb firmware and just send a zero byte as an |
37 | indication that something has happened. |
38 | |
39 | - show WLAN channels in atrf-rssi -g |
40 | |
41 | Resolution: done |
42 | |
43 | - atusb/fw/: think of a better way to re-enable INT0 after ATUSB_GPIO |
44 | |
45 | - atusb/fw/: remove obsolete atusb requests |
46 | |
47 | |
48 | *** EVERYTHING BELOW NEEDS UPDATING *** |
49 | |
50 | General |
51 | ======= |
52 | |
53 | Things not done yet |
54 | ------------------- |
55 | |
56 | - document directory hierarchy |
57 | |
58 | - make sure all files have a copyright header or are listed in AUTHORS |
59 | |
60 | - connect all the bits and pieces of the build system |
61 | |
62 | - combine io-parts.h generation |
63 | |
64 | - combine "standard" EP0 commands, such as *_ID and *_BUILD |
65 | |
66 | - implement return to DFU in application's EP0 protocol |
67 | |
68 | - consider removing *_ID and using bcdDevice instead |
69 | |
70 | |
71 | Bugs to fix |
72 | ----------- |
73 | |
74 | - builds fail if .version isn't there yet |
75 | |
76 | |
77 | |
78 | atrf |
79 | ==== |
80 | |
81 | AT86RF230-based IEEE 802.15.4 transceiver. Two variants: one to make a USB |
82 | dongle for use with any Linux host, and one that connects with SPI directly |
83 | inside a Ben. |
84 | |
85 | Update: following Rikard Lindstrom's revelation that we can use the uSD slot |
86 | also just as general GPIOs, the variant that goes inside the Ben can wait a |
87 | bit and the atben board for insertion into the uSD slot is being worked on |
88 | first. We can verify most of the design of a fully integrated board with the |
89 | atben board and the latter will be of greater immediate use. |
90 | |
91 | |
92 | Things done |
93 | ----------- |
94 | |
95 | - verify that the Ben can output an a) 16 MHz clock, and b) with +/- 40 ppm |
96 | |
97 | Done, see ecn/ecn0005.txt. Works fine. |
98 | |
99 | - replace discrete balun and filter with integrated solution, to reduce BOM |
100 | size, maybe cost, insertion loss, and PCB space (see ATRF/ECN0003) |
101 | |
102 | Done for atben. At a first glamce, does not seem to affect performance. |
103 | |
104 | - check if we really need three DC blocking caps in the RF path |
105 | |
106 | Reduced to two in atben without apparent ill effects. |
107 | |
108 | |
109 | Things not done yet |
110 | ------------------- |
111 | |
112 | - examine spectrum around carrier frequency and first harmonic to look for |
113 | obvious distortions. Vary transmit power. |
114 | |
115 | - measure throughput as a function of placement/distance, carrier frequency, |
116 | and transmit power |
117 | |
118 | - atrf-txrx: suppport "extended mode" with IEEE 802.15.4 CSMA-CA for more |
119 | realistic throughput figures |
120 | |
121 | - measure full spectrum (ideally up to 25 GHz, but just 2nd and 3rd harmonic |
122 | will already tell most of the story) with calibrated antenna for FCC/ETSI |
123 | compliance assessment. Vary transmit power. |
124 | |
125 | - use IEEE 802.15.4 stack from linux-zigbee. The linux-zigbee kernel is |
126 | currently at 2.6.35. Once 2.6.36 is released, we should have Ben and |
127 | IEEE 802.15.4 support in the same kernel without further ado. |
128 | |
129 | - change layout of transceiver side of the board for placement inside Ben |
130 | |
131 | - define EMI filters for placement inside Ben |
132 | |
133 | - check USB standard for recommended USB dongle dimensions |
134 | |
135 | - change layout for straight USB dongle |
136 | |
137 | - generate proper BOM |
138 | |
139 | - implement sleep mode |
140 | |
141 | - (atben) verify SPI signal timing, particularly the data clock |
142 | |
143 | |
144 | ccrf |
145 | ==== |
146 | |
147 | Board similar to the atrf, but with the TI/Chipcon CC2520. |
148 | |
149 | Cancelled. The CC2520 falls under US export restrictions, apparently because |
150 | it contains an AES engine. |
151 | |
152 | |
153 | cntr |
154 | ==== |
155 | |
156 | Simple USB-based counter to measure a clock's long-time accuracy with |
157 | arbitrarily high precision, by comparing it to an NTP time reference. |
158 | |
159 | |
160 | Things not done yet |
161 | ------------------- |
162 | |
163 | - measure duty cycle |
164 | |
165 | - use the LED to display activity on clock input and duty cycle |
166 | |
167 | - consider using a comparator and a DAC to allow for programmable logic levels |
168 | |
169 | - evaluate termination resistance |
170 | |
171 | - document circuit design |
172 | |
173 | - record beats between 16 bit counter polls and use them for the estimate |
174 | of lost cycles (2*1 is way too optimistic) |
175 | |
176 | - include system clock resolution in accuracy calculation |
177 | |
178 | - consider running shorter sliding windows to estimate drift |
179 | |
180 | - consider detecting unusual half-periods |
181 | |
182 | - consider using a reversed USB connector, to avoid having to cross D+/D- and, |
183 | worse, VBUS and GND |
184 | |
185 | - test input performance by counting a source that emits a known number of |
186 | cycles |
187 | |
188 | - consider using historical margins to sanity-check the current margin (if any |
189 | old.max < curr.min or old.min > curr.max, we have a problem) and to further |
190 | narrow the effective margin, thus achieving faster convergence. We would have |
191 | to consider temperature drift of the frequency source in this case. |
192 | |
193 | - find out why frequency measurements always seem to start high and then slowly |
194 | drop |
195 |