1
0
mirror of git://projects.qi-hardware.com/ben-wpan.git synced 2024-11-27 03:32:49 +02:00
Commit Graph

309 Commits

Author SHA1 Message Date
Werner Almesberger
3cc92cc4a6 atusb/fw/: define USB bus current (40 mA) in board.h based on measured value
The measured values are:

board idle, looping	  9 mA
LED on			+ 5 mA
TX CW (+3 dBm)		+14 mA
			------
			 28 mA
			======

Adding a margin of 12 mA, we get 40 mA. DFU used 30 mA so far, the
application 50 mA.

- board.h (BOARD_MAX_mA): define maximum USB bus current
- descr.c (config_descriptor), usb/dfu.c (config_descriptor):
  use BOARD_MAX_mA for bMaxPower instead of hard-coding values
2011-06-10 19:33:24 -03:00
Werner Almesberger
89d13ce8f8 atusb/fw/: SET_INTERFACE can now select among interfaces (changes user_setup)
- ep0.c (ep0_init), usb/dfu.c (dfu_init): set user_setups[0] instead
  of user_setup
- usb/atu2.c (usb_poll): reset user_setup on bus reset
- usb/usb.h (user_setups), usb/usb.c (user_setups): array of
  interface-specific setup functions
- usb/usb.c (handle_setup): in SET_INTERFACE, select setup function
  from user_setups according to interface
- usb/usb.c (handle_setup): if user_setup is not set (e.g., the
  optional SET_INTERFACE was never issued), fall back to user_setups[0]
2011-06-10 17:12:57 -03:00
Werner Almesberger
256ac01ab2 atusb/fw/board.c (reset_rf): increased 1 us delays to nominally 2 us
They should be at least 625 ns. Can't hurt to have a little tolerance.
2011-06-09 20:55:33 -03:00
Werner Almesberger
ec7c93789a atusb/fw/: added "lazy enabling" of UART-SPI after ATUSB_GPIO
- spi.h (spi_off), spi.c: disable the UART
- spi.c (spi_initialized, spi_begin, spi_init): initialize the UART
  if necessary
- board_app.c (gpio): call spi_off to disable the UART instead of
  open-coding the operation
- board_app.c (gpio): don't explicitly re-enable the UART but defer it
  to the next communication
2011-06-09 14:02:26 -03:00
Werner Almesberger
814cf6fd78 atusb/fw/boot.c (main): reset_rf implies spi_init - no need to call it here 2011-06-09 12:52:51 -03:00
Werner Almesberger
ed6d43bb35 atusb/fw/board_app.c: removed unnecessary includes 2011-06-09 12:51:13 -03:00
Werner Almesberger
e678401ac3 atusb/fw/: split board functions into app-only/shared part (boot overlflowed)
- board.c (timer_h, reset_cpu, read_irq, slp_tr, timer_poll,
  timer_read, gpio): moved to new file board_app.c
- Makefile (OBJS): added board_app.o
2011-06-09 12:48:44 -03:00
Werner Almesberger
b41076135c atusb: include the position of fiducials in atusb-pos.csv (for fab)
The SMT fab was looking there for the positions (alas, in vain).
Seems as good a place as any.

- atusb.brd: bumped file version to 20110607 (didn't change the version
  printed on the layout since the layout itself didn't change)
- atusb.brd: changed fiducials from "virtual" to "normal+insert", to
  include them in the position report
- atusb.brd: renamed the fiducials to give them unique names
- Makefile: bumped fab files version to 20110607
2011-06-07 16:51:26 -03:00
Werner Almesberger
e42203b723 atusb/fw/: new request ATUSB_SLP_TR to pulse SLP_TR
- include/atusb/ep0.h (enum atspi_requests): added ATUSB_SLP_TR
- ep0.c (my_setup): call slp_tr on ATUSB_SLP_TR
- board.h (slp_tr), board.c: pulse SLP_TR high
2011-06-05 22:34:49 -03:00
Werner Almesberger
e6f7d85e8a atudb/fw: disable the UART in ATUSB_GPIO
- board.c (gpio): split GPIO setup and probing
- board.c (gpio): disable the UART while probing GPIOs
2011-06-05 18:27:40 -03:00
Werner Almesberger
370cd320ef atusb/fw: new request ATUSB_GPIO for direct GPIO access
reset_rf now resets all GPIOs to their default state. This way, we
can easily recover from an incomplete or incorrect use of ATUSB_GPIO.

- atusb.c (main), board.c (reset_rf): moved call to spi_init into
  reset_rf
- board.c (reset_rf, board_init): moved GPIO setup to reset_rf
- board.c (reset_rf): set GPIOs to reset defaults
- board.h (gpio), board.c: read/modify/write all settings of GPIO
  ports
- include/atusb/ep0.h (enum atspi_requests): added new request
  ATUSB_GPIO
- ep0.c (my_setup): ATUSB_GPIO reads/reconfigures a GPIO port
2011-06-04 10:29:10 -03:00
Werner Almesberger
b733431847 atusb/fw/ep0.c: fixed ATUSB_SRAM_READ
- ep0.c (my_setup): ATUSB_SRAM_READ is FROM_DEV, not TO_DEV
- ep0.c (my_setup): in ATUSB_SRAM_READ, write setup->wLength bytes,
  not "size" (which is uninitialized)
2011-06-03 14:25:19 -03:00
Werner Almesberger
8c57277953 atusb/fw/: added free-running 48 bit 8 MHz counter for clock measurements
- atusb.c (main): poll the 16 bit timer for overflows
- board.h (timer_poll, timer_read), (board.c (timer_h, timer_poll,
  timer_read, board_init): added support for a free-running 48 bit timer
  (16 bits in hardware, 32 bits in software)
- include/atusb/ep0.h (ATUSB_TIMER), ep0.c (my_setup): new request
  ATUSB_TIMER to retrieve the value of the 8 MHz counter
- include/atusb/ep0.h (enum atspi_requests): describe what the groups
  of requests do
2011-05-29 21:05:28 -03:00
Werner Almesberger
8a436b8abd atusb/: swapped C10 and C13 in schematics, to match layout
- atrf.sch: C10 (EVDD bypass) and C13 (DEVDD bypass) had their roles
  swapped in the layout. Swapped them in the schematics to match the
  layout.
- atusb.brd: updated the netlist
- atusb.sch, usb.sch: commit noise
2011-05-27 04:29:01 -03:00
Werner Almesberger
926ed26188 atusb: varistor Vdc was off by 100 mV; made it clearer that we use Vdc, not Vb
- 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#
2011-05-19 14:23:33 -03:00
Werner Almesberger
b82db55f4a atusb/fw/Makefile: new target "update" to update the application via DFU
- Makefile (USB_ID, dfu): moved USB ID to variable, for sharing
- Makefile (.PHONY, update): new target to reset atusb and to DFU new
  firmware
2011-05-11 05:29:54 -03:00
Werner Almesberger
85f60de9d5 atusb/fw: use the unique serial number of the ATmega8/16/32U2 for iSerialNumber
- 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
2011-05-10 17:23:08 -03:00
Werner Almesberger
fd91546c59 atusb/fw/Makefile (dfu): our functional descriptor is fine, no need for -t
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.
2011-05-10 11:53:32 -03:00
Werner Almesberger
ddd0022350 atusb/fw/boot.c (main): don't time out until there is an application
This prevents the boot loader from resetting all the time and makes
it easier to "catch" it with dfu-util.
2011-05-10 11:51:46 -03:00
Werner Almesberger
fc1a334bf6 atusb/fw/usb/dfu.c (dfu): lowered bwPollTimeout from 1 s to 100 ms and explained why 2011-05-10 08:32:12 -03:00
Werner Almesberger
42dae8dde2 atusb/fw: implemented ATUSB_RESET
- 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
2011-05-09 23:52:00 -03:00
Werner Almesberger
6179f31fc0 atusb/fw/README: boot loader flashing time was a bit too optimistic (15 -> 30 s) 2011-05-09 23:44:51 -03:00
Werner Almesberger
1f99435bba atusb/fw/README: updated for complete firmware upload process 2011-05-09 22:06:33 -03:00
Werner Almesberger
0db361d49d atusb/fw/Makefile (dfu): pass transfer size to hide DFU non-compliance
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.
2011-05-09 22:02:28 -03:00
Werner Almesberger
eeb3af6a03 atusb/fw: fixed USB bus reset handling by software
- usb/atu2.c (ep_init): moved before usb_poll
- usb/atu2.c (usb_poll): register bit was used as mask, not as shift
- usb/atu2.c (usb_poll): call ep_init on USB bus reset
- usb/atu2.c (usb_reset): don't make USB bus reset force a hardware reset
- Makefile (.PHONY, dfu): new target to upload the application with DFU
2011-05-09 21:13:41 -03:00
Werner Almesberger
c5992bc675 atusb/fw/Makefile (.PHONY): added development-only phony targets 2011-05-09 21:12:26 -03:00
Werner Almesberger
f4342f49ae atusb: enlarged USB positioning pin hole; general cleanup
- modules/usb_a_plug_smt.fpd: enlarged hole for positioning pins from
  1.1 mm to 1.15 mm
- atusb/usb.sch, atusb/atusb.cmp, atusb/atusb.brd: removed trailing space
  from CON1's value
- atusb/atusb.sch, atusb/usb.sch, atusb/atrf.sch: schematics title still
  said AT86RF230, not 231
- atusb/README-SMT: corrected a typo
- atusb/README-PCB: specified the tolerance of the hole for the positioning
  pins of the USB connector
- atusb/README-PCB: added the 16-17 mm hole for the USB connector to the
  specification
- atusb/: bumped all version numbers to 20110330
2011-03-31 03:27:11 -03:00
Werner Almesberger
6487c32387 atben/README-PCB, atusb/README-PCB: clarifications regarding holes
- atben/README-PCB, atusb/README-PCB: illustrations now contain holes
- atben/README-PCB, atusb/README-PCB: clarified distinction antenna via
  vs. hole
2011-03-29 07:53:03 -03:00
Werner Almesberger
74706cfae8 atusb.brd: updated USB-A-PLUG-SMT footprint (fped put the layers wrong) 2011-03-24 21:19:08 -03:00
Werner Almesberger
6ff2740e9b atusb.brd: moved FIDUCAL label away from mounting hole; bumped version number
- atusb.brd: "FIDUCIAL" label was on hole; moved it
- atusb.brd: bumped version to 110325
2011-03-24 13:17:04 -03:00
Werner Almesberger
269f77079a added the front solder paste to the PCB fab package (for stencil production)
- atben/README-PCB, atusb/README-PCB: added *-SoldP_Front.gtp
- makefiles/Makefile.kicad (GERBERS): added $(NAME)-SoldP_Front.gtp
- makefiles/Makefile.kicad (gerbv): also show the board edge
2011-03-24 13:12:00 -03:00
Werner Almesberger
1c4c78e110 atusb.brd: added two vias to connect front and back ground at USB shield 2011-03-24 12:45:35 -03:00
Werner Almesberger
38bea8ec54 README-SMT: various small clarifications
- atben/README-SMT, atusb/README-SMT: added "component to "orientation"
- atben/README-SMT, atusb/README-SMT: added "drawings" to "footprint
  reference"
- atben/README-SMT, atusb/README-SMT: mention once more that the automatic
  insertion file is for the front only
2011-03-24 12:18:14 -03:00
Werner Almesberger
f242368deb atben. atusb: bumped version numbers to 110324 2011-03-24 05:07:50 -03:00
Werner Almesberger
af6d563194 README-PCB: relaxed antenna via size from 8 mil to <= 15 mil 2011-03-24 00:26:10 -03:00
Werner Almesberger
7e20be97dc atben.brd, atusb.brd: set solder mask opening of fiducials to 2 mm
- atben/atben.brd, atusb/atusb.brd: set solder mask clearance of fiducials
  to 0.1 mil, so that the real solder mask opening has a diameter of
  almost) exactly 2 mm (instead of 2 mm plus 10 mil)
2011-03-23 23:46:44 -03:00
Werner Almesberger
16ac7e5f4b miscellaneous integration of fiducials
- atben/atben.brd, atusb/atusb.brd: set insertion of fiducials to
  "virtual"
- makefiles/Makefile.kicad ($(NAME)-footprints.pdf): added FIDUCIAL
2011-03-23 17:44:59 -03:00
Werner Almesberger
7a9e5185b9 atusb: added two fiducial marks
- atusb.pro: added fiducial.mod
- atusb.brd: added two fiducial marks
- atusb.brd: adjusted RF and RF power ground zones
- atusb.brd (CON1): moved component reference out of the way
- atusb.brd: bumped version to 110323
2011-03-23 13:08:48 -03:00
Werner Almesberger
c3357216a5 atusb/atusb.brd: some more silk screen cleanup
- atusb.brd (C22): properly aligned reference with component center
- atusb.brd (P11, P12, P13, P14): moved reference below the pad, for
  consistency with P15 and P16
- atusb.brd (CON1): centered the component reference
2011-03-23 12:48:34 -03:00
Werner Almesberger
2aed5153ca generate SMT fab package
- makefiles/Makefile.kicad ($(NAME)-PCB_Edges.dxf, $(NAME).drl): since we
  now name the files explicitly, we need to generate them explicitly as
  well
- makefiles/Makefile.kicad (upload): added SMT fab package
- atben/Makefile (VERSION), atusb/Makefile (VERSION): bumped fab file
  version to 110323
2011-03-23 04:57:32 -03:00
Werner Almesberger
507e6c33de added project-specific footprint reference for SMT fab
- makefiles/Makefile.kicad: added generation of a footprint reference
- atben/README-SMT, atusb/README-SMT: added footprint reference, with
  explanation
2011-03-23 04:47:21 -03:00
Werner Almesberger
2e5329039c include overview images in PCB and SMT fab packages
- atben/README-PCB, atusb/README-PCB: added overview images for PCB front
  and back
- atben/README-SMT, atusb/README-SMT: added overview image for PCB front
- atben/README-SMT, atusb/README-SMT: clarified that the Gerbers are in
  the PCB archive
- makefiles/Makefile.kicad (PCB_FILES): moved list of gerbers to
  $(GERBERS)
- makefiles/Makefile.kicad (gerber): generate Gerbers only if necessary
- makefiles/Makefile.kicad (overview, uoverview, clean): renamed
  overview.png to $(NAME)-overview.png and turned phony target into file
  target
- makefiles/Makefile.kicad ($(NAME)-front.png, $(NAME)-back.png, clean):
  added generation of front and back images
2011-03-23 01:57:55 -03:00
Werner Almesberger
d53c2c2b72 added generation of SMT fab file package (in progress)
- atben/README-SMT, atusb/README-SMT: description for SMT fab files
- bom/Makefile (%-smt.csv, spotless): renamed *-smt.csv to *-bom.csv
- makefiles/Makefile.kicad (fab): split into "fab" (PCB and SMT) and
  fab-pcb (previous "fab"; only PCB)
- makefiles/Makefile.kicad (fab-smt): added packaging process for SMT
  fab files
2011-03-23 01:31:34 -03:00
Werner Almesberger
0782a3ce98 atusb: updated QFN footprints and version
- atusb.brd (U1, U2): updated QFN32-VHHD-2 and QFN32-VHHD-6 footprints
  (for solder paste size change)
- atusb.brd, Makefile (VERSION): bumped version number to 110322
2011-03-22 12:58:12 -03:00
Werner Almesberger
936d8076d9 atben, atusb: added comments specifying the grid sizes
- atben/atben.brd: added comment that grid is 0.1 mm
- atusb/atusb.brd: added comment that grid is 5 mil
2011-03-22 12:37:16 -03:00
Werner Almesberger
6caa0d36ab consolidated atben/Makefile and atusb/Makefile into common template
- makefiles/Makefile.kicad: common template for (some) KiCad projects
- atben/Makefile, atusb/Makefile: use makefiles/Makefile.kicad
2011-03-22 12:37:16 -03:00
Werner Almesberger
0960497602 atben, atusb: added Makefile targets to generate "pretty" overview images
- Makefile (overview): run prettygerbv to generate an overview image
- Makefile (uoverview): copy the overview image to
  downloads.qi-hardware.com and version it
- Makefile (clean): remove overview.png
2011-03-22 10:29:45 -03:00
Werner Almesberger
f1586fffd5 atben, atusb: updated back solder mask status (it's no longer empty)
- atben/Makefile (gerbv), atusb/Makefile (gerbv): show also the back
  solder mask layer
- atben/README-PCB, atusb/README-PCB: don't claim the back solder mask
  is empty
2011-03-22 10:03:19 -03:00
Werner Almesberger
44b49fd054 atusb.brd: more silk screen cleanup
- atusb.brd (R3): aligned reference with center of component
- atusb.brd (C16): moved component reference to less crowded place
2011-03-22 06:52:57 -03:00
Werner Almesberger
ef606f5df9 atusb.brd: some more component reference adjustments
- atusb.brd (P15, U1, VR3): moved to less crowded locations
2011-03-22 04:57:20 -03:00
Werner Almesberger
64a746b58d atben, atusb: set solder mask clearance to 5 mil and adjusted silk screen
- atben.pro, atusb.pro: set solder mask clearance to 5 mil
- atben.brd, atusb.brd: reduced silk screen outline of 0402 components
  from 5 to 3 mil
2011-03-22 03:22:39 -03:00
Werner Almesberger
18b2b919dc atben, atusb: always invoke KiCAD with absolute paths lest .pro be ignored
- atben/Makefile, atusb/Makefile (SCH, BRD): abstract path to .sch and
  .brd via variables
- atben/Makefile, atusb/Makefile (gerber, fab): pass absolute path to
  board file to pcbnew
- atben/Makefile, atusb/Makefile (gerber): put all options before the
  file name argument
2011-03-22 02:21:26 -03:00
Werner Almesberger
f17bcebce7 atusb: moved measurements to Drawings and merged Comments into silk screen
- atusb.brd: enabled Drawings layer
- atusb.brd: moved board dimensions to Drawings layer
- Makefile (clean): added $(NAME)-Drawings.gbr
- Makefile (GMERGE, gerber): use "gmerge" to merge Comments (which now
  only contains the component references) into SilkS_Front
- Makefile (gerbv): Comments is now redundant; removed it
2011-03-15 01:43:08 -03:00
Werner Almesberger
83d47a8826 atusb/Makefile (spotless): new target to also remove KiCAD "junk" files 2011-03-15 00:25:10 -03:00
Werner Almesberger
1cb69d1569 atusb.brd: changed version from 110314 to 110314
- Makefile (VERSION): bumped version from 110314 to 110314
- atusb.brd: bumped version on copper and re-generated version on silk
  screen
- atusb.brd: bumped version in board meta-data
2011-03-14 21:43:53 -03:00
Werner Almesberger
eac6e3c70b atben/README-PCB, atusb/README-PCB: various minor clarifications
- README-PCB: added imperial units for board thickness
- README-PCB: changed surface finish recommendation to prefer ENIG more
  strongly
- README-PCB: removed instructions for Gerber file generation from
  "interpretation of files section"
- README-PCB: mention common coordinate system origin
2011-03-14 21:31:55 -03:00
Werner Almesberger
6b3a049003 atben: set origin for fab files to lower left corner of board
- atusb/Makefile (gerber, fab): use pcbnew with --origin=aux for Gerber,
  drill, and DXF
- atusb/atusb.brd: set auxiliary origin to lower left corner of board
2011-03-14 13:27:15 -03:00
Werner Almesberger
695f6c2d57 atusb: use cptx to copy the version number to the silk screen
- Makefile (cptx): new target to update the version number on the silk
  screen
- atusb.brd: duplicated the version number from the back copper on the
  front silk screen
- atusb.brd: moved author tag to make room for front version number
2011-03-14 13:26:54 -03:00
Werner Almesberger
34d236cb38 atusb.brd (B1): moved component reference which overlapped with circle 2011-03-14 02:22:40 -03:00
Werner Almesberger
c06ed9e60f atusb.brd: specified which components to place (for SMT fab)
- atusb.brd (ANT1, P11...P16): marked as "virtual"
- atusb.brd (C16): marked as "normal" (not "normal+insert")
2011-03-14 02:18:54 -03:00
Werner Almesberger
970695c472 atben, atusb: added polarity markers
- atben.brd (B1), atusb.brd (B1): marked pin 1 location with a circle
- atusb.brd (D1): marked anode with a plus sign and moved the component
  reference
2011-03-14 02:14:11 -03:00
Werner Almesberger
fffa6e9867 atben/atusb: added -pcb to PCB fab archives; added "upload" target
- atben/Makefile (fab), atusb/Makefile (fab): changed name of PCB fab
  archives from $(NAME)-$(VERSION)... to $(NAME)-pcb-$(VERSION)...
- atben/Makefile (upload), atusb/Makefile (upload): new target to
  upload PCB fab archives to
  http://downloads.qi-hardware.com/people/werner/wpan/fab/
2011-03-14 00:33:40 -03:00
Werner Almesberger
cdf3825d24 atusb: added fab file generation, like in atben
- Makefile (VERSION, DIR): added board version and parent directory name
- Makefile: added generation of Gerbers and other fab files
- Makefile (gen): this never worked, changed --plot to --plot=ps
- Makefile: added section titles
- README-PCB: PCB making instructions
2011-03-12 23:43:00 -03:00
Werner Almesberger
d233c04c86 atusb/fw: implemented USB bus reset (to host) and polling of reset from host
- usb/usb.h, usb/atu2.c (usb_reset): reset the USB bus by detaching and
  re-attaching the device
- boot.c (main): force a USB reset before running the payload
- usb/atu2.c (usb_poll): test for USB reset from the host (in progress)
- usb/dfu.c (my_reset, dfu_init): register user USB reset handler
2011-03-11 17:56:41 -03:00
Werner Almesberger
e5571a26c3 atusb/fw/usb/atu2.c (handle_ep): cancel RX/TX if we receive a SETUP 2011-03-11 17:56:41 -03:00
Werner Almesberger
c265151d2b atusb/fw: introduced function flash_end_write to properly finish flashing
- dfu.h (flash_end_write), flash.c (flash_end_write): write any incomplete
  buffer
- flash.c (flash_write, flash_end_write): call boot_rww_enable only at the
  very end, it won't erase our buffer in mid-page
- usb/dfu.c (my_setup): call flash_end_write at the end of a download
2011-03-11 17:56:41 -03:00
Werner Almesberger
2978afe92b atusb/fw/flash.c: simplified logic of flash_write and corrected several small bugs
- flash.c (flash_write): we don't use eeprom_busy_wait, removed it
- flash.c (flash_write): write the page only at one place
- flash.c (flash_write): corrected the address of the page write
- flash.c (flash_write): value being added to word wasn't shifted
2011-03-11 17:56:41 -03:00
Werner Almesberger
553c981551 atusb/fw/flash.c: implemented flash_can_write and flash_read (were stubs) 2011-03-11 17:56:41 -03:00
Werner Almesberger
f87bdce41f atusb/fw/Makefile: added auxiliary Flash programming target (for development)
- Makefile (prog-app): flash the application, without the boot loader
- Makefile (prog-read): retrieve the Flash content
2011-03-11 16:24:49 -03:00
Werner Almesberger
e29046d19b atusb/fw/Makefile (prog): corrected boot loader size in hfuse 2011-03-11 16:23:42 -03:00
Werner Almesberger
edfb8a94eb atusb/fw/Makefile: clean up handing of boot loader base address
- Makefile (BOOT_ADDR, boot.elf): use variable instead of hiding the
  address in a command
- Makefile (CFLAGS): pass BOOT_ADDR as a macro
- Makefile: removed commented-out application flashing code
2011-03-11 16:21:39 -03:00
Werner Almesberger
b5fd6e3132 atusb/fw/Makefile: lock fuse refuses 0xef; set it to 0x2f to pass verification 2011-03-09 03:11:15 -03:00
Werner Almesberger
b8fc1a7f54 atusb/fw/flash.c: added basic writing support (untested) 2011-03-09 02:02:05 -03:00
Werner Almesberger
1dcc83391e atusb/fw/Makefile: put -mmcu into CFLAGS so that DEPEND uses it, too
- Makefile ($(NAME).elf, boot.elf, %.o): don't pass -mmcu explicitly
- Makefile (CFLAGS): include -mmcu, so that it's also picked up by
  $(DEPEND)
2011-03-09 01:45:35 -03:00
Werner Almesberger
6ac82fc6c9 atusb/fw/README: avr-libc 1.17.1 has been released 2011-03-09 01:36:18 -03:00
Werner Almesberger
341b348ac0 atusb/fw/Makefile (clean): also remove the boot loader 2011-03-09 00:57:01 -03:00
Werner Almesberger
e8bed1f3c1 atusb/fw/: flash a boot loader instead of the application (in progress)
- 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
2011-03-09 00:41:32 -03:00
Werner Almesberger
f91738c306 atusb/fw/usb/: adapted DFU engine to current stack and abstracted Flash ops
- 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 ?
2011-03-08 19:10:58 -03:00
Werner Almesberger
fb2204ad84 usb/: added DFU implementation from f386base/fw/boot/ (unported) 2011-03-08 19:05:26 -03:00
Werner Almesberger
0676bef2c1 usb/fw/atusb.c (main): removed 100 ms LED flash 2011-03-08 19:03:25 -03:00
Werner Almesberger
79b5daf5a4 atusb/fw/: moved USB IDs from descr.c to board.h
- descr.c (USB_VENDOR, USB_PRODUCT): moved to board.h
- descr.c: include board.h
2011-03-08 19:01:54 -03:00
Werner Almesberger
0293911fed atusb/fw/usb/: corrected type of user-provided descriptor
- usb.h, usb.c (user_get_descriptor): "reply" is simply "const uint8_t *",
  not "const uint8_t * const *"
2011-03-08 18:56:52 -03:00
Werner Almesberger
4759ea6f0c atusb/fw/atusb.c (main): enabled blinking the LED for the prototypes 2011-03-04 21:51:18 -03:00
Werner Almesberger
2f85fa9d14 atusb/fw/Makefile: abstract host so that one can use HOST=ben instead of jlime 2011-03-04 21:50:01 -03:00
Werner Almesberger
313fb7c190 atusb/fw/Makefile (CFLAGS): simplify -I../fw/include to -Iinclude 2011-02-22 00:24:53 -03:00
Werner Almesberger
78cfc8ffeb moved atusb/fw3/ to atusb/fw/ 2011-02-22 00:24:07 -03:00
Werner Almesberger
2642b9e1c3 atusb-sil/: moved C8051F326-related material out of atusb/
- 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/
2011-02-22 00:17:13 -03:00
Werner Almesberger
125055b0fe Updates CAM processes of various sub-projects
- 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
2011-02-21 23:31:04 -03:00
Werner Almesberger
c3ac7d9cb8 atusb/fw3/README: build instructions for firmware and prerequisites 2011-02-18 09:53:48 -03:00
Werner Almesberger
81818ca61a atusb.brd: moved some component refernces to improve visual appearance 2011-02-14 23:32:10 -03:00
Werner Almesberger
3bdc2da53c atusb/fw2/usb/: clean up comments left over from C8051F326
- usb.c, atu2.c: removed reference to C8051F326 reference stack
- usb.c, atu2.c: updated list of known issues
2011-02-14 12:54:29 -03:00
Werner Almesberger
10fb0146c3 fw3/: remove probably useless RF debug output code from board.c
- board.h, board.c: removed rf_init, rf_send, and "wr"
2011-02-14 12:49:44 -03:00
Werner Almesberger
f9f0d16f6e atusb/fw3/: added copyright headers and title comments 2011-02-14 12:48:42 -03:00
Werner Almesberger
96f0f2cfc9 atusb/fw2: removed FreakUSB-based firmware 2011-02-14 12:06:04 -03:00
Werner Almesberger
983d330294 atusb/fw3: split USB driver into chip-specifc and general part
- 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
2011-02-14 12:01:11 -03:00
Werner Almesberger
908e04c309 atusb/fw3: added proper versioning
- 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
2011-02-14 11:26:17 -03:00
Werner Almesberger
23f84bc8b0 atusb/fw3/: tighten compiler warnings
- Makefile (CFLAGS): tighten -Wno-unused to -Wno-unused-parameter
- usb/usb.c (handle_ep): removed unused variable "res"
2011-02-14 10:22:51 -03:00
Werner Almesberger
57b908d261 atusb/fw3: renamed usb2/ to usb/ in move away from FreakUSB
- 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)
2011-02-14 10:14:06 -03:00
Werner Almesberger
fa99266fc9 atusb.brd: update and silk screen cleanup
- atusb.brd: updated for schematics changes
- atusb.brd: rearranged component references and values for
  printing/display
- atusb.brd: bumped version to 20110214
2011-02-14 02:11:41 -03:00
Werner Almesberger
138a1beeff atusb: slightly adjusted some component values for easier sourcing
- 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
2011-02-14 01:55:46 -03:00
Werner Almesberger
da6677b3d9 atusb/fw3/: adaptation of the f32xbase USB stack 2011-02-13 23:46:36 -03:00
Werner Almesberger
f4d299d22b atusb/fw3/an/: USB debugging scripts 2011-02-13 23:00:35 -03:00
Werner Almesberger
c1dc00ee44 fw2/Makefile: dependencies, verbosity control, cleanup
- Makefile (SHELL): require bash for PIPESTATUS used for dependencies
- Makefile: added copyright header
- Makefile: added section titles
- Makefile: added verbosity control
- Makefile: added automatic dependency generation
- Makefile (clean): also remove .d files
2011-02-11 09:42:21 -03:00
Werner Almesberger
075c379d21 fw2/Makefile: cleaned up FreakUSB object file location
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
2011-02-11 09:10:53 -03:00
Werner Almesberger
85612e5150 fw2/Makefile: use the ATmega32U2 configuration (experimental) of avrdude
- Makefile (prog): use $(CHIP) instead of $(CHIP_AVRDUDE)
- Makefile (CHIP_AVRDUDE): removed
2011-02-11 08:53:11 -03:00
Werner Almesberger
f8fbb02bb0 atusb/fw2: further abstract board functions
- 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
2011-02-10 20:49:23 -03:00
Werner Almesberger
509542af73 atusb.brd: draw in bottom edge by 5 mil to prevent touching the connector 2011-02-10 14:40:56 -03:00
Werner Almesberger
69684413ad atusb.brd: small layout improvements, mainly for solderability
- 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)
2011-02-10 14:10:15 -03:00
Werner Almesberger
e8b68041a5 atusb/fw2: autonomously restore the clock output settings after an RF reset
- atusb.c (main), board.c (set_clkm): moved CLKM initialization to
  board.c
- board.c (reset_rf): initialize the CLKM after each transceiver reset
2011-02-10 10:05:38 -03:00
Werner Almesberger
3e9f9613cb atusb/fw2: added proper support for interrupt polling
- 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
2011-02-10 07:42:34 -03:00
Werner Almesberger
dcfa689936 atusb/fw2/: assigned hardware revision code point; some cleanup
- 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
2011-02-10 07:24:37 -03:00
Werner Almesberger
4f0af39d4d atusb/fw2/: move board-specific items to board-specific file
- 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
2011-02-10 07:19:55 -03:00
Werner Almesberger
6969e7d689 atusb/fw2/ep0.c: make commands needed for sending work
- 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
2011-02-10 07:01:28 -03:00
Werner Almesberger
dadc683d71 atusb/cam/mkmk: updated board parameters for latest run
This sort of data really ought to live somewhere locally ...
2011-02-10 06:50:22 -03:00
Werner Almesberger
ec21e4ba47 atusb/fw2: support device -> host side of the ATUSB EP0 protocol
- ep0.c: the ATUSB EP0 protocol engine
- Makefile (OBJS): added ep0.o
- atusb.c (main): initialize the EP0 protocol
- spi.h: whitespace cleanup

usb/patches/support-vendor-requests.patch:

- usb/ctrl.c (ctrl_handler): also pass vendor-specific requests to the
  class handler
- class/CDC/cdc.c (cdc_req_handler): reject vendor requests
2011-02-08 23:53:25 -03:00
Werner Almesberger
06f6174966 fw2/usb/patches/correct-array-size.patch: correct memset in ctrl_get_status
This caused lsusb -v to fail with
cannot read device status, Broken pipe (32)
2011-02-08 23:16:09 -03:00
Werner Almesberger
1c004ee2d2 atusb/fw2: moved board-specific functions (SPI, RF reset) out of main()
- 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
2011-02-08 21:32:24 -03:00
Werner Almesberger
259400fdb8 atusb/fw2: firmware for the AVR-based atusb (in progress)
- ./: 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
2011-02-08 19:32:15 -03:00
Werner Almesberger
847b3546d9 usb.sch: cleanup and track layout
- usb.sch: cleaned up programming/auxiliary/LED signals
- usb.sch: swapped LED and nRST_RF (tracking the layout)
- atusb.brd: updated for corrected netlist
2011-01-31 11:52:30 -03:00
Werner Almesberger
8e842bab8e atusb.brd: ground zone adjustments; corrected date code location
- 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
2011-01-31 11:41:07 -03:00
Werner Almesberger
ebaffb53e4 usb.sch: corrected symbol name 2011-01-31 05:08:36 -03:00
Werner Almesberger
d8dfb509ac atusb: new layout for the ATmega32U2
- 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
2011-01-31 04:57:02 -03:00
Werner Almesberger
318f29c5d5 atusb: cleaned up USB schematics
- 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
2011-01-28 03:54:38 -03:00
Werner Almesberger
6aa4e30833 atusb: replaced the C8051F326 with an ATmega32U2 (still needs cleanup)
- 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)
2011-01-28 03:42:35 -03:00
Werner Almesberger
e6b0ee5655 atusb/cam/mkmk: updated for latest board parameters 2011-01-28 02:05:52 -03:00
Werner Almesberger
50bd38c13e atusb/cam/mkmk: move project name to central NAME variable
Also prematurely updated alignment, oops.
2011-01-23 15:51:16 -03:00
Werner Almesberger
dda673e8bf atusb.brd: updated balun footprint
- atusb.brd: updated 0805-6 footprint of the balun and rearranged its
  surroundings accordingly
2011-01-23 15:23:38 -03:00
Werner Almesberger
daaac58f88 atben, atusb: set solder mask and solder paste clearances to NXP's values
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
2011-01-23 11:43:08 -03:00
Werner Almesberger
b0a5a0cad7 atusb.brd: some more cleanup after checking the gerbers
- atusb.brd: enabled back solder mask layer, just in case
- atusb.brd: rearranged references and values for printing/display
2011-01-23 11:25:53 -03:00
Werner Almesberger
83b903d71b atben.brd, atusb.brd: added design name (ATBEN, ATUSB) to silk screen text 2011-01-23 01:50:49 -03:00
Werner Almesberger
bcc8ea7f2f atusb.sch, atrf.sch, usb.sch, atusb.brd: bumped version to 20110123 2011-01-23 01:48:31 -03:00
Werner Almesberger
1b5abff8ba atusb.brd: added title, origin, and license on silk screen layer 2011-01-23 01:42:03 -03:00
Werner Almesberger
1f959d9873 atusb: updated C8051F326 and AT86RF321 footprints
- usb.sch, atusb.cmp, atusb.brd: updated C8051F326 footprint
- atrf.sch, atusb.cmp, atusb.brd: updated AT86F231 footprint
- atusb.brd: redid some traces that mysteriously got disconnected
2011-01-23 01:32:14 -03:00
Werner Almesberger
1d2fdb34c6 atusb.brd: rearranged component references and values for printing/display
- 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 !)
2011-01-22 13:39:25 -03:00
Werner Almesberger
30aff8160b atusb: introduced optional antenna matching capacitor
- atrf.sch (C16): optional antenna matching capactor (typ. 0.5 pF)
- atben.cmp, atben.brd: added C16
2011-01-22 13:22:58 -03:00
Werner Almesberger
836c89e8fd atusb: replaced old chip components with updated ones
- 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
2011-01-22 12:53:47 -03:00
Werner Almesberger
478f600502 atben/Makefile (clean), atusb/Makefile (clean): remove Gerbers 2011-01-17 22:40:15 -03:00
Werner Almesberger
af4ce1f5f9 atusb.brd: removed unused Adhesive Front layer 2011-01-17 22:38:19 -03:00
Werner Almesberger
7d91ee60c6 atusb/Makefile: replaced board name by $(NAME) or pattern 2011-01-17 22:35:55 -03:00
Werner Almesberger
2c96bcb85a atben/atben.brd, atusb/atusb.brd: updated PAD_60x60 to update pad type 2011-01-17 22:29:09 -03:00
Werner Almesberger
c6532c7435 meander.fpd: use new pad type "trace" without solder paste and mask opening
- ants/meander.fpd: changed all pads from "normal" to "trace"
- atben/atben.brd, atusb/atusb.brd: updated MEANDER-110
2011-01-17 22:18:51 -03:00
Werner Almesberger
766b5759ea atusb/Makefile: removed claim that zones have to be filled in the .brd file 2011-01-08 09:46:24 -03:00
Werner Almesberger
309a5ed6d5 atusb/fw/include/at86rf230.h: make 231-centric
- at86rf230.h (TX_AUTO_CRC_ON): changed to TX_AUTO_CRC_ON_230
- at86rf230.h (TX_AUTO_CRC_ON_231): changed to TX_AUTO_CRC_ON
- tools/atrf-txrx/atrf-txrx.c: updated for above changes
2011-01-07 14:31:27 -03:00
Werner Almesberger
f67a79b04e atusb/fw/include/at86rf230.h: many corrections, some additions
- 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
2011-01-07 14:29:00 -03:00
Werner Almesberger
4387d844dc atusb/fw/include/at86rf230.h: added remaining AT86RF231 values 2011-01-07 11:52:45 -03:00
Werner Almesberger
bd5b008c44 atusb/fw/include/at86rf230.h: make one section per register, not one per field
Looked too confusing.
2011-01-07 09:16:51 -03:00
Werner Almesberger
337e5d227d atusb/fw/include/at86rf230.h: started updates for AT86RF231 2011-01-07 09:11:29 -03:00
Werner Almesberger
b44e731ee1 atusb/atrf.sch: defined footprint of B1 (0805-6) 2011-01-04 01:43:16 -03:00
Werner Almesberger
9f8a77e879 atusb: switched from the AT86RF230 to the AT86RF231, added missing RF ground
- 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
2011-01-04 01:19:54 -03:00
Werner Almesberger
155dfba7ec atusb/cam/mkmk: update for on-going work; showcase use of "rotate" 2011-01-03 23:11:00 -03:00