ben-wpan/TODO

199 lines
5.7 KiB
Plaintext

Current stuff
-------------
- add spi_atben driver, for improved performance and to serve as an
example for spi_atusb
Resolution: done. Average frame buffer transfer speed increased from
about 0.82 Mbps to 4.2 Mbps. Things still pending:
- restore GPIOs in spi_atben
- update unbinding procedure
- need to document fab workflow in makefiles/Makefile.kicad
- boot.hex is now bigger than 4 kB. Need to split USB stack build into
"lean" and "fat" version.
Work-around: those wishing to build their boot loader should use
commit ce16a16.
Resolution: should work now (after the stack split). Still needs
testing.
- atusb/fw/ design flaw: we can send an interrupt queued in EP1 after
a control transfer has happened that turns off the interrupt source
Work-around: seems that waiting for 10 ms gets it most of the time
- atusb/fw/ should combine interrupts so that we don't have to read
IRQ_STATUS (this goal may conflict with the synchronization
requirement above, though)
Resolution: do less instead of more - we now don't even touch
IRQ_STATUS in the atusb firmware and just send a zero byte as an
indication that something has happened.
- atusb/fw/: think of a better way to re-enable INT0 after ATUSB_GPIO
- atusb/fw/: remove obsolete atusb requests
- write GETTING-STARTED similar to what we had for gta02-core
- find out why "make dfu" doesn't work on my u1010
- make tools interruptible (^C) again when using atusb (the new
interrupt code removed the timeout and usb_bulk_read seems to simply
ignore signals)
- update OpenWrt cross-toolchain and check build. Also check if
SDL_gfx is now available.
*** EVERYTHING BELOW NEEDS UPDATING ***
General
=======
Things not done yet
-------------------
- document directory hierarchy
- make sure all files have a copyright header or are listed in AUTHORS
- connect all the bits and pieces of the build system
- combine io-parts.h generation
- combine "standard" EP0 commands, such as *_ID and *_BUILD
- implement return to DFU in application's EP0 protocol
- consider removing *_ID and using bcdDevice instead
Bugs to fix
-----------
- builds fail if .version isn't there yet
atrf
====
AT86RF230-based IEEE 802.15.4 transceiver. Two variants: one to make a USB
dongle for use with any Linux host, and one that connects with SPI directly
inside a Ben.
Update: following Rikard Lindstrom's revelation that we can use the uSD slot
also just as general GPIOs, the variant that goes inside the Ben can wait a
bit and the atben board for insertion into the uSD slot is being worked on
first. We can verify most of the design of a fully integrated board with the
atben board and the latter will be of greater immediate use.
Things done
-----------
- verify that the Ben can output an a) 16 MHz clock, and b) with +/- 40 ppm
Done, see ecn/ecn0005.txt. Works fine.
- replace discrete balun and filter with integrated solution, to reduce BOM
size, maybe cost, insertion loss, and PCB space (see ATRF/ECN0003)
Done for atben. At a first glamce, does not seem to affect performance.
- check if we really need three DC blocking caps in the RF path
Reduced to two in atben without apparent ill effects.
Things not done yet
-------------------
- examine spectrum around carrier frequency and first harmonic to look for
obvious distortions. Vary transmit power.
- measure throughput as a function of placement/distance, carrier frequency,
and transmit power
- atrf-txrx: suppport "extended mode" with IEEE 802.15.4 CSMA-CA for more
realistic throughput figures
- measure full spectrum (ideally up to 25 GHz, but just 2nd and 3rd harmonic
will already tell most of the story) with calibrated antenna for FCC/ETSI
compliance assessment. Vary transmit power.
- use IEEE 802.15.4 stack from linux-zigbee. The linux-zigbee kernel is
currently at 2.6.35. Once 2.6.36 is released, we should have Ben and
IEEE 802.15.4 support in the same kernel without further ado.
- change layout of transceiver side of the board for placement inside Ben
- define EMI filters for placement inside Ben
- check USB standard for recommended USB dongle dimensions
- change layout for straight USB dongle
- generate proper BOM
- implement sleep mode
- (atben) verify SPI signal timing, particularly the data clock
ccrf
====
Board similar to the atrf, but with the TI/Chipcon CC2520.
Cancelled. The CC2520 falls under US export restrictions, apparently because
it contains an AES engine.
cntr
====
Simple USB-based counter to measure a clock's long-time accuracy with
arbitrarily high precision, by comparing it to an NTP time reference.
Things not done yet
-------------------
- measure duty cycle
- use the LED to display activity on clock input and duty cycle
- consider using a comparator and a DAC to allow for programmable logic levels
- evaluate termination resistance
- document circuit design
- record beats between 16 bit counter polls and use them for the estimate
of lost cycles (2*1 is way too optimistic)
- include system clock resolution in accuracy calculation
- consider running shorter sliding windows to estimate drift
- consider detecting unusual half-periods
- consider using a reversed USB connector, to avoid having to cross D+/D- and,
worse, VBUS and GND
- test input performance by counting a source that emits a known number of
cycles
- consider using historical margins to sanity-check the current margin (if any
old.max < curr.min or old.min > curr.max, we have a problem) and to further
narrow the effective margin, thus achieving faster convergence. We would have
to consider temperature drift of the frequency source in this case.
- find out why frequency measurements always seem to start high and then slowly
drop