| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
| |
This provides a simple method for getting high-resolution timer data
to use in performance tuning code. It's not used by default anywhere.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
| |
Radio receive camps on the SPI bus, making it impossible to access
flash memory. Abort any pending receive operation when trying to get
to the flash part.
Yes, this is a total hack.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Using unsigned locals made GCC sad as it was compared with a signed value.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Now that MM has full radio functionality, we can make it work right.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Using printf is way too slow with pdclib; just hand-write hex byte output.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Integrate interleaving, CRC and padding within the decode/encode
functions.
Provide for ISR priorities so that the 1120 RX interrupt takes
precedence over the other interrupts or we risk losing bits.
Optimize the viterbi decoder a bit (goes from 10ms per packet to 7ms
per packet).
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
MM uses a different logging format with larger log blocks, so
restructure the GPS logging code to fill them up
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
No need to publish these; they're all private to cc1111
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Make stm port parameters always be pointers; this avoids the confusion
where some macros took '&port' and others took a bare 'port', and also
unifies code to run on other processors in a consistent fashion.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Keep it parallel with ao_fec_tx.c
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Decode radio input one interleave block at a time. This overlaps the
decode computation with the packet reception, leading to lower latency
in an attempt to keep up with the transmitter.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Call the fec decode function, compute RSSI and check CRC
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Interrupt-per-bit, but it seems to work
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Not much builds without this...
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
| |
Integrate interleaving and whitening into encode and decode steps.
Add CRC checking function for receive.
Make ao_fec_test program round-trip the data and verify correctness.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
It's not used yet, just wanted to see how big the resulting object
file was (492 bytes).
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
There aren't *any* forward bits to use when decoding the last byte.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Minimize data usage, make data arrays static
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Decode bits incrementally. Don't bother decoding the last byte; it's
always a pad byte.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Only need two cost arrays (previous and next). Create constant
full-width decoder table instead of expanding bits into bytes for each
decode step.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
I think I understand how it works now. It's not exactly speedy, and it
uses a lot of memory.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
It's not a driver as it's not specific to the 1120 chip
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
The cc1120 is noisy enough to break SPI data transfers at 4MHz, so
crank things down to 1MHz. It's "stable" now, but clearly needs a
filter and shorter traces.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Create two new telemetry packets to hold all of the MM data.
This patch also splits the telemetry structures out of ao.h
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
These devices require static mode.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
ao_storage_read does in fact call ao_storage_setup, but we need the
value of ao_storage_config *before* calling ao_storage_read, so call
ao_storage_setup first.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
otherwise altosui won't record telemetry
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
It gets called from multiple tasks, so put local data on the stack.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Now that the radio works
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Add CRC, whitening, FEC and interleaving routines for transmission
path to allow cc1120 to send telem packets to cc1111.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Make sure the general registers are all saved before messing with any
of them. Then, explicitly use r0 to save/restore apsr and primask.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using ao_arch_critical around the wchan setting will force interrupts
to be re-enabled before ao_yield records the state of that bit,
potentially causing problems with functions not atomically testing and
sleeping.
Tasks that need to set wchan with interrupts disabled should have
interrupts disabled when entering ao_sleep already.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
No need to call twice.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Also clean up the debug output
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Looks like RFI from the transmitter is confusing the CPU; lower the
1120 power output from +14dBm to +0dBm to keep the CPU happy.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
cc1120 doesn't want more than 6.1MHz, otherwise it gets very angry.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
RDF tones and radio calibration work now.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Was using the wrong function
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Check to make sure it pulls down MISO when CS is enabled.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
'B' is used by the baro data dumper.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Changes tone to the desired 1kHz frequency and ensures the PKT_CFG0
has the right value.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Helps to not use 'read' mode when writing.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Set default conversion value, and pull the selected frequency
calibration data out of the config block.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
While work on the radio code progresses
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Just in case some product wants to save memory, or have more.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Ensures that files get recompiled as needed
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This created ground station software that couldn't actually receive
and report telemetry packets.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Avoids needing a new command
Signed-off-by: Keith Packard <keithp@keithp.com>
|