<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mjb/altos/src/drivers/ao_cc1200.c, branch tmarble-trng</title>
<subtitle>AltOS - the operating system for Altus Metrum products
</subtitle>
<id>https://git.ethernal.org/mjb/altos/atom?h=tmarble-trng</id>
<link rel='self' href='https://git.ethernal.org/mjb/altos/atom?h=tmarble-trng'/>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/'/>
<updated>2015-02-14T07:51:10+00:00</updated>
<entry>
<title>altos: Replace ao_alarm/ao_clear_alarm with ao_sleep_for</title>
<updated>2015-02-14T07:51:10+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2015-02-14T07:51:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=f4c812bef76a2cd95f675cb27ea89059561ceec7'/>
<id>urn:sha1:f4c812bef76a2cd95f675cb27ea89059561ceec7</id>
<content type='text'>
Having arbitrary alarms firing in the middle of complicated device
logic makes no sense at all. Therefore only correct use of ao_alarm
and ao_clear_alarm was around a specific ao_sleep call, with correct
recovery in case the alarm fires.

This patch replaces all uses of ao_alarm/ao_sleep/ao_clear_alarm with
ao_sleep_for, a new function which takes the alarm timeout directly.

A few cases which weren't simply calling ao_sleep have been reworked
to pass the timeout value down to the place where sleep *is* being
called, and having that code deal with the return correctly.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/cc1200: With PQT wide open, we can't use PQT_REACHED for start</title>
<updated>2014-11-24T02:56:40+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2014-11-24T02:56:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=b6462ca3a7e99fe390ec97f94c23d36fab8c294d'/>
<id>urn:sha1:b6462ca3a7e99fe390ec97f94c23d36fab8c294d</id>
<content type='text'>
Because we're allowing even signals only weakly correlated with the
preamble through to sync detection, we can't use the PQT_REACHED
symbol to tell when a packet header has been seen. Instead, just look
for SYNC_FOUND.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/cc1200: Wait for packet to be placed in FIFO during receive</title>
<updated>2014-11-24T02:31:15+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2014-11-24T02:31:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=eabeb76a2a9acb624ae364c4f0f315bfc3549d98'/>
<id>urn:sha1:eabeb76a2a9acb624ae364c4f0f315bfc3549d98</id>
<content type='text'>
This changes the receive code to use MCU_STATUS, waiting for
MARC_STATUS1 to indicate that the packet is in the fifo before reading
it out.

It also fixes the receive timeout code to keep receiving if the
preamble or sync have been seen when the timeout fires. This makes
TeleLCO able to use short timeouts during scanning while still
successfully receiving packets.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Reset interrupt flags before TX in CC1200 driver</title>
<updated>2014-11-07T04:04:47+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2014-11-07T04:04:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=437eba2ff27b2b7dfd0f363819b9a43ab8b28ead'/>
<id>urn:sha1:437eba2ff27b2b7dfd0f363819b9a43ab8b28ead</id>
<content type='text'>
Failing to reset the flags set during interrupt leads to
short-circuiting transmission and not a lot of packets going out.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Use AO_SPO_SPEED_FAST for CC1200</title>
<updated>2014-11-07T00:01:24+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2014-11-07T00:01:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=2f0ff9675017655846a8abc617b4dc9a3666d0b9'/>
<id>urn:sha1:2f0ff9675017655846a8abc617b4dc9a3666d0b9</id>
<content type='text'>
This asks for the fastest available SPI speed, instead of fixing it to
8MHz, which may not be supported on every architecture.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Increase CC1200 SPI data rate to 8MHz</title>
<updated>2014-10-26T04:14:25+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2014-10-26T04:14:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=ef00182c79bd7a56fbc5d782cb8f4aa0079bb86f'/>
<id>urn:sha1:ef00182c79bd7a56fbc5d782cb8f4aa0079bb86f</id>
<content type='text'>
This got set to 125kHz to make debugging with a logic analyzer easier
and never changed back to a reasonable speed.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Perform cc1200 calibration less often. Tweak radio params</title>
<updated>2014-10-26T00:44:48+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2014-10-26T00:44:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=c831f1ffb378c20b7513d209d60cdd5dee9db85b'/>
<id>urn:sha1:c831f1ffb378c20b7513d209d60cdd5dee9db85b</id>
<content type='text'>
This performs calibration after every 4 operations, or when the
frequency changes. This reduces the time it takes to get to receive
mode.

This also makes the sync and preamble qualifiers more strict to reject
bad packets.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Complete cc1200 driver</title>
<updated>2014-10-25T04:24:53+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2014-10-07T03:34:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=4a3fe79266a77f8fc001117f49db1d2f14f9e6b6'/>
<id>urn:sha1:4a3fe79266a77f8fc001117f49db1d2f14f9e6b6</id>
<content type='text'>
Deal with differences between cc1120 and cc1200, including built-in
packet support and various register changes.

This now works to send and receive telemetry, as well as send APRS and
RDF.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Copy cc1120 driver to cc1200 driver and hack a bit</title>
<updated>2014-10-05T07:03:28+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2014-10-05T07:03:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=27a467d802a80a33ea20eb5cda2558d03caa2c00'/>
<id>urn:sha1:27a467d802a80a33ea20eb5cda2558d03caa2c00</id>
<content type='text'>
The cc1200 is similar to the cc1120, although many registers have
changed.

This driver can send a bare carrier and an RDF tone, but does not yet
receive or transmit telemetry data.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
</feed>
