1
0
mirror of git://projects.qi-hardware.com/ben-wpan.git synced 2024-07-01 03:58:55 +03:00
Commit Graph

65 Commits

Author SHA1 Message Date
Werner Almesberger
c7303e4ac1 Made communication with CNTR board more robust. Added documentation.
- cntr/README: description of the counter board and its application
- cntr/fw/common/crc32.c: variant of CRC32-IEEE802.3 shared by firmware and
  measurement application
- cntr/fw/cntr/ep0.c (my_setup), cntr/tools/cntr/cntr.c (get_sample):
  protect the counter value with a CRC and an one's complement copy
- cntr/fw/include/cntr/ep0.h: oops, wasn't checked into repository
- cntr/tools/cntr/cntr.c: added section titles
- cntr/tools/cntr/cntr.c (measure): show communication statistics at the end
- cntr/tools/cntr/cntr.c (measure, usage, main): new option -d to enable
  reporting of communication errors
- cntr/tools/cntr/cntr.c (set_stop, measure): let user stop measurement with
  SIGINT
- cntr/tools/cntr/cntr.c (measure): get multiple "first samples" and keep
  the one with the shortest round-trip time
- cntr/tools/cntr/cntr.c (measure): changed unit "ppk" (1/1000) to percent
  (1/100)
- cntr/tools/cntr/cntr.c (usage, main): command-line argument is now the
  accuracy goal, while the system clock deviation is set with the new
  option -c
- TODO: some more things to do
2010-08-25 18:47:45 -03:00
Werner Almesberger
4d49921b9b Added user-space counter utility.
- cntr/tools/Makefile: the usual recursive Makefile
- cntr/tools/cntr/Makefile, cntr/tools/cntr/cntr.c: user-space tool to
  periodically read the free-running counter and to calculate frequency
  and deviation from it
2010-08-25 06:40:03 -03:00
Werner Almesberger
81ab679fbd The parasitic capacitance of the three probe input pins and R1 formed a
quite formidable low-pass filter that almost completely eliminated the
1 MHz signal.

- cntr/cntr.sch, cntr/cntr.brd: changed R1 from 100k to 1k to increase
  input bandwidth
2010-08-25 06:36:02 -03:00
Werner Almesberger
3584b5b736 Got "cntr" to show signs of life. It was the watchdog, as usual.
- TODO: "cntr" now makes it to DFU and beyond
- atrf/fw/common/config.h (PLATFORM_SETUP): rename to PLATFORM_ENTER
- cntr/fw/common/config.h (PLATFORM_SETUP): rename to PLATFORM_ENTER and
  make the new PLATFORM_SETUP turn off the watchdog
2010-08-25 04:35:18 -03:00
Werner Almesberger
bb7b049f00 Literature consistently calls the Link Quality Indication LQI, not LQ. So do
we now.

- atrf/fw/atspi/ep0.c: changed LQ to LQI in comments
- atrf/tools/atspi-txrx/atspi-txrx.c (receive): changed LQ to LQI in comment
  and in diagnostic output
2010-08-24 21:14:02 -03:00
Werner Almesberger
8f744bba63 Minor potential improvements of USB robustness.
- atrf/fw/atspi/atspi.c (main): add a delay to give the host more time to
- atrf/fw/atspi/descr.c: we don't use EP1, so simplify the descriptors we
  send. Keep the EP1 descriptors around (commented out) in case  we need
  them later, e.g., for interrupts.
2010-08-24 21:12:57 -03:00
Werner Almesberger
c01a5e0b7a Added list of to do items and known bugs. 2010-08-24 18:32:30 -03:00
Werner Almesberger
2514804a79 Setting the transmit power was broken. (And LQ works, by the way.)
- atrf/tools/atspi-txrx/atspi-txrx.c (set_power): don't wrap around at
  minimum power to maximum power
2010-08-24 07:17:42 -03:00
Werner Almesberger
73043a52ea Finished and tested TX/RX. (LQ doesn't work yet, the rest does.)
- Makefile.recurse (all): reorder DIRS and TARGET_ONLY_DIRS, so that
  tools/lib/ gets built before the tools that depend on it
- atrf/fw/atspi/ep0.c (do_buf_write): removed duplicate sending of
  AT86RF230_BUF_WRITE
- atrf/fw/atspi/ep0.c (my_setup): generate the PHR in ATSPI_BUF_WRITE
  instead of expecting the host to send it
- atrf/fw/atspi/ep0.c (my_setup): don't send the PHR to the host in
  AT86RF230_BUF_READ
- atrf/fw/include/at86rf230.h (REG_TR_PWR): should be REG_PHY_TX_PWR
- atrf/tools/Makefile: added atspi-txrx and "lib"
- atrf/tools/atspi-txrx/Makefile: corrected path in F32XBASE
- atrf/tools/atspi-txrx/atspi-txrx.c: major rewrite
- atrf/tools/include/atspi.h, atrf/tools/lib/atspi.c: functions
  atspi_buf_write and atspi_buf_read to access the frame buffer
2010-08-24 06:16:48 -03:00
Werner Almesberger
738618a945 Update IRQ_RF after reworking both boards. IRQ_RF was erroneously connected
to P0_2 but it should go to P0_0.

- atrf/fw/common/io.h: IRQ_RF is now at P0_0
- atrf/fw/atspi/atspi.c: updated and simplified P0 initialization
2010-08-23 23:02:43 -03:00
Werner Almesberger
b7700518d9 atspi-trim: utility to set the crystal trimming capacitors.
- atrf/tools/Makefile: added atspi-trim
- atrf/tools/atspi-trim/Makefile, atrf/tools/atspi-trim/atspi-trim.c: show
  and adjust the capacitors to trim the crystal oscillator
- atrf/tools/atspi-rssi/atspi-rssi.c: removed left-over FROM_DEV and TO_DEV
2010-08-23 21:49:20 -03:00
Werner Almesberger
5514c336a5 Completed the basic counter firmware. Now it just has to work ...
- cntr/fw/cntr/Makefile, cntr/fw/cntr/descr.c, cntr/fw/cntr/ep0.c: enabled
  the usual USB stack
- cntr/fw/cntr/cntr.c: initialize and poll USB
- cntr/fw/cntr/cntr.c, cntr/fw/cntr/ep0.c: added counter application
- cntr/fw/common/config.h (PLATFORM_SETUP): enable the crossbar
2010-08-23 19:56:02 -03:00
Werner Almesberger
5109e0bd44 Basic framework for CNTR firmware.
- atrf/fw/common/regs.h: forward to regs-f326.h
- cntr/: added basic framework for CNTR firmware
2010-08-23 14:32:50 -03:00
Werner Almesberger
c2dd23840c Moved fw/ and tools/ into atrf/ as well.
- fw/: moved to atrf/fw/
- tools/: moved to atrf/tools/
- atrf/fw/atspi/Makefile, atrf/fw/boot/Makefile: updated relative path to
  f32xbase
- atrf/tools/Makefile: updated relative path to Makefile.recurse
- atrf/tools/atspi-id/Makefile, atrf/tools/atspi-reset/Makefile,
  atrf/tools/atspi-rssi/Makefile, atrf/tools/lib/Makefile: updated relative
  path to f32xbase
- atrf/fw/include/at86rf230.h: corrected path in title
- atrf/tools/include/atspi.h: added title and copyright header
2010-08-23 13:39:07 -03:00
Werner Almesberger
d6b045c513 Renamed fw/boot/ to fw/atspi-boot/. Fixed build problem in fw/atspi-boot/.
- fw/Makefile, fw/boot/Makefile: renamed fw/boot/ to fw/atspi-boot/
- fw/atspi-boot/Makefile: added -I../include to CFLAGS, so that we find
  usb-ids.h
2010-08-23 02:46:22 -03:00
Werner Almesberger
9c2deb8e0a cntr/cntr.brd: remove the ground fill. The board got a bit messy with it.
Bumped the version to V1.
2010-08-23 00:52:23 -03:00
Werner Almesberger
51de2a5235 Forgot cntr/Makefile. Added ground fill.
- cntr/Makefile: oops, forgot to add this one to the repository
- cntr/cntr.brd: fill unused spaces with ground
2010-08-22 21:45:25 -03:00
Werner Almesberger
5553d3e75b New circuit: an arbitrary-precision counter.
- BOOKSHELF: added the C8051F320 (alias "f320")
- BOOKSHELF: added "atrf" alias for AT86RF230
- BOOKSHELF: added "f326" alias for C8051F326
- AUTHORS, components/INFO, components/c8051f320.lib,
  components/c8051f320.dcm: added Silabs C8051F320
- AUTHORS, modules/INFO, modules/Makefile, modules/qfp.fpd: added LQFP32
  for C8051F320
- cntr/cntr.pro, cntr/cntr.sch, cntr/cntr.brd: arbitrary-precision counter
2010-08-22 21:32:54 -03:00
Werner Almesberger
2c29b5b22e Moved hardware design files from top-level directory to atrf/
- wpan-atrf.pro, wpan-atrf.sch, usb.sch, atrf.sch, wpan-atrf.cmp,
  wpan-atrf.brd, Makefile: moved to atrf/
- atrf/wpan-atrf.pro: updated paths to components/ and modules/
- Makefile: retained "dsv" section
2010-08-22 16:06:43 -03:00
Werner Almesberger
d8c71a3009 Additions to bookshelf: AT86RF230 programmer's guide and 2.4 GHz regulations. 2010-08-22 06:50:35 -03:00
Werner Almesberger
e514c0fff9 Added Makefile to build/install/etc. all the ATSPI utilities.
- tools/Makefile: build/install/etc. all the ATSPI utilities
- Makefile.recurse: general targets for recursive make (from IDBG)
2010-08-22 06:28:40 -03:00
Werner Almesberger
419b596c5d atspi-reset: utility to reset transceiver or entire board.
- tools/include/atspi.h, tools/lib/atspi.c (atspi_reset): new function to
  send the ATSPI_RESET command (MCU reset)
- tools/include/atspi.h, tools/lib/atspi.c (atspi_reset_rf): new function
  to send the ATSPI_RESET_RF command (transceiver reset)
- tools/atspi-reset/Makefile, tools/atspi-reset/atspi-reset.c: reset utility
2010-08-22 06:24:52 -03:00
Werner Almesberger
723cfad924 tools/atspi-rssi/: spectrum scan utility 2010-08-22 05:42:41 -03:00
Werner Almesberger
7a534d2269 Enter TRX_OFF to enable DVDD regulator. Plus minor cleanup.
- tools/atspi-txrx/Makefile, tools/atspi-txrx/atspi-txrx.c: new utility
  that, for now, just turns on the DVDD regulator
- tools/atspi-id/Makefile: corrected path in title
- fw/include/at86rf230.h: changed TRX_STATE_* to TRX_CMD_*
2010-08-21 01:42:58 -03:00
Werner Almesberger
44f0c38980 fw/atspi/atspi.c (reset_rf): added reset timing measurement 2010-08-21 01:08:46 -03:00
Werner Almesberger
1d777aa69e Added register definitons and simplified register naming.
- fw/include/at86rf230.h: added register definitions
- fw/include/at86rf230.h, tools/atspi-id/atspi-id.c (show_info): renamed
  register numbers from AT86RF230_REG_* to REG_*
2010-08-21 01:04:08 -03:00
Werner Almesberger
4b204210e7 We can now read the transceiver's registers.
- fw/atspi/atspi.c (init_io, reset_rf): reset the transceiver after setting
  up the IOs. Contrary to what the manual claims, the chip only produce
  garbage if not reset.
- fw/atspi/ep0.c (my_setup): call reset_rf instead of open-coding the reset
- fw/atspi/atspi.c (init_io): added #ifdef'ed-out code to disable the
  pull-ups, and an explanation why we can't do this.
- tools/atspi-id/atspi-id.c (show_info): also read and print the
  transceiver's ID registers
2010-08-20 22:16:58 -03:00
Werner Almesberger
14c1b4cbfc xxx_MODE were used as if they were port bits, not registers.
- fw/atspi/atspi.c (init_io): comment had the wrong initial value for SCLK
- fw/atspi/atspi.c (init_io): xxx_MODE are registers, not bits ...
- fw/common/io.h (IRQ_RF), fw/atspi/atspi.c (init_io): indicate pending
  moving of IRQ_RF
2010-08-20 17:50:12 -03:00
Werner Almesberger
1d07933a2a Active-high IRQ_RF was routed to active-low interrupt input
- usb.sch: route IRQ_RF to INT0, not nINT0
- wpan-artf.brd: updated layout and date code
- wpan-atrf.pro, wpan-atrf.sch, atrf.sch: KiCad update noise
2010-08-20 17:30:19 -03:00
Werner Almesberger
ac349b0bc0 Introduce library with ATSPI access functions (largely untested)
- tools/include/atspi.h, tools/lib/Makefile, tools/lib/atspi.c: library
  with ATSPI access functions
- tools/atspi-id/Makefile: use libatspi
- tools/atspi-id/atspi-id.c (main) use atspi_open instead of open_usb
- fw/atspi/at86rf230.h: moved to fw/include/
- fw/include/at86rf230.h: added ID registers
- fw/atspi/ep0.c: removed stray #endif
2010-08-20 16:27:24 -03:00
Werner Almesberger
bf74a0348b Fix typo and make "make dfu" work again.
- fw/atspi/atspi.c: fixed typo in title
- fw/atspi/Makefile: added ../include to include path for usb-ids.h
2010-08-20 15:11:41 -03:00
Werner Almesberger
bb4b07f86a Simplified the presentation of build date information and added a
command-line utility to retrieve it.

- fw/include/atspi/ep0.h, fw/atspi/ep0.c (my_setup): merged
  ATSPI_BUILD_NUMBER and ATSPI_BUILD_DATE into single ATSPI_BUILD
- fw/atspi/ep0.c (my_setup): added work-arounds for compiler bugs
- tools/atspi-id/Makefile, tools/atspi-id/atspi-id.c: command-line utility
  to query hardware and firmware version
2010-08-20 15:09:45 -03:00
Werner Almesberger
537c67598d More config rearranging: USB IDs are now in include/atspi/usb-ids.h, which
common/config.h includes.
2010-08-20 03:00:27 -03:00
Werner Almesberger
9a6b3fc20d - fw/atspi/Makefile (USB_ID): corrected and updated USB ID extraction 2010-08-20 02:28:58 -03:00
Werner Almesberger
5447951c6e Implemented AT86RF230 reset and access modes. (Completely untested.)
- fw/atspi/at86rf230.h: AT86RF230 SPI protocol commands and buffer sizes
- fw/atspi/atspi.c (init_io): set all IOs to their initial state
- fw/include/atspi/ep0.h, fw/atspi/ep0.c (my_setup): command ATSPI_RF_RESET
  to reset the AT86RF230
- fw/include/atspi/ep0.h, fw/atspi/ep0.c (my_setup): commands
  ATSPI_{REG,BUF,SRAM}_{READ,WRITE} for the six SPI access modes
2010-08-20 01:50:51 -03:00
Werner Almesberger
3c87d9f8c7 Turn the LED on while in the boot loader.
- fw/common/config.h: added platform defines to enable the LED while in
  the boot loader
- fw/common/io.h: updated path in title
2010-08-19 23:14:55 -03:00
Werner Almesberger
f8cd15e84d Generate port, bit, and output mode definitions from io.h
- fw/common/Makefile: generate related definitions from io.h (from IBDG)
- fw/Makefile: build the various firmware elements (from IDBG, without the
  target parts)
2010-08-19 22:02:38 -03:00
Werner Almesberger
57f34270fb A new try at config.h management: moved it to ../common, along with io.h
- fw/boot/Makefile, fw/atspi/Makefile: add ../common to include path
- fw/boot/config.h, fw/atspi/io.h: moved to ../common
- fw/common/config.h: updated comment - it's no longer specific to boot.c
2010-08-19 21:57:59 -03:00
Werner Almesberger
ada1ee037f fw/atspi/: added application with basic EP0 protocol 2010-08-19 09:04:51 -03:00
Werner Almesberger
2c8c609316 Boot loader Makefile cleanup.
- fw/boot/Makefile: removed object file rules now in Makefile.common (of
  f32xbase)
- fw/boot/Makefile: removed setting of -DLOW_SPEED, which can now go into
  config.h and which was enabled by accident only
  accident
2010-08-19 01:14:21 -03:00
Werner Almesberger
00f28250c5 Added boot loader for C8051F326 (using f326xbase)
- fw/boot/Makefile: build DFU-capable bootloader from f326xbase
- fw/boot/config.h: product-specific configuration
2010-08-19 01:05:04 -03:00
Werner Almesberger
c9e61eedf1 Net name correction, layout update.
- atrf.sch: typo: CLKN net is really CLKM, like the signal driving it
- wpan-atrf.brd: updated layout for VBUS/VDD correction
- wpan-atrf.brd: set date code to "100818"
2010-08-18 17:21:47 -03:00
Werner Almesberger
524665fa14 Brown paper bag time: the VDD net was connected to VBUS, not VDD/VIO. 2010-08-18 15:45:26 -03:00
Werner Almesberger
12ebe2cb20 Typo causing silent failure: forgot the semicolon, so "doit" thought these
were empty lines and didn't add the Z offset.
2010-08-14 23:57:56 -03:00
Werner Almesberger
9bf969ed27 Typo causing silent failure. $z would be Perl, but this is Python. 2010-08-14 23:55:39 -03:00
Werner Almesberger
2cb3f18151 cam/: scripts for cutting the PCB (just the board - traces are etched) 2010-08-14 22:38:47 -03:00
Werner Almesberger
a7c04ad696 More board cleanup.
- wpan-atrf.brd: rearranged ground areas to prevent sections from being
  cut off
- wpan-atrf.brd: on PCB, added descriptive text, chip orientation, and
  version
2010-08-13 07:21:27 -03:00
Werner Almesberger
6b72015e6e Added ground fill areas. 2010-08-12 23:21:05 -03:00
Werner Almesberger
8e6fef19f9 First layout draft. (No GND areas, not quite following design rules.)
- wpan-atrf.brd: first attempt at a layout for the USB prototype
- wpan-atrf.cmp: (redundant) component list, to keep pcbnew from complaining
- atrf.sch: added labels to previously anonymous nets
- wpan-atrf.pro: added libraries (and noise from cvpcb and pcbnew)
2010-08-12 22:35:54 -03:00
Werner Almesberger
090ea77cb4 usb.sch cleanup.
- usb.sch: labeled D+ and D- nets
- usb.sch: moved VDD to avoid connected cross intersection
2010-08-12 16:02:14 -03:00