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 03ee256a3b1a774e72bc79a65e02e62a56fc62dd created 7 years 22 days ago. By Stefan Schmidt, web: add 0.3 firmware binaries into release folder for web page | |
|---|---|
| 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 | |
