1
0
mirror of git://projects.qi-hardware.com/ben-wpan.git synced 2024-11-09 17:11:33 +02:00
Commit Graph

828 Commits

Author SHA1 Message Date
Werner Almesberger
43d512c30a Only use commits that change anything we care about. Accelerates full build
of ben-wpan/atrf by 70%, build from cache by 35%.

- scripts/schhist2web: only extract commits that change a .pro, .sch, or
  .lib file
- scripts/schhist2web: when building the differences, skip commits missing
  in cache
- scripts/schhist2web: use last cached commit as head instead of asking git
  for the current HEAD
2010-08-27 14:15:57 -03:00
Werner Almesberger
94dc35ed98 ppmdiff detects lack of changes more quickly. Improved cache robustness.
- scripts/ppmdiff/ppmdiff.c (main): do a quick memcmp to detect absence of
  changes instead of comparing pixel by pixel (saves 30% of total run time
  when remaking ben-wpan/atrf from cache)
- scripts/schhist2web: added title and copyright header
- scripts/schhist2web: create $out/names after deleting the cache (-n)
- scripts/schhist2web: fat_* directories were created under $out, not $cache
- scripts/schhist2web: remove ppm_* and fat_* directories being worked on if
  we fail to complete the process for some reason
2010-08-27 13:40:38 -03:00
Werner Almesberger
5761b6e650 schhist2web: better technical and visual quality of HTML output.
- scripts/schhist2web: don't "exit 1" on success (duh ?)
- scripts/schhist2web: use proper HTML intro with DOCTYPE
- scripts/schhist2web: add date tag at the end
- scripts/schhist2web: define all Web colors at the beginning
- scripts/schhist2web: assign background different from the rest to file
  names
- scripts/schhist2web: translate <, >, and & meta-characters in "git log"
  output
2010-08-27 13:07:15 -03:00
Werner Almesberger
099b62649b schhist2web: use a cache by default and give the user control over it.
- scripts/schhist2web (THUMB_OPTS): make shared pixels in thumbnails a
  bit darker
- scripts/schhist2web (usage): described the arguments
- scripts/schhist2web: new option  -c dir  to set the cache directory
- scripts/schhist2web: new option  -n  to remake the cache
- scripts/schhist2web: path name in new file detection was incorrect
- scripts/schhist2web: use "$index" instead of open-coding "$out/index.html"
- scripts/gitsch2ppm: changed temp directory name from _schdiff_a to
  _gitsch2ppm
2010-08-27 12:47:51 -03:00
Werner Almesberger
0d537612c3 Allow markup to be synchronized with other (better resolution) pair of
images.

- scripts/ppmdiff/ppmdiff.c (usage, main): ppmdiff now accepts the name
  of an output file as the last argument
- scripts/ppmdiff/ppmdiff.c (shadow_diff, usage, main): a second set of
  images can be specified that will only be scanned for changes, without
  otherwise becoming part of the merged image
- scripts/schhist2web (pngdiff): specify output name as last argument of
  ppmdiff
- scripts/schhist2web: use shadow images to mark changes only visible
  in regular version also in thumbnails
2010-08-27 06:44:10 -03:00
Werner Almesberger
1774ae268e Fixed two small bugs in schhist2web.
- scripts/schhist2web: second file argument was missing when invoking
  pngdiff for file addition or removal
- scripts/schhist2web: keep track of columns also after a file is gone
2010-08-27 04:52:26 -03:00
Werner Almesberger
c10d643c1f Tools for making a browseable graphical revision history of schematics.
- scripts/gitsch2ppm: extract schematics as PPM files from a specfific git
  revision
- scripts/gitenealogy: show the commit history of a file, tracking renames
- scripts/ppmdiff/Makefile, scripts/ppmdiff/ppmdiff.c: compare two PPM
  files and highlight differences
- scripts/schhist2web: generate a browseable graphical revision history
  of schematics
2010-08-27 03:54:26 -03:00
Werner Almesberger
078ec875b6 Disable CLKM in atspi-txrx, to reduce interferences.
- atrf/tools/atspi-txrx/atspi-txrx.c: disable CLKM when sending or receiving
- TODO: minor edit, missed in last commit
2010-08-26 15:48:29 -03:00
Werner Almesberger
2406f674f5 More RF research for the ECNs (balun and layout)
- atrf/ecn/ecn0001.txt, atrf/ecn/ecn0002.txt: changed ECN format to
  separate title from body by two blank lines and, where a conclusions has
  been reached, put it into a section separated from body also by two blank
  lines
- atrf/ecn/ecn0003.txt: researched balun design and availability
- atrf/ecn/INDEX, atrf/ecn/ecn0004.txt: new ECN: Take into account layout
  considerations for RF
- TODO: removed item covered by ECN0002
- TODO: removed bug fixed in f32xbase commit
  79396b17772639cea615d1c87870d55f08c11850
- TODO: added reference to ECN0003
2010-08-26 15:41:14 -03:00
Werner Almesberger
fe8bdac37f atrf/ecn/ecn0002.txt: added measurements after making boards use 12 pF and
cleaning up the soldering.
2010-08-26 03:23:00 -03:00
Werner Almesberger
85ab2c41d5 Picking time in the middle of the interval, not its edge, and reduce
error bound.

- cntr/tools/cntr/cntr.c (measure): use the middle of a round-trip interval
  for the sample's nominal time
- cntr/tools/cntr/cntr.c (measure): error bound is only +/- RTT/2, not
  +/- RTT
2010-08-26 00:52:50 -03:00
Werner Almesberger
5b73e8bb75 Populated load capacitors of the crystal. Started organizing issues in ECNs.
- atrf/ecn/INDEX: ECN index
- atrf/ecn/ecn0001.txt: Adjust balun component values (pending)
- atrf/ecn/ecn0002.txt: Add load capacitors to 16 MHz crystal (C14, C15)
- atrf.sch, atrf/wpan-atrf.brd: changed load capacitors from NC to 12 pF
- atrf/ecn/ecn0003.txt: Replace balun and filter with integrated balun
  (pending)
- TODO: one more CNTR-related task
2010-08-26 00:30:41 -03:00
Werner Almesberger
c1b7b81936 Added title, author, and revision to all schematics and layouts.
- atrf/wpan-atrf.sch, atrf/usb.sch, atrf/atrf.sch, atrf/wpan-atrf.brd: added
  title, author, and revision (100820)
- cntr/cntr.sch, cntr/cntr.brd: added title, author, and revision (1)
2010-08-25 19:42:46 -03:00
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