Keith Packard [Wed, 5 May 2010 19:50:39 +0000 (12:50 -0700)]
Don't change dbg clock while changing reset_n. Use 20ms everywhere
This changes the reset code to be more conservative about changing
things at the same time, and also sets all timings to 20ms to make
debugging with the scope easier.
Keith Packard [Wed, 5 May 2010 07:44:42 +0000 (00:44 -0700)]
Disable interrupts while reading from stdin
With multiple input source support, there is a lag between asking a
device if it has data and then waiting for more data to appear. If an
interrupt signalling additional input arrives in this interval, we'll
go to sleep with input available.
This patch uses a big hammer by just disabling interrupts for the
whole process.
Keith Packard [Fri, 23 Apr 2010 20:53:25 +0000 (13:53 -0700)]
Autodetect flite voice registration function
Old versions of flite exported the function 'register_cmu_us_kal'
while new ones export 'register_cmu_us_kal16'. This patch just checks
which one is available and uses that.
Keith Packard [Sat, 10 Apr 2010 00:51:01 +0000 (17:51 -0700)]
Only have the slave return a packet if it received one.
When the receive is aborted to switch modes, it's important to not
immediately re-acquire the radio and try to send a packet as the
aborting thread won't know to kick the receiver again.
This prevents the 'C' command from locking up as it tries to stop the
packet slave before turning on the transmitter.
Keith Packard [Fri, 9 Apr 2010 00:28:17 +0000 (17:28 -0700)]
When changing RESET line, delay 20ms
The GPS data sheet suggests a 1uF cap on the reset line to ensure it
is held low long enough for the power supply to come up to voltage. TM
v1.0 loads a 0.001uF cap there, but in case that isn't large enough,
it could be replaced with the larger one. This change makes sure that
even with that larger value, the debugging link will be able to reset
the target.
Keith Packard [Mon, 5 Apr 2010 02:48:50 +0000 (19:48 -0700)]
Make ao_radio_idle keep trying to get the radio to idle.
Attempting to abort a radio operation could lead to a hang if the user
of the radio jumped in and started using it again before the task
attempting to abort woke up. This change just keeps smacking the radio
until the radio goes idle long enough to detect it.
Keith Packard [Fri, 12 Mar 2010 18:37:32 +0000 (10:37 -0800)]
Document the ao-dumplog '--remote' flag for radio-link downloads
The --remote (or -R) flag uses TeleDongle to fetch data over the radio
command link from TeleMetrum. It's been there for a while, but the man
page failed to mention it.
Keith Packard [Fri, 12 Mar 2010 18:35:12 +0000 (10:35 -0800)]
Round radio calibration value instead of truncating
The radio calibration function in the bring-up code was truncating the
radio calibration value which caused the resulting frequency to
always measure above the target frequency, instead of trying to get as
close as possible. This change will result in a closer frequency
match, but may sometimes be below the target frequency.
Keith Packard [Sat, 27 Feb 2010 23:14:04 +0000 (15:14 -0800)]
Fix up LED colors for each product.
Different products assign different color LEDs to the two available
LED drivers (P1_0, P1_1). Make the LED color pin assignments
per-product (in ao_pins.h), then deal with not always having a green LED.
Keith Packard [Sat, 27 Feb 2010 23:11:44 +0000 (15:11 -0800)]
Eliminate deadlock when writing config from radio link
Writing the 'Saved\r\n' string would fill the packet buffer and cause
a flush to occur, which would need to wait for the radio link to
receive and transmit a packet. The radio link always re-fetches the
radio channel number when lighting up the radio, so it need to look in
the config space. If the config mutex was held by the config writing
process while the radio was trying to get the channel number, then
we'd get a deadlock.