kopia lustrzana https://github.com/ArjanteMarvelde/uSDR-pico
75 wiersze
2.3 KiB
C
75 wiersze
2.3 KiB
C
#ifndef __USDR_H__
|
|
#define __USDR_H__
|
|
/*
|
|
* uSDR.h
|
|
*
|
|
* Created: Aug 2022
|
|
* Author: Arjan te Marvelde
|
|
*
|
|
* This file contains the system-wide definitions and platform services.
|
|
*
|
|
*/
|
|
|
|
#include "hardware/i2c.h"
|
|
|
|
|
|
/* Set this to 1 when FFT engine must be used */
|
|
|
|
#define DSP_FFT 1
|
|
|
|
|
|
/* GPIO (pin) assignments */
|
|
|
|
#define GP_ENC_A 2 // Pin 4: Encoder channel A
|
|
#define GP_ENC_B 3 // Pin 5: Encoder channel B
|
|
#define GP_AUX_0 6 // Pin 9: Enter, Confirm
|
|
#define GP_AUX_1 7 // Pin 10: Escape, Cancel
|
|
#define GP_AUX_2 8 // Pin 11: Left move
|
|
#define GP_AUX_3 9 // Pin 12: Right move
|
|
#define GP_PTT 15 // Pin 20: PTT line (low is active)
|
|
#define I2C0_SDA 16 // Pin 21: I2C channel 0 - data
|
|
#define I2C0_SCL 17 // Pin 22: I2C channel 0 - clock
|
|
#define I2C1_SDA 18 // Pin 24: I2C channel 1 - data
|
|
#define I2C1_SCL 19 // Pin 25: I2C channel 1 - clock
|
|
#define DAC_Q 20 // Pin 26: PWM DAC Q channel
|
|
#define DAC_I 21 // Pin 27: PWM DAC I channel
|
|
#define DAC_A 22 // Pin 29: PWM DAC Audio channel
|
|
#define ADC_Q 26 // Pin 31: ADC 0
|
|
#define ADC_I 27 // Pin 32: ADC 1
|
|
#define ADC_A 28 // Pin 34: ADC 2
|
|
|
|
|
|
|
|
/* Timer values */
|
|
|
|
#define LED_MS 1000 // LED flashing, half cycle duration
|
|
#define LOOP_MS 100 // Core 0 main loop timer (see also uSDR.c)
|
|
|
|
|
|
/* I2C addresses */
|
|
|
|
#define I2C_RX 0x21 // Expander on Rx board
|
|
#define I2C_BPF 0x20 // Expander on Filter board
|
|
#define I2C_VFO 0x60 // Si5351A
|
|
#define I2C_LCD 0x3E // Grove: 0x3E, 8574 backpack range: 0x20..0x27
|
|
|
|
|
|
/* I2C wrapper functions (blocking write and read) */
|
|
|
|
#define I2C_LINGER_US 200 // Linger time added after i2c SDK functions
|
|
|
|
int i2c_put_data(i2c_inst_t *i2c, uint8_t addr, const uint8_t *src, size_t len, bool nostop);
|
|
int i2c_get_data(i2c_inst_t *i2c, uint8_t addr, uint8_t *dst, size_t len, bool nostop);
|
|
|
|
|
|
/* LCD type selection (see also lcd.c) */
|
|
|
|
#define LCD_1804 0 // Type 0: Seeed / Grove
|
|
#define LCD_8574_ADA 1 // Type 1: Adafruit I2C backpack
|
|
#define LCD_8574_GEN 2 // Type 2: Generic I2C backpack
|
|
#define LCD_TYPE LCD_1804 // Active selection
|
|
|
|
|
|
|
|
#endif
|