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