- boot.c: basic boot loader that runs DFU for 2 s, then starts the payload
- board.h (DFU_USB_VENDOR, DFU_USB_PRODUCT): added USB IDs for DFU
- flash.c: stubs for board-specific Flash functions
- Makefile: build boot.hex for the boot loader
- Makefile (prog): load the boot loader at its rightful place
- Makefile (prog): also set hfuse and the lock fuse
- dfu.c: updated includes
- dfu.c (device_descriptor): renamed USB IDs from USB_VENDOR/PRODUCT to
DFU_USB_VENDOR/PRODUCT to allow differentiation
- dfu.c: changed all __bit to "int"
- dfu.c: removed all __xdata and __reentrant
- dfu.c: changed "ep0" to "eps[0]"
- dfu.c (payload, flash_erase_page, flash_write_byte, block_write,
block_receive, block_transmit, my_setup): abstracted Flash interface
and removed target-specific operations
- dfu.h: added prototypes for target-specific Flash operations
- dfu,c (my_setup, my_descr): removed SDCC-specific hacks
- dfu.c (my_reset): commented out - did we actually use this ?
- Makefile, atusb.pro, atusb.sch, atrf.sch, usb.sch, atusb.cmp, atusb.brd:
resurrected from git history (commit
14b00823b0)
- fw/: moved all C8051F326-specific files over from atusb/fw/
- fw/include/: copied MCU-independent files over from atusb/fw/include/
- atben/cam/mkmk: introduced variables for board corner
- atben/cam/mkmk: updated for new raw board
- atusb-pgm/cam/Makefile: updated for new board
- atusb/cam/Makefile: introduced abstraction with $(NAME)
- atusb/cam/Makefile: use cameo/templates/mkmk-simple instead of local mkmk
- atusb/cam/mkmk: removed
- atusb/cam/Makefile: updated for new board
- usb/usb.c: moved chip-specific functions to usb/atu2.c
- Makefile (USB_OBJS): added usb/atu2.c
- usb/usb.h, usb/usb.c, ep0.c: made argument to my_setup and user_setup
"const"
- usb/ubs.h (handle_setup): call from chip driver to generic stack
- usb/ubs.h (set_addr): call from generic stack to chip driver
- Makefile (atusb.elf): generate a new version iff generating a new
executable
- Makefile (atusb.bin): print the build number and the file size
- Makefile (clean): remove the various constituend files of the version
- Makefile (version.c): generate version.c
- version.h: definitions for the generated version.c
- ep0.c (build_number, build_date): removed dummy version information
and include version.h instead
- usb2/: renamed to usb/
- Makefile (FreakUSB): removed $(FreakUSB) and commented-out items for
FreakUSB
- Makefile: changed vpath from usb2/ to usb/
- Makefile (CFLAGS): changed include from -Iusb2 to -Iusb
- Makefile (CFLAGS): don't define NUM_EPS (it's already in usb/usb.c)
- atusb.brd: updated for schematics changes
- atusb.brd: rearranged component references and values for
printing/display
- atusb.brd: bumped version to 20110214
- usb.sch (R1): changed from 68 Ohm to 180 Ohm, to decrease BOM size
- atrf.sch (C17): changed from 1 pF to 2.2 pF (value is more common,
and it can only help to reduce harmonics)
- atusb.sch, usb.sch, atrf.sch: bumped version to 20110214
- atusb.cmp: updated
The Makefile didn't see the FreakUSB object files at the expected place,
so it always rebuild them.
- Makefile (USB_OBJS): removed paths from object file names
- Makefile: added vpaths for the FreakUSB source file locations
- Makefile (atusb.elf, clean): we no longer need $(notdir ...) for the
object files
- atusb.c (main), board.h (board_init), board.c (board_init): moved
clock and I/O initialization to board file
- board.h (led), board.c (led), atusb.c (main): abstracted LED setting
in function "led" instead of open-coding it
- spi.c (spi_init): set nSS to 1 before enabling the output, so that we
don't generate what looks like an empty SPI transaction
- atusb.brd: moved C14 and adjacent via 10 mil away from the transceive,
for improved solderability
- atusb.brd: moved nRST_RF via and trace by 5 mil, for better access to
the trace
- atusb.brd: reduced crystal front ground zone such that it does not
creep under XTAL2 corner (where it might meet exposed metal)
- board.h (read_irq), board.c: return status of the RF IRQ
- board.h (PIN, PIN_1, PIN_2): macros to read port pins
- ep0.c (my_setup): make ATUSB_POLL_INT return the real interrupt
- fw/include/atusb/ep0.h (HW_TYPE_110131): defined hardware type 2 for
ATmega32U2-based boards
- fw/ep0.c: define HW_TYPE as HW_TYPE_110131, not directly as 2
- fw2/atusb.c: include atusb/ep0.h instead of declaring ep0_init locally
- io.h: renamed to board.h
- Makefile (OBJS): added board.o
- atusb.c (reset_rf): moved to board.c
- board.h (reset_rf): give reset_rf a proper declaration
- atusb.c, ep.c, spi.c: include board.h instead of io.h
- ep0.c (do_usb_recv, usb_recv): implemented creepy buffer reception
- ep0.c (my_setup): added dummy for ATUSB_POLL_INT (always return 0)
- ep0.c (my_setup): send a zero-length packet at the end of
ATUSB_RF_RESET and ATUSB_REG_WRITE to indicate status stage
- Makefile (OBJS): added spi.o
- spi.h, spi.c, atusb.c: moved SPI functions to new file
- spi.h (spi), spi.c (spi), atusb.c (main): renamed function "spi" to
"spi_io"
- atusb.c (reset_rf, main): moved transceiver reset to separate function
- ./: basic framework to build a firmware that can enumerate
- usb/patches/: patches to make FreakUSB 0.7 compile cleanly and to make
it work in our context
- usb.sch: cleaned up programming/auxiliary/LED signals
- usb.sch: swapped LED and nRST_RF (tracking the layout)
- atusb.brd: updated for corrected netlist
- atusb.brd: moved date code which overlapped with traces
- atusb.brd: reduced front RF and power ground zones to avoid ground
fill between transceiver pads
- atusb.brd: added ground traces around crystal to widen ground zone
- atusb.pro, atusb.cmp: updated for ATmega32U2-based design
- usb.sch: rearranged LED, nRST_RF, and SLP_TR, to make layout easier
- atusb.brd: redid layout for the ATmega32U2-based design
- usb.sch: renumbered test points for serial programming
- usb.sch: moved everything down to make room on top
- usb.sch: moved description of pad placement near the pads
- usb.sch: added footprint of U1
- atusb.pro (LibName5): changed from c8051f326 to atmega8u2
- atrf.sch: export CLKM and added filter for 8 MHz clock
- atusb.sch: connect CLK between RF and USB side
- usb.sch: changed design frim C8051F326 to ATmega32U2 (needs cleanup)
Settings according to
http://www.nxp.com/documents/mounting_and_soldering/AN10365.pdf
- atben.pro, atben.brd, atusb.pro, atusb.brd: set solder mask clearance
to 50 um (copper-defined pads)
- atben.pro, atben.brd, atusb.pro, atusb.brd: set solder paste clearance
to 25 um
- atusb.brd: moved component references for proper printing on silk screen
- atusb.brd: moved component values for easy display (do not print on
silk screen !)
- atusb.brd, atusb.cmp: changed all 0402-M to the new 0402
- atusb.brd, atusb.cmp: changed 0603-M to the new 0603
- atusb.brd: updated layout for component changes
- at86rf230.h (REG_BATMON): address is 0x11, not 0x10
- at86rf230.h (TRX_CMD_MASK): width is 5 bits, not 3
- at86rf230.h (CLKM_CTRL_MASK): width is 3 bits, not 2
- at86rf230.h (PA_EXT_EN, IRQ_2_EXT_EN, TX_AUTO_CRC_ON_231): shifted by one
bit
- at86rf230.h (RX_BL_CTRL, AACK_DIS_ACK): added missing field
- at86rf230.h: added fields PA_BUF_LT and PA_LT
- at86rf230.h (ANT_DIV): added fields of this register
- at86rf230.h (NATMON_VTH_SHIFT, NATMON_VTH_MASK): corrected typo
- atrf.sch: replaced the AT86RF230 with the AT86RF231
- atusb.sch, usb.sch, atrf.sch: removed TST signal
- atrf.sch: grounded former TST pin
- atusb.brd: updated for TST removal
- atusb.brd: increased space between SLP_TR and nRST_RF vias
- atusb.brd: connect U2 pin 6 to ground pad
- atusb.sch, usb.sch, atrf.sch, atusb.brd: changed version to 20110104
- atusb.brd: increased RF ground zone by 150 mil in an attempt to reduce
interferences between the the antenna and the rest of the circuit
- atusb.brd: added more vias around and inside the RF ground zone
- atusb.brd: set version to 20110102
Traces leaving a pad on the side may invite solder bridges to "false pads"
exposed at the edges of the chip, with unknown consequences.
- atusb.brd: make trace from P0.0 (IRQ_RF) leave pad at the front, not
at the side
- atusb.brd: make trave from P0.7 (SCLK) leave pad at front, not at the
side
- atusb.brd: nRST may need an external pull-up to VDD. Added via to bring
nRST and VDD within reach (pull-up suggested by Joerg Reisenweber)
- atusb.brd: increased version to 20101229
- atusb.brd: increase clearance between RF clock front ground area and MCU
(ground area acted as solder trap)
- atusb.brd: route nRST_RF trace out of corner (to avoid accidental
contact)
- atusb.brd: don't route VBUS corner trace underneat chip (for general
tidiness)
- atusb.brd: bumped version to 20101219
- atusb.brd: reduced RF front ground area to avoid interconnections very
close to the chip
- atusb.brd: reduced RF power front ground area to avoid interconnections
very close to the chip
- atusb.brd: moved via next to TXRX pad 18 (GND) to make room for making
CLK trace leave the pad at its end, not at its side
- atusb.brd: bumped design date to 20101217
- fw/Makefile: replaced "make" with $(MAKE) (just for style)
- common/Makefile.common: Makefile settings shared within project. For now,
this contains only the board version, which defaults to 2010-12-16.
- fw/common/Makefile, fw/boot/Makefile, fw/atusb/Makefile: include
common/Makefile.common
- fw/common/Makefile, fw/boot/Makefile, fw/atusb/Makefile: pass board
version to cpp and gcc
- fw/atusb/atusb.c (init_io): individually set IRQ_RF to one, LED and TST
to zero
- fw/atusb/atusb.c (init_io): added macros to set all unused pins to zero
in a way that doesn't need updating if a signal moves from one pin to
another
- include/atusb/ep0.h: added hardware type 1 (2010-12-16 design)
- common/config.h: set hardware type depending on board version
- common/io.h: assign pins depending on board version
- atusb/cam2/mkmk: updated for new board
- atusb/cam2/mkmk: further increased board to board spacing, to reduce
board deflection
- atusb/cam2/mkmk: decreased nominal mill diameter to 20 mil to compensate
for board/tool deflection
- atusb/cam2/mkmk: added target "dplot" to visualize the sequence in which
holes are drilled
- mkmk: adjust board position
- mkmk: reorder output such that the edge is cut last, reducing board shift
- mkmk: reduce nominal mill diameter for large holes and slots, to increase
hole/slot size
- mkmk: generate "plot" target in Makefile, to visualize the output
- mkmk: use toolpath file for "cngt" instead of calculating the reference
point manually
Run ./mkmk to generate toolpaths and a Makefile. Then
make cng changes tools (used for drill and mill)
make drill does the drilling
make mill does the milling
- usb.sch: use P0.2 as board revision ID pin
- atrf.sch: label feed line
- atusb.brd: set feed line width via design rule, not as user size
- atusb.brd: increase feed line width from 18 mil to 19 mil (it should be
58 mil, but we don't have room for more)
- atusb.brd: bumped version number to 20101202
- atusb.brd: put version number on PCB
- atusb.sch, usb.sch, atrf.sch: bumped version number to 20101202
- atusb.brd: moved traces into USB plug such that they coincide with
thermal relief
- atusb.brd: moved trace into antenna ground such that it coincides
with thermal relief
- atusb.pro: reduced edge and drawing line width from 15 mil to 5 mil
- atusb.brd: added ground zones on bottom layer
- atusb.brd: moved IRQ_RF and VDD traces for better ground area coverage
- atusb.brd: move antenna to its rightful place
- atusb.brd: added two more GND vias after antenna move
- atusb.brd: added proper board edge
- atusb.brd: added board dimensions (16.3 x 33.2 mm)
- atusb.brd: moved via next to C11 closer to C11 and away from RF section
- atusb/atusb.pro: instead of modules/meander, use experimental ants/meander
- atusb/atusb.pro: typo - it's modules/usb_a_plug_smt, not
modules/usb_a_plug
- atusb/atusb.cmp (ANT1): change antenna from "meander" to "MEANDER-110"
(10% enlarged)
- atusb/atusb.cmp (CON1): change from "miniUSB_B" USB receptacle to
"USB-A-PLUG-SMT" plug
- atusb/atusb.cmp (VR1, VR2, VR3): update value from schematics
We know from CNTR that the capacitance of the 0603 TVS (EPCOS CT0603M4G,
200 pF) is too large and can disturb the USB signal. The 0402 TVS
(Panasonic EZJ-P0V080GA, 100 pF) works much better.
Since we have lots of 0402 components already, just change the remaining
0603 to 0402, too.
- usb.sch (VR1, VR2, VR3): change from 0603 to 0402 and from 5V5 to 5V6
- usb.sch (C1, C2, R1): change from 0603 to 0402
- atrf.sch (R3): set footprint to 0402
- atusb.pro: replaced modules/mini-usb with modules/usb_a_plug
- atusb.pro: removed extension from components/balun-smt6.lib
- atusb.cmp: update footprints for above changes
- atusb.cmp: change 0402 to 0402-M and 0603 to 0603-M, for easier
soldering
This way, we can plug the device into a USB port, like a USB stick.
We use a real plug (instead of shaping the PCB in the form of a plug)
for better mechanical stability.
- atusb.pro: change from components/mini_usb_b to components/usb_a_plug
- usb.sch (CON1): replace MINI_USB_B with USB_A_PLUG
The C2 pads were originally sized for permanently soldering a 100 mil
header. For development, a temporary connection is sufficient. Eventually,
we will just use pogo pins to make this connection.
- usb.sch: changed C2 pads from PAD_120x60 to PAD_60x60
- usb.sch: added comment that pads should be spaced at 100 mil interval
- atusb.sch: removed test points for signals going between USB and RF side
- atusb.sch: TST is no longer a rework item - removed comment saying it is
- atusb.sch, usb.sch, atrf.sch: bumped version number to 100930
- atusb/fw/boot/Makefile: still referred to the project as ATSPI (not ATRF)
in title comment
- atusb/fw/include/atusb/usb-ids.h: still had old atspi path in title comment
- common/io.h: TST is connected to P0_7
- include/at86rf230.h: added test mode registers REG_CONT_TX_0 (0x36) and
REG_CONT_TX_1 (0x3d), with their values
- atspi/atspi.c (set_test_mode): set or reset TST and the LED
- atspi/atspi.c (reset_rf): leave test mode
- atspi/atspi.c (test_mode): enter test mode
- atspi/atspi.c (main): flash the LED when in test mode
- include/atspi/ep0.h (enum atspi_requests), atspi/ep0.c (my_setup): new
command ATSPI_TEST to enter test mode
- include/atspi/ep0.h (EP0ATSPI_MINOR): bumped protocol to version 0.1
- include/at86rf230.h: corrected comment before TRX_CMD field to indicate
that the register is called TRX_STATE
- atusb/atrf.sch (C6, C7): use canonical name 820fF instead of 0.82pF
- atusb/usb.sch (VR1, VR2, VR3): changed value from 5V6 to 5V5 for
compatibility with selected part
- atusb/atusb.sch: commit noise
- atusb/atusb.brd: reloaded for value changes
- atrf/: rename to atusb/
- atrf/wpan-atrf.pro, atrf/wpan-atrf.sch, atrf/wpan-atrf.brd,
atrf/wpan-atrf.cmp: rename to atusb.*
- atrf/Makefile: change ben-wpan to atusb
- atrf/atusb.pro (LastNetListRead): update for name change
- tools/Makefile.common (CFLAGS): change fw/ include location from atrf/
to atusb/