IEEE 802.15.4 subsystem
Sign in or create your account | Project List | Help
IEEE 802.15.4 subsystem Git Source Tree
Root/
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 | - find out why "make dfu" doesn't work on my u1010 |
44 | |
45 | - make tools interruptible (^C) again when using atusb (the new |
46 | interrupt code removed the timeout and usb_bulk_read seems to simply |
47 | ignore signals) |
48 | |
49 | - update OpenWrt cross-toolchain and check build. Also check if |
50 | SDL_gfx is now available. |
51 | |
52 | *** EVERYTHING BELOW NEEDS UPDATING *** |
53 | |
54 | General |
55 | ======= |
56 | |
57 | Things not done yet |
58 | ------------------- |
59 | |
60 | - document directory hierarchy |
61 | |
62 | - make sure all files have a copyright header or are listed in AUTHORS |
63 | |
64 | - connect all the bits and pieces of the build system |
65 | |
66 | - combine io-parts.h generation |
67 | |
68 | - combine "standard" EP0 commands, such as *_ID and *_BUILD |
69 | |
70 | - implement return to DFU in application's EP0 protocol |
71 | |
72 | - consider removing *_ID and using bcdDevice instead |
73 | |
74 | |
75 | Bugs to fix |
76 | ----------- |
77 | |
78 | - builds fail if .version isn't there yet |
79 | |
80 | |
81 | |
82 | atrf |
83 | ==== |
84 | |
85 | AT86RF230-based IEEE 802.15.4 transceiver. Two variants: one to make a USB |
86 | dongle for use with any Linux host, and one that connects with SPI directly |
87 | inside a Ben. |
88 | |
89 | Update: following Rikard Lindstrom's revelation that we can use the uSD slot |
90 | also just as general GPIOs, the variant that goes inside the Ben can wait a |
91 | bit and the atben board for insertion into the uSD slot is being worked on |
92 | first. We can verify most of the design of a fully integrated board with the |
93 | atben board and the latter will be of greater immediate use. |
94 | |
95 | |
96 | Things done |
97 | ----------- |
98 | |
99 | - verify that the Ben can output an a) 16 MHz clock, and b) with +/- 40 ppm |
100 | |
101 | Done, see ecn/ecn0005.txt. Works fine. |
102 | |
103 | - replace discrete balun and filter with integrated solution, to reduce BOM |
104 | size, maybe cost, insertion loss, and PCB space (see ATRF/ECN0003) |
105 | |
106 | Done for atben. At a first glamce, does not seem to affect performance. |
107 | |
108 | - check if we really need three DC blocking caps in the RF path |
109 | |
110 | Reduced to two in atben without apparent ill effects. |
111 | |
112 | |
113 | Things not done yet |
114 | ------------------- |
115 | |
116 | - examine spectrum around carrier frequency and first harmonic to look for |
117 | obvious distortions. Vary transmit power. |
118 | |
119 | - measure throughput as a function of placement/distance, carrier frequency, |
120 | and transmit power |
121 | |
122 | - atrf-txrx: suppport "extended mode" with IEEE 802.15.4 CSMA-CA for more |
123 | realistic throughput figures |
124 | |
125 | - measure full spectrum (ideally up to 25 GHz, but just 2nd and 3rd harmonic |
126 | will already tell most of the story) with calibrated antenna for FCC/ETSI |
127 | compliance assessment. Vary transmit power. |
128 | |
129 | - use IEEE 802.15.4 stack from linux-zigbee. The linux-zigbee kernel is |
130 | currently at 2.6.35. Once 2.6.36 is released, we should have Ben and |
131 | IEEE 802.15.4 support in the same kernel without further ado. |
132 | |
133 | - change layout of transceiver side of the board for placement inside Ben |
134 | |
135 | - define EMI filters for placement inside Ben |
136 | |
137 | - check USB standard for recommended USB dongle dimensions |
138 | |
139 | - change layout for straight USB dongle |
140 | |
141 | - generate proper BOM |
142 | |
143 | - implement sleep mode |
144 | |
145 | - (atben) verify SPI signal timing, particularly the data clock |
146 | |
147 | |
148 | ccrf |
149 | ==== |
150 | |
151 | Board similar to the atrf, but with the TI/Chipcon CC2520. |
152 | |
153 | Cancelled. The CC2520 falls under US export restrictions, apparently because |
154 | it contains an AES engine. |
155 | |
156 | |
157 | cntr |
158 | ==== |
159 | |
160 | Simple USB-based counter to measure a clock's long-time accuracy with |
161 | arbitrarily high precision, by comparing it to an NTP time reference. |
162 | |
163 | |
164 | Things not done yet |
165 | ------------------- |
166 | |
167 | - measure duty cycle |
168 | |
169 | - use the LED to display activity on clock input and duty cycle |
170 | |
171 | - consider using a comparator and a DAC to allow for programmable logic levels |
172 | |
173 | - evaluate termination resistance |
174 | |
175 | - document circuit design |
176 | |
177 | - record beats between 16 bit counter polls and use them for the estimate |
178 | of lost cycles (2*1 is way too optimistic) |
179 | |
180 | - include system clock resolution in accuracy calculation |
181 | |
182 | - consider running shorter sliding windows to estimate drift |
183 | |
184 | - consider detecting unusual half-periods |
185 | |
186 | - consider using a reversed USB connector, to avoid having to cross D+/D- and, |
187 | worse, VBUS and GND |
188 | |
189 | - test input performance by counting a source that emits a known number of |
190 | cycles |
191 | |
192 | - consider using historical margins to sanity-check the current margin (if any |
193 | old.max < curr.min or old.min > curr.max, we have a problem) and to further |
194 | narrow the effective margin, thus achieving faster convergence. We would have |
195 | to consider temperature drift of the frequency source in this case. |
196 | |
197 | - find out why frequency measurements always seem to start high and then slowly |
198 | drop |
199 |