This commit is contained in:
nzasch
2025-06-28 00:58:29 +02:00
parent b9232f66b0
commit 28b7af65b6
123 changed files with 105128 additions and 104148 deletions

View File

@@ -59,28 +59,26 @@ void Error_Handler(void);
/* USER CODE END EFP */
/* Private defines -----------------------------------------------------------*/
#define TEMPERATURA_Pin GPIO_PIN_4
#define TEMPERATURA_GPIO_Port GPIOA
#define CORRENTE_Pin GPIO_PIN_5
#define CORRENTE_GPIO_Port GPIOA
#define DIRETTA_Pin GPIO_PIN_6
#define DIRETTA_GPIO_Port GPIOA
#define RIFLESSA_Pin GPIO_PIN_7
#define RIFLESSA_GPIO_Port GPIOA
#define AUDIO_IN_Pin GPIO_PIN_0
#define AUDIO_IN_GPIO_Port GPIOB
#define A5_Pin GPIO_PIN_4
#define A5_GPIO_Port GPIOA
#define A4_Pin GPIO_PIN_5
#define A4_GPIO_Port GPIOA
#define A3_Pin GPIO_PIN_6
#define A3_GPIO_Port GPIOA
#define A2_Pin GPIO_PIN_7
#define A2_GPIO_Port GPIOA
#define A1_Pin GPIO_PIN_0
#define A1_GPIO_Port GPIOB
#define T_SWDIO_Pin GPIO_PIN_13
#define T_SWDIO_GPIO_Port GPIOA
#define T_SWCLK_Pin GPIO_PIN_14
#define T_SWCLK_GPIO_Port GPIOA
#define AUDIO_OL_Pin GPIO_PIN_3
#define AUDIO_OL_GPIO_Port GPIOB
#define RESET_BTN_Pin GPIO_PIN_4
#define RESET_BTN_GPIO_Port GPIOB
#define TEMP_OL_Pin GPIO_PIN_5
#define TEMP_OL_GPIO_Port GPIOB
#define REFL_OL_Pin GPIO_PIN_6
#define REFL_OL_GPIO_Port GPIOB
#define G1_Pin GPIO_PIN_3
#define G1_GPIO_Port GPIOB
#define G2_Pin GPIO_PIN_4
#define G2_GPIO_Port GPIOB
#define G4_Pin GPIO_PIN_6
#define G4_GPIO_Port GPIOB
/* USER CODE BEGIN Private defines */

View File

@@ -1,37 +0,0 @@
#define SI5351_ADDRESS (0x60)
// #define SI5351_CRYSTAL_FREQ 12288000UL
#define SI5351_CRYSTAL_FREQ 19288000UL
#define SI5351_MIN_FREQ 3000
#define SI5351_MAX_FREQ 200000000
// #### registri ####
#define SI5351_OUT_ENABLE 3
#define SI5351_OUT_DIS_STATE 24
#define SI5351_INPUT_SOURCE 15
#define SI5351_CLK0_CONTROL 16
#define SI5351_CLK1_CONTROL 17
#define SI5351_CLK2_CONTROL 18
#define SI5351_PLLA 26
#define SI5351_PLLB 34
#define SI5351_MULTISYNTH0 42
#define SI5351_MULTISYNTH1 50
#define SI5351_MULTISYNTH2 58
#define SI5351_RESET 177
#define SI5351_CRYSTAL_LOAD 183
extern I2C_HandleTypeDef hi2c1;
void si5351_initialize(void);
void si5351_set_frequency(uint32_t freq, uint8_t pll);
void si5351_off_clk(uint8_t clk);
void si5351_on_clk(uint8_t clk);
extern uint8_t oeb;

1
squeow_sw/Inc/si5351.h Symbolic link
View File

@@ -0,0 +1 @@
../../../../../uC_driver/synth/si5351/si5351.h

View File

@@ -1,57 +1,69 @@
#define SYS_TICK_PRESCALE_10HZ 0
#define SYS_TICK_PRESCALE_1HZ 10
// device presenti
#define SQUEOW_SYNTH
#define SQUEOW_PWM
#define SQUEOW_SONDA_TEMPERATURA
#define SQUEOW_SONDA_DIRETTA
#define SQUEOW_SONDA_RIFLESSA
// #define SQUEOW_SONDA_CORRENTE
#define STATO_AUDIO_DISCONNESSO 0
#define STATO_AUDIO_CONNESSO 1
#define STATO_AUDIO_RIPRODUZIONE 2
#define STATO_AUDIO_TONO 3
#define STATO_AUDIO_ADC 4
// secondo l'ordine di rank dell'ADC
#define SQUEOW_ADC_CORRENTE 0 // IN4 (pin 12, A2)
#define SQUEOW_ADC_TEMPERATURA 1 // IN3 (pin 11, A3)
#define SQUEOW_ADC_DIRETTA 2 // IN13 (pin 10, A4)
#define SQUEOW_ADC_RIFLESSA 3 // IN17 (pin 9, A5)
#define SAMPLES_BUFFER_SIZE (1024) ///< deve essere ^2
#define SAMPLES_BUFFER_SIZE_MASK (SAMPLES_BUFFER_SIZE - 1)
#define SINE_INCREMENT 0.314
// soglie
#define SOGLIA_CORRENTE 3096
#define SOGLIA_TEMPERATURA 3096
#define SOGLIA_DIRETTA 3096
#define SOGLIA_RIFLESSA 3096
// base dei tempi per operazioni lente, la base dei tempi è 100hz
#define SYS_TICK_PRESCALE_10HZ 10
#define SYS_TICK_PRESCALE_1HZ 100
// modalità di blocco
#define MODALITA_BLOCCO_PERMANENTE
// #define MODALITA_BLOCCO_TEMPORANEO
// #define MODALITA_BLOCCO_BASSA_POTENZA
#define TEMPO_BLOCCO_TEMPORANEO 1000
#define DIVISORE_BLOCCO_BASSA_POTENZA 2
#define DEFAULT_SYNTH_FREQUENCY 1359000UL
#define SOGLIA_TEMPERATURA 2048
#define SOGLIA_CORRENTE 2048
#define SOGLIA_DIRETTA 2048
#define SOGLIA_RIFLESSA 2048
// ################################################
#define max(x,y) (((x) >= (y)) ? (x) : (y))
// SYS
extern uint8_t sys_tick, sys_tick_prescale, pwm_tick;
extern volatile uint8_t sys_tick, sys_tick_prescale;
// UART
int serial_write(char *ptr, size_t len);
extern UART_HandleTypeDef huart1;
#define UART_RX_BUF_SIZE 64
#define UART_RX_BUF_SIZE 256
extern uint8_t UART_RX_buf[UART_RX_BUF_SIZE];
#define UART_TX_BUF_SIZE 256
extern uint8_t UART_TX_buf[UART_TX_BUF_SIZE];
extern uint8_t UART_TX_buf_lenght;
// SYNTH
extern uint32_t freq;
// ADC1
extern uint16_t adc1_valore;
// ADC2
extern uint16_t adc2_valori[4];
extern uint8_t adc2_done, adc_blocco, adc_allarmi[4];
// per usare buffer da 32 settare WORD nel canale DMA
extern uint32_t adc2_valori[4];
extern uint8_t adc2_done, blocco, blocco_fatto, codice_allarme;
// audio
extern uint16_t sample_value;
extern uint8_t stato_audio;
extern double sine_increment;
extern uint16_t samples_ringbuf[SAMPLES_BUFFER_SIZE]; ///< buffer ad anello dei dati RX
extern uint32_t samples_ringbuf_input_index, samples_ringbuf_output_index;
extern uint8_t usb_audio_tick;
// ADC
void adc_rileva_soglie(uint32_t *adc_valori);
void processa_blocco(void);
// VU
void adc_rileva_soglie(uint16_t *adc_valori);
// MOD
extern uint16_t pwm_value1, pwm_value2, pwm_value3, pwm_value4;
extern uint8_t rails_number;
extern UART_HandleTypeDef huart1;
extern ADC_HandleTypeDef hadc1;
@@ -59,12 +71,11 @@ extern ADC_HandleTypeDef hadc2;
// funzie
void squeow_init(void);
void squeow_synth_init(void);
void squeow_synth_set(uint32_t freq);
void squeow_synth_on(void);
void squeow_synth_off(void);
uint32_t sat_sub(uint16_t x, uint16_t y);
uint16_t u16_sine(void);
uint16_t u12_sine(void);
uint16_t u11_sine(void);
void store_sample(uint16_t sample);
void store_samples(uint16_t *data, uint32_t size);
uint16_t get_sample(void);
uint16_t get_adc_sample(void);
uint32_t ringbuf_increment(uint32_t *index, uint32_t buff_size_mask);

View File

@@ -1,18 +1,49 @@
#include <stdio.h>
#include <string.h>
extern uint8_t vu_on, vu_value, vu_tmp_value;
extern uint8_t adc_stampa;
#ifndef SQUEOW_UI_H
#define SQUEOW_UI_H
extern uint8_t uart_sent;
// #define SQUEOW_UI_TOSTA
#define SQUEOW_UI_SERIOW
#define SQUEOW_UI_LED
#define SQUEOW_LED_BLOCCO_LAMPO 10
#define SQUEOW_LED_BLOCCO_PAUSA 80
#define VU_METER_RILASCIO 1
#define VU_METER_SOGLIA_PICCO 2040
#define VU_METER_TEMPO_PICCO 10000 // base 40khz
// codice lampeggi
#define SQUEOW_CODICE_TEMPERATURA 1
#define SQUEOW_CODICE_RIFLESSA 2
#define SQUEOW_CODICE_DIRETTA 3
#define SQUEOW_CODICE_CORRENTE 4
extern uint16_t ui_volume;
extern volatile uint8_t uart_sent;
// ################
void squeow_ui_init(void);
int serial_write_DMA(char *ptr, int len);
int serial_write(char *ptr, int len);
void vu_stampa(void);
void stampa_adc();
void seriow_var_dump(void);
void seriow_stab_dump(void);
void seriow_log(uint8_t sev, char *msg);
void tosta_freq(void);
void tosta_log(uint8_t sev, char *msg);
void tosta_var_bars(void);
void led_blocco(uint8_t led_blocco_lampi);
void led_pwm_duty(uint8_t duty);
// #####
uint16_t vu_meter(uint16_t campione);
uint16_t riscala_valori(uint16_t valore_in, uint16_t valore_in_minimo, uint16_t valore_in_massimo, uint16_t valore_out_minimo, uint16_t valore_out_massimo);
#endif

View File

@@ -115,7 +115,7 @@
* (when HSE is used as system clock source, directly or through the PLL).
*/
#if !defined (HSE_VALUE)
#define HSE_VALUE (12288000UL) /*!< Value of the External oscillator in Hz */
#define HSE_VALUE (24000000UL) /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */
#if !defined (HSE_STARTUP_TIMEOUT)

View File

@@ -22,7 +22,7 @@
#define __STM32G4xx_IT_H
#ifdef __cplusplus
extern "C" {
extern "C" {
#endif
/* Private includes ----------------------------------------------------------*/