- atusb/atusb.sch, atusb/usb.sch, atusb/atrf.sch: bumped schematics
version to 20110519
- atusb/usb.sch (VR1, VR2, VR3): changed voltage from 5.6 V to 5.5 V
- atusb/usb.sch (VR1, VR2, VR3): clarified that the voltage is Vdc, not Vb
- bom/atrf.chr (AVR-M1005C080MTACB): Vdc is 5.5 V, not 5.6 V
- bom/atrf.sub (VR[0-9]*): allow #.#Vdc as an alternative to #V#
- atrf-xtal.c (eval): return the value instead of printing it
- atrf-xtal.c (usage, main): new option -b for reporting the deviation
from a base count
- atrf-xtal.c (eval): new option -p to report an error for deviations
outside the specified bound
- atusb (flash, dfu): removed (to be handled by separate script)
- atusb (enumerate): implemented enumeration test
- atusb: enabled "identify", since the local anomaly has been solved
Note that the PHY is still half-duplex, but we don't need to insist
on the entire packet reception/transmission to finish before letting
the peer have its say.
the kernel now has config options for IEEE 802.15.4 debugging. We turn
it all off and enjoy the peaceful silence.
Furthermore, turn on TUN (tunneling via user space).
- dirtpan.c (open_tun): if a command is given, set the environment
variable ITF to the interface name and system(3) the command
- dirtpan.c (usage, main): accept an interface configuration command as
the 4th command-line argument
Note that we still waste at least one perfectly good frame. However,
instead of implementing some fancy arbitration, it's better if we
just make the whole thing bidirectional in the future.
The IEEE 802.15.4 kernel stack doesn't implement ACKs yet and prints
a warning if we request them. Since dirtpan has its own ACKs, we
just disable IEEE 802.15.4 ACKs for now.
- dirtpan.c (debug_ip): only dump local packets if debug > 1
- dirtpan.c (debug_dirt): dump packet content only if debug > 1
- dirtpan.c (debug_dirt): made packet content dump more readable
- dirtpan.c (debug_dirt): added terse debug output for debug == 1
- dirtpan.c (usage): doubling -d now has a meaning
- usbwait.c (need_removal, wait_for_usb): if need_removal is set, wait
for the device to be removed before trying to find it
- usbwait.c (usage, main): new option -r to set need_removal
- usbwait/usbwait.c: update the USB device tree until the specified
device is detected
- usbwait/Makefile: build usbwait (host only)
- Makefile (DIRS, BEN_DIRS, upload): separated subdirectories with tools
that can run on the Ben from those that can't
- Makefile (DIRS): added usbwait/
- usbopen.c (open_usb): determine vendor and product objective outside
the loop
- usbopen.c (open_usb): check vendor and product only if non-zero
- usbopen.c (bad_id, parse_usb_id): vendor and product can now be
omitted
- tools/include/usbopen.h (usb_rescan), tools/lib/usbopen.c (initialized,
initialize, usb_rescan): usb_rescan forces a re-initialization of
libusb and a new scan of the USB device tree
- usb/usb.h (USB_LANGID_ENGLISH_US): added USB LANGID for US-English
- board.h (board_sernum), board.c (board_sernum, hex, get_sernum,
board_init): provide the board's serial number in "board_sernum"
(UTF-encoded)
- sernum.h (sernum_get_descr), sernum.c (sernum_get_descr): return
string descriptors for the serial number
- descr.c (device_descriptor), usb/dfu.c (device_descriptor):
set iSerialNumber if serial number is available
- atusb.c (main), usb/dfu.c (my_descr): call sernum_get_descr for
unknown descriptors
- Makefile (OBJS, BOOT_OBJS): added sernum.o
What caused the error that looked like a problem with the functional
descriptor was in fact the boot loader resetting between the bus scan
and retrieval of the descriptor.
- board.c (board_init): disable the watchdog timer (tricky !)
- board.h (reset_cpu), board.c: enable the watchdog timer to cause a
CPU reset
- ep0.c (my_setup): uncommented and updated ATUSB_RESET handler
We currently don't provide the DFU Functional Descriptor, which modern
versions of dfu-util request to determine the transfer size. Luckily,
they don't do this if the transfer size is given on the command line.