portapack-mayhem/firmware/common
Maescool 920b98f7c9 Upstream merge to make new revision of PortaPack work (#206)
* Power: Turn off additional peripheral clock branches.

* Update schematic with new symbol table and KiCad standard symbols.
Fix up wires.

* Schematic: Update power net labels.

* Schematic: Update footprint names to match library changes.

* Schematic: Update header vendor and part numbers.

* Schematic: Specify (arbitrary) value for PDN# net.

* Schematic: Remove fourth fiducial. Not standard practice, and was taking up valuable board space.

* Schematic: Add reference oscillator -- options for clipped sine or HCMOS output.

* Schematic: Update copyright year.

* Schematic: Remove CLKOUT to CPLD. It was a half-baked idea.

* Schematic: Add (experimental) GPS circuit.
Add note about charging circuit.
Update date and revision to match PCB.

* PCB: Update from schematic change: now revision 20180819.
Diff was extensive due to net renumbering...

* PCB: Fix GPS courtyard to accommodate crazy solder paste recommendation in integration manual.
PCB: Address DRC clearance violation between via and oscillator pad.

* PCB: Update copyright on drawing.

* Update schematic and PCB date and revision.

* gitignore: Sublime Text editor project/workspace files

* Power: Power up or power down peripheral clock at appropriate times, so firmware doesn't freeze...

* Clocking: Fix incorrect shift for CGU IDIVx_CTRL.PD field.

* LPC43xx: Add CGU IDIVx struct/union type.

* Power: Switch off unused IDIV dividers. Make note of active IDIVs and their use.

* HackRF Mode: Upgrade firmware to 2018.01.1 (API 1.02)

* MAX V CPLD: Refactor class to look more like Xilinx CoolRunner II CPLD class.

* MAX V CPLD: Add BYPASS, SAMPLE support.
Rename enter_isp -> enable, exit_isp -> disable.
Use SAMPLE at start of flash process, which somehow addresses the problem where CFM wouldn't load into SRAM (and become the active bitstream) after flashing.

* MAX V CPLD: Reverse verify data checking logic to make it a little faster.

* CPLD: After reprogramming flash, immediately clamp I/O signals, load to SRAM, and "execute" the new bitstream.

* Si5351: Refactor code, make one of the registers more type-safe.
Clock Manager: Track selected reference clock source for later use in user interface.

* Clock Manager: Add note about PPM only affecting Si5351C PLLA, which always runs from the HackRF 25MHz crystal.
It is assumed an external clock does not need adjustment, though I am open to being convinced otherwise...

* PPM UI: Show "EXT" when showing PPM adjustment and reference clock is external.

* CPLD: Add pins and logic for new PortaPack hardware feature(s).

* CPLD: Bitstream to support new hardware features.

* Clock Generator: Add a couple more setter methods for ClockControl registers.

* Clock Manager: Use shared MCU CLKIN clock control configuration constant.

* Clock Manager: Reduce MCU CLKIN driver current. 2mA should be plenty.

* Clock Manager: Remove redundant clock generator output enable.

* Bootstrap: Remove unnecessary ldscript hack to locate SPIFI mode change code in RAM.

* Bootstrap: Get CPU operating at max frequency as soon as possible.
Update SPIFI speed comment.
Make some more LPC43xx types into unions with uint32_t.

* Bootstrap: Explicitly configure IDIVB for SPIFI, despite LPC43xx bootloader setting it.

* Clock Manager: Init peripherals before CPLD reconfig. Do the clock generator setup after, so we can check presence of PortaPack reference clock with the help of the latest CPLD bitstream.

* Clock Manager: Reverse sense of conditional that determines crystal or non-crystal reference source. This is for an expected upcoming change where multiple external options can be differentiated.

* Bootstrap: Consolidate clock configuration, update SPIFI rate comment.

* Clock Manager: Use IDIVA for clock source for all peripherals, instead of PLL1. Should make switching easier going forward.
Don't use IRC as clock during initial clock manager configuration. Until we switch to GP_CLKIN, we should go flat out...

* ChibiOS M0: Change default clock speed to 204MHz, since bootstrap now maxes out clock speed before starting M0 execution.

* PortaPack IO: Expose method to set reference oscillator enable pin.

* Pin configuration: Do SPIFI pin config with other pins, in preparation for eliminating separate bootloader.

* Pin configuration: Disable input buffers on pins that are never read.

* Revert "ChibiOS M0: Change default clock speed to 204MHz, since bootstrap now maxes out clock speed before starting M0 execution."

This reverts commit c0e2bb6cc4cc656769323bdbb8ee5a16d2d5bb03.

* Remove unused board files.

* Add LPC43xx functions.

* chibios: Replace code with per-peripheral structs defining clocks, interrupts, and reset bits.

* LPC43xx: Add MCPWM peripheral struct.

* clock generator: Use recommended PLL reset register value.

Datasheet recommends a value. AN619 is quiet on the topic, claims the low nibble is default 0b0000.

* GPIO: Tweak masking of SCU function.

I don't remember why I thought this was necessary...

* HAL: Explicitly turn on timer peripheral clocks used as systicks, during init.

* SCU: Add struct to hold pin configuration.

* PAL: Add functions to address The Glitch.

https://greatscottgadgets.com/2018/02-28-we-fixed-the-glitch/

* PAL/board: New IO initialization code

Declare initial state for SCU pin config, GPIOs. Apply initial state during PAL init. Perform VAA slow turn-on to address The Glitch.

* Merge M0 and M4 to eliminate need for bootstrap firmware

During _early_init, detect if we're running on the M4 or M0.
If M4: do M4-specific core initialization, reset peripherals, speed up SPIFI clock, start M0, go to sleep.
If M0: do all the other things.

* Pins: Miscellaneous SCU configuration tweaks.

* Little code clarity improvement.

* bootstrap: Remove, not necessary.

* Clock Manager: Large re-working to support external references.

* Fix merge conflicts
2019-01-11 06:56:21 +00:00
..
acars_packet.cpp Testing external clock detection and auto-switch 2018-06-12 07:55:12 +01:00
acars_packet.hpp Started work on ACARS RX 2018-06-10 10:15:43 +01:00
adc.hpp C++14: make some wrapper classes static. 2017-01-05 17:10:00 -08:00
adsb_frame.cpp ADS-B TX works well enough for dump1090 and gr-air-modes 2017-07-23 12:20:32 +01:00
adsb_frame.hpp ADSB position decoding 2017-08-17 12:56:47 +01:00
adsb.cpp ADSB position decoding 2017-08-17 12:56:47 +01:00
adsb.hpp ADSB position decoding 2017-08-17 12:56:47 +01:00
ais_baseband.cpp SYNC 2016-01-31 09:34:24 +01:00
ais_baseband.hpp AIS: Doesn't use RRC filter -- use rect instead. 2016-08-29 20:47:37 -07:00
ais_packet.cpp CRC internal type more suitable for ARM. 2016-02-18 21:31:51 -08:00
ais_packet.hpp SYNC 2016-01-31 09:34:24 +01:00
ak4951.cpp Audio: Add codec config methods for external I2S master. 2017-08-06 12:43:39 -07:00
ak4951.hpp Audio: Add codec config methods for external I2S master. 2017-08-06 12:43:39 -07:00
backlight.cpp Backlight: Add abstraction for support of different hardware. 2017-07-18 21:29:32 -07:00
backlight.hpp Backlight: Add abstraction for support of different hardware. 2017-07-18 21:29:32 -07:00
baseband_cpld.cpp Move CPLD filres to common/ 2017-06-02 17:13:41 -07:00
baseband_cpld.hpp Move CPLD filres to common/ 2017-06-02 17:13:41 -07:00
baseband_packet.hpp Started adding decoders for RS41 radiosondes 2017-11-10 02:20:44 +00:00
baseband_sgpio.cpp SGPIO: Use pin constants when changing output enables. 2016-08-30 21:33:44 -07:00
baseband_sgpio.hpp SYNC 2016-01-31 09:34:24 +01:00
baseband.hpp SYNC 2016-01-31 09:34:24 +01:00
bch_code.cpp Coaster pager address scan 2017-04-11 08:42:31 +01:00
bch_code.hpp Yet another POCSAG bugfix (multi-batch messages are not cut anymore) 2017-02-06 20:32:33 +00:00
bit_pattern.hpp SYNC 2016-01-31 09:34:24 +01:00
bmp.hpp Tones bugfix, numbers station voice files search 2017-03-22 03:21:06 +00:00
buffer_exchange.cpp Replay of IQ files ! :D 2017-12-07 00:58:25 +00:00
buffer_exchange.hpp Replay of IQ files ! :D 2017-12-07 00:58:25 +00:00
buffer.cpp Create buffer.cpp, reduce #include dependencies and impl leakage. 2016-10-24 11:16:48 -07:00
buffer.hpp Create buffer.cpp, reduce #include dependencies and impl leakage. 2016-10-24 11:16:48 -07:00
chibios_cpp.cpp C++14: Add two-argument delete() implementations. 2017-01-05 17:13:03 -08:00
chibios_cpp.hpp C++14: Add two-argument delete() implementations. 2017-01-05 17:13:03 -08:00
complex.hpp SYNC 2016-01-31 09:34:24 +01:00
cpld_max5.cpp Upstream merge to make new revision of PortaPack work (#206) 2019-01-11 06:56:21 +00:00
cpld_max5.hpp Upstream merge to make new revision of PortaPack work (#206) 2019-01-11 06:56:21 +00:00
cpld_update.cpp Upstream merge to make new revision of PortaPack work (#206) 2019-01-11 06:56:21 +00:00
cpld_update.hpp CPLD: Organize CPLD code into namespaces. 2017-06-02 21:57:13 -07:00
cpld_xilinx.cpp CPLD: Add XC2C64A method to init from EEPROM contents. 2016-07-18 11:31:21 -07:00
cpld_xilinx.hpp CPLD: Add XC2C64A method to init from EEPROM contents. 2016-07-18 11:31:21 -07:00
crc.hpp CRC: Rearrange public methods to reduce user error. 2016-07-05 11:57:57 -07:00
debug.cpp Upstream merge to make new revision of PortaPack work (#206) 2019-01-11 06:56:21 +00:00
debug.hpp Move halt indication code to common place. 2015-07-08 16:28:57 -07:00
dsp_fft.cpp Initial firmware commit. 2015-07-08 08:39:24 -07:00
dsp_fft.hpp Added an audio FFT view in Wideband FM receive 2018-05-21 18:46:48 +01:00
dsp_fir_taps.cpp SYNC 2016-01-31 09:34:24 +01:00
dsp_fir_taps.hpp Added CTCSS decoder in NFM RX 2017-11-28 08:52:04 +01:00
dsp_iir_config.hpp Added CTCSS decoder in NFM RX 2017-11-28 08:52:04 +01:00
dsp_iir.cpp Move IIR struct and configs to common/. 2016-01-29 15:43:39 -08:00
dsp_iir.hpp Move IIR struct and configs to common/. 2016-01-29 15:43:39 -08:00
dsp_types.hpp SYNC 2016-01-31 09:34:24 +01:00
emu_cc1101.hpp Added remaining buttons for TouchTunes remote 2017-09-24 20:05:42 +01:00
ert_packet.cpp Rename format_manchester/ManchesterFormatted to "[sS]ymbols". 2016-05-30 11:24:59 -07:00
ert_packet.hpp Rename format_manchester/ManchesterFormatted to "[sS]ymbols". 2016-05-30 11:24:59 -07:00
event.cpp SYNC 2016-01-31 09:34:24 +01:00
event.hpp SYNC 2016-01-31 09:34:24 +01:00
field_reader.hpp SYNC 2016-01-31 09:34:24 +01:00
fifo.hpp POCSAG RX saves ignored address 2017-04-21 06:22:31 +01:00
gcc.cpp Initial firmware commit. 2015-07-08 08:39:24 -07:00
gcc.hpp Initial firmware commit. 2015-07-08 08:39:24 -07:00
gpdma.cpp SYNC 2016-01-31 09:34:24 +01:00
gpdma.hpp SYNC 2016-01-31 09:34:24 +01:00
gpio.hpp Upstream merge to make new revision of PortaPack work (#206) 2019-01-11 06:56:21 +00:00
hackrf_cpld_data.hpp CPLD: Stop generating HackRF CPLD .hpp file. 2017-06-02 21:55:35 -07:00
hackrf_gpio.hpp Rename CPLD "Q_INVERT" to signal to "INVERT". 2016-08-21 11:35:40 -07:00
hackrf_hal.cpp Upstream merge to make new revision of PortaPack work (#206) 2019-01-11 06:56:21 +00:00
hackrf_hal.hpp C++14: make some wrapper classes static. 2017-01-05 17:10:00 -08:00
i2c_pp.cpp Initial firmware commit. 2015-07-08 08:39:24 -07:00
i2c_pp.hpp Upstream merge to make new revision of PortaPack work (#206) 2019-01-11 06:56:21 +00:00
i2s.hpp LPC43xx: Add CREG6 struct definition. Add I2S CREG6 configuration. 2017-08-06 11:16:57 -07:00
jammer.cpp Finished jammer modes 2017-02-13 05:35:13 +00:00
jammer.hpp Added tabs to BHT TX and Jammer 2017-08-12 00:27:05 +01:00
jtag_tap.cpp JTAG: Add TAP state management. 2016-07-17 15:44:30 -07:00
jtag_tap.hpp JTAG: Add TAP state management. 2016-07-17 15:44:30 -07:00
jtag_target_gpio.hpp JTAG: Move Target interface to separate header. 2016-07-11 09:39:02 -07:00
jtag_target.hpp JTAG: Move Target interface to separate header. 2016-07-11 09:39:02 -07:00
jtag.cpp Initial firmware commit. 2015-07-08 08:39:24 -07:00
jtag.hpp JTAG: Remove unused methods. 2016-07-13 11:02:13 -07:00
lcd_ili9341.cpp Added an audio FFT view in Wideband FM receive 2018-05-21 18:46:48 +01:00
lcd_ili9341.hpp Added an audio FFT view in Wideband FM receive 2018-05-21 18:46:48 +01:00
led.hpp Initial firmware commit. 2015-07-08 08:39:24 -07:00
lfsr_random.cpp Add LFSR random number generator. 2016-04-10 16:30:28 -07:00
lfsr_random.hpp Add LFSR random number generator. 2016-04-10 16:30:28 -07:00
lpc43xx_cpp.hpp Upstream merge to make new revision of PortaPack work (#206) 2019-01-11 06:56:21 +00:00
manchester.cpp Radiosonde RX now understands Meteomodem's M10 correctly 2017-10-27 18:54:50 +02:00
manchester.hpp Radiosonde RX now understands Meteomodem's M10 correctly 2017-10-27 18:54:50 +02:00
memory_map.hpp C++14: const all the methods! 2017-01-05 17:06:44 -08:00
message_queue.cpp Merge 2016-05-09 21:05:11 +02:00
message_queue.hpp Add lots of value constructors. 2016-11-26 16:50:44 -08:00
message.hpp Testing external clock detection and auto-switch 2018-06-12 07:55:12 +01:00
modules.h Added frequency manager skeleton, LCR alt encoding, GPS jammer 2016-07-25 16:21:27 +02:00
morse.cpp Finally found what was eating all the RAM :D 2018-05-15 23:35:30 +01:00
morse.hpp Finally found what was eating all the RAM :D 2018-05-15 23:35:30 +01:00
msgpack.cpp More messagepack 2016-05-16 12:02:45 +02:00
msgpack.hpp More messagepack 2016-05-16 12:02:45 +02:00
optional.hpp SYNC 2016-01-31 09:34:24 +01:00
pins.hpp Upstream merge to make new revision of PortaPack work (#206) 2019-01-11 06:56:21 +00:00
png_writer.cpp FatFs: Enable long file name support. 2016-08-21 18:06:39 -07:00
png_writer.hpp Add lots of value constructors. 2016-11-26 16:50:44 -08:00
pocsag_packet.cpp Added basic POCSAG receiver 2016-08-23 08:45:33 +02:00
pocsag_packet.hpp Added function setting in POCSAG TX 2017-09-23 04:53:42 +01:00
pocsag.cpp Added function setting in POCSAG TX 2017-09-23 04:53:42 +01:00
pocsag.hpp Added function setting in POCSAG TX 2017-09-23 04:53:42 +01:00
portapack_adc.hpp Initial firmware commit. 2015-07-08 08:39:24 -07:00
portapack_cpld_data.hpp CPLD: Organize CPLD code into namespaces. 2017-06-02 21:57:13 -07:00
portapack_dma.hpp Initial firmware commit. 2015-07-08 08:39:24 -07:00
portapack_hal.hpp CPLD: Switch sense of LCD_RD/WR pins. 2017-07-20 16:33:55 -07:00
portapack_io.cpp Upstream merge to make new revision of PortaPack work (#206) 2019-01-11 06:56:21 +00:00
portapack_io.hpp Upstream merge to make new revision of PortaPack work (#206) 2019-01-11 06:56:21 +00:00
portapack_persistent_memory.cpp Added tone key mix ratio in Settings -> Audio 2018-05-16 09:45:13 +01:00
portapack_persistent_memory.hpp Added tone key mix ratio in Settings -> Audio 2018-05-16 09:45:13 +01:00
portapack_shared_memory.cpp Rework to make use of declared memory map regions. 2015-08-20 17:11:08 -07:00
portapack_shared_memory.hpp AFSK RX works (only Bell202 for now) 2017-09-02 08:28:29 +01:00
simd.hpp Remove broken simd32_t type. 2017-05-03 09:58:07 +01:00
sine_table_int8.hpp Fixed LCR transmit and AFSK baseband module 2016-07-27 21:26:03 +02:00
sine_table.hpp Dynamic baseband module loading from SD card 2015-11-20 07:59:09 +01:00
sonde_packet.cpp Added range file and range type to frequency manager (mainly for jammer) 2017-12-08 18:58:46 +00:00
sonde_packet.hpp Started adding decoders for RS41 radiosondes 2017-11-10 02:20:44 +00:00
spi_image.hpp Upstream merge to make new revision of PortaPack work (#206) 2019-01-11 06:56:21 +00:00
sstv.hpp Finally found what was eating all the RAM :D 2018-05-15 23:35:30 +01:00
test_packet.cpp Fixed freeze in TouchTunes scan 2017-11-08 21:08:46 +01:00
test_packet.hpp Added "test app" as a draft zone for... stuff 2017-10-30 02:00:39 +01:00
thread_base.hpp Move thread_base.hpp from baseband/ to common/. 2016-07-26 10:22:10 -07:00
thread_wait.cpp Simplify RSSI/BB DMA, extract to ThreadWait class. 2016-02-09 10:41:19 -08:00
thread_wait.hpp Simplify RSSI/BB DMA, extract to ThreadWait class. 2016-02-09 10:41:19 -08:00
tonesets.hpp Finally found what was eating all the RAM :D 2018-05-15 23:35:30 +01:00
tpms_packet.cpp TPMS: Remove unused variable. 2017-08-08 10:36:17 -07:00
tpms_packet.hpp Rename format_manchester/ManchesterFormatted to "[sS]ymbols". 2016-05-30 11:24:59 -07:00
ui_focus.cpp Made back button always focusable with left key 2017-04-21 00:31:21 +01:00
ui_focus.hpp Initial firmware commit. 2015-07-08 08:39:24 -07:00
ui_painter.cpp Added an audio FFT view in Wideband FM receive 2018-05-21 18:46:48 +01:00
ui_painter.hpp Added an audio FFT view in Wideband FM receive 2018-05-21 18:46:48 +01:00
ui_text.cpp Hide ui::Size implementation. 2016-11-28 10:55:45 -08:00
ui_text.hpp Hide ui::Size implementation. 2016-11-28 10:55:45 -08:00
ui_widget.cpp Added cursor to audio spectrum view 2018-05-22 04:43:04 +01:00
ui_widget.hpp Bias-T now works in capture mode 2018-12-18 16:25:21 +00:00
ui.cpp ADSB RX text color bugfix 2017-08-27 21:03:17 +01:00
ui.hpp Fixed mic tx not working the first time it was entered 2018-02-01 11:17:51 +00:00
units.hpp SYNC 2016-01-31 09:34:24 +01:00
utility_m4.hpp SYNC 2016-01-31 09:34:24 +01:00
utility.cpp Remove constexpr use of std::log2, std::log10. 2016-02-19 10:30:26 -08:00
utility.hpp Merge 'upstream/master' - At least it builds... 2017-01-16 03:45:44 +00:00
volume.hpp SYNC 2016-01-31 09:34:24 +01:00
wm8731.cpp Added tabs to BHT TX and Jammer 2017-08-12 00:27:05 +01:00
wm8731.hpp Audio: Add codec config methods for external I2S master. 2017-08-06 12:43:39 -07:00