1
0
mirror of git://projects.qi-hardware.com/ben-wpan.git synced 2024-11-23 00:10:17 +02:00

tools/lib/cwtest.c (cw_test_end): try "quick reset" on AT86RF231

The transceiver reset takes quite a while. It seems that also going into
sleep mode has the effect of stopping cw test mode and it's much faster.

This has only been tried on the AT86RF231. For AT86RF230, we therefore
still use the reset.

Performance improvement:

Measurement: atrf-path sweep time in GUI mode, averaging over 10 samples.
Running on PC with remote ATBEN transceivers.

before	7.36-7.68 s
after	2.08 s		(27-28% of previous time)
This commit is contained in:
Werner Almesberger 2011-04-13 08:56:15 -03:00
parent 6efe37436f
commit 4244af265c

View File

@ -111,5 +111,25 @@ void cw_test_end(struct atrf_dsc *dsc)
if (atrf_identify(dsc) == artf_at86rf231) if (atrf_identify(dsc) == artf_at86rf231)
atrf_reg_write(dsc, REG_PART_NUM, 0); atrf_reg_write(dsc, REG_PART_NUM, 0);
atrf_reg_write(dsc, REG_TRX_STATE, TRX_CMD_FORCE_TRX_OFF);
/*
* atrf_reset_rf can take a long time. I appears that at least the
* AT86RF231 also exits test mode if we send it to sleep for a
* moment.
*/
switch (atrf_identify(dsc)) {
case artf_at86rf230:
atrf_reset_rf(dsc); atrf_reset_rf(dsc);
break;
case artf_at86rf231:
usleep(2); /* table 7-1: tTR12(typ) = 1 us */
atrf_slp_tr(dsc, 1);
usleep(10); /* table 7-1: tTR3(typ) doesn't really apply */
atrf_slp_tr(dsc, 0);
usleep(500); /* table 7-1: tTR2(typ) = 380 */
break;
default:
abort();
}
} }