overclocking so SUMP mode can sample up to 50 MHz
This commit is contained in:
parent
d289799393
commit
35a427e8a0
|
@ -277,6 +277,7 @@ libco is licensed under the [ISC license](https://opensource.org/licenses/ISC)
|
||||||
- OpenOCD as XVC client??
|
- OpenOCD as XVC client??
|
||||||
- [x] SUMP logic analyzer mode?
|
- [x] SUMP logic analyzer mode?
|
||||||
- see also [this](https://github.com/perexg/picoprobe-sump)
|
- see also [this](https://github.com/perexg/picoprobe-sump)
|
||||||
|
- [ ] runtime config options for overclocking, logging
|
||||||
- [ ] FT2232 emulation mode?
|
- [ ] FT2232 emulation mode?
|
||||||
- watch out, still need a vnd cfg interface! libftdi expects the following stuff: (TODO: acquire detailed protocol description)
|
- watch out, still need a vnd cfg interface! libftdi expects the following stuff: (TODO: acquire detailed protocol description)
|
||||||
- interface 0 ("A"): index 1, epin 0x02, epout 0x81
|
- interface 0 ("A"): index 1, epin 0x02, epout 0x81
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include <hardware/pwm.h>
|
#include <hardware/pwm.h>
|
||||||
#include <hardware/structs/bus_ctrl.h>
|
#include <hardware/structs/bus_ctrl.h>
|
||||||
#include <hardware/sync.h>
|
#include <hardware/sync.h>
|
||||||
|
#include <hardware/vreg.h>
|
||||||
#include <pico/binary_info.h>
|
#include <pico/binary_info.h>
|
||||||
#include <pico/platform.h>
|
#include <pico/platform.h>
|
||||||
#include <pico/stdlib.h>
|
#include <pico/stdlib.h>
|
||||||
|
@ -336,6 +337,10 @@ void sump_hw_init(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void sump_hw_stop(void) {
|
void sump_hw_stop(void) {
|
||||||
|
// TODO: make this configurable
|
||||||
|
vreg_set_voltage(VREG_VOLTAGE_1_15);
|
||||||
|
set_sys_clock_khz(200000, true);
|
||||||
|
|
||||||
// IRQ and PIO fast stop
|
// IRQ and PIO fast stop
|
||||||
irq_set_enabled(SAMPLING_DMA_IRQ, false);
|
irq_set_enabled(SAMPLING_DMA_IRQ, false);
|
||||||
pio_sm_set_enabled(SAMPLING_PIO, SAMPLING_PIO_SM, false);
|
pio_sm_set_enabled(SAMPLING_PIO, SAMPLING_PIO_SM, false);
|
||||||
|
@ -355,6 +360,10 @@ void sump_hw_stop(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void sump_hw_deinit(void) {
|
void sump_hw_deinit(void) {
|
||||||
|
// TODO: make this configurable
|
||||||
|
set_sys_clock_khz(133333, false);
|
||||||
|
vreg_set_voltage(VREG_VOLTAGE_DEFAULT);
|
||||||
|
|
||||||
sump_hw_stop();
|
sump_hw_stop();
|
||||||
|
|
||||||
sump_dma_set_irq_channel_mask_enabled(SUMP_DMA_MASK, false);
|
sump_dma_set_irq_channel_mask_enabled(SUMP_DMA_MASK, false);
|
||||||
|
|
|
@ -9,11 +9,11 @@
|
||||||
#define SAMPLING_BITS (SAMPLING_GPIO_LAST-SAMPLING_GPIO_FIRST+1)
|
#define SAMPLING_BITS (SAMPLING_GPIO_LAST-SAMPLING_GPIO_FIRST+1)
|
||||||
#define SAMPLING_BYTES ((SAMPLING_BITS+7)/8)
|
#define SAMPLING_BYTES ((SAMPLING_BITS+7)/8)
|
||||||
|
|
||||||
#if PICO_NO_FLASH
|
//#if PICO_NO_FLASH
|
||||||
#define SUMP_MEMORY_SIZE 151552/*102400*/ // 150kB
|
//#define SUMP_MEMORY_SIZE 151552/*102400*/ // 150kB
|
||||||
#else
|
//#else
|
||||||
#define SUMP_MEMORY_SIZE 204800 // 200kB
|
//#define SUMP_MEMORY_SIZE 204800 // 200kB
|
||||||
#endif
|
//#endif
|
||||||
#define SUMP_MAX_CHUNK_SIZE 4096
|
#define SUMP_MAX_CHUNK_SIZE 4096
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -44,13 +44,14 @@
|
||||||
#error "Correct sampling width (8 or 16 bits)"
|
#error "Correct sampling width (8 or 16 bits)"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (SUMP_MEMORY_SIZE % SUMP_MAX_CHUNK_SIZE) != 0
|
// TODO: runtime errors?
|
||||||
|
/*#if (SUMP_MEMORY_SIZE % SUMP_MAX_CHUNK_SIZE) != 0
|
||||||
#error "Invalid maximal chunk size!"
|
#error "Invalid maximal chunk size!"
|
||||||
#endif
|
#endif
|
||||||
// TODO
|
|
||||||
#if (SUMP_MEMORY_SIZE / SUMP_MAX_CHUNK_SIZE) < SUMP_DMA_CHANNELS
|
#if (SUMP_MEMORY_SIZE / SUMP_MAX_CHUNK_SIZE) < SUMP_DMA_CHANNELS
|
||||||
#error "DMA buffer and DMA channels out of sync!"
|
#error "DMA buffer and DMA channels out of sync!"
|
||||||
#endif
|
#endif*/
|
||||||
|
|
||||||
#define SUMP_STATE_CONFIG 0
|
#define SUMP_STATE_CONFIG 0
|
||||||
#define SUMP_STATE_INIT 1
|
#define SUMP_STATE_INIT 1
|
||||||
|
|
Loading…
Reference in New Issue