99 lines
3.4 KiB
C
99 lines
3.4 KiB
C
#ifndef __CPG10_IO_H__
|
|
#define __CPG10_IO_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
#include "app_config.h"
|
|
#include "elite_board.h"
|
|
#include "nrf_gpio.h"
|
|
#include "nrf_spim.h"
|
|
|
|
#if (DEF_ELITE_MODEL == DEF_ELITE_CPG_V1_1)
|
|
|
|
#define UNDEF_GPIO 0xFFFFFFFF
|
|
#define VA1H_PIN NRF_GPIO_PIN_MAP(0, 22)
|
|
#define VA1L_PIN NRF_GPIO_PIN_MAP(0, 25)
|
|
#define VB1H_PIN NRF_GPIO_PIN_MAP(0, 19)
|
|
#define VB1L_PIN NRF_GPIO_PIN_MAP(0, 21)
|
|
#define VA2H_PIN NRF_GPIO_PIN_MAP(0, 17)
|
|
#define VA2L_PIN NRF_GPIO_PIN_MAP(0, 20)
|
|
#define TW_SCKI_0_PIN NRF_GPIO_PIN_MAP(0, 14)
|
|
#define TW_SCKI_1_PIN NRF_GPIO_PIN_MAP(0, 13)
|
|
#define ADPT_CLK_PIN NRF_GPIO_PIN_MAP(0, 11)
|
|
#define HV_EN_PIN NRF_GPIO_PIN_MAP(1, 8)
|
|
#define SPIM_CLK_PIN NRF_GPIO_PIN_MAP(0, 12)
|
|
#define SPIM_MISO_PIN NRF_GPIO_PIN_MAP(1, 9)
|
|
#define VB2H_PIN NRF_GPIO_PIN_MAP(0, 8)
|
|
#define VB2L_PIN NRF_GPIO_PIN_MAP(0, 6)
|
|
#define VA3H_PIN NRF_GPIO_PIN_MAP(0, 5)
|
|
#define VA3L_PIN NRF_GPIO_PIN_MAP(0, 27)
|
|
#define VB3H_PIN NRF_GPIO_PIN_MAP(0, 26)
|
|
#define VB3L_PIN NRF_GPIO_PIN_MAP(0, 4)
|
|
#define VA4H_PIN NRF_GPIO_PIN_MAP(0, 1)
|
|
#define VA4L_PIN NRF_GPIO_PIN_MAP(0, 0)
|
|
#define ADPT_LE_PIN NRF_GPIO_PIN_MAP(0, 31)
|
|
#define ADPT_CLR_PIN NRF_GPIO_PIN_MAP(1, 15)
|
|
#define CS_MEM_PIN NRF_GPIO_PIN_MAP(0, 2)
|
|
#define AIN0_PIN NRF_GPIO_PIN_MAP(0, 30)
|
|
#define AIN1_PIN NRF_GPIO_PIN_MAP(0, 28)
|
|
#define ADPT0_S4_PIN NRF_GPIO_PIN_MAP(1, 12)
|
|
#define ADPT0_S3_PIN NRF_GPIO_PIN_MAP(1, 14)
|
|
#define ADPT0_S2_PIN NRF_GPIO_PIN_MAP(0, 3)
|
|
#define ADPT0_S1_PIN NRF_GPIO_PIN_MAP(1, 13)
|
|
#define ADPT1_S4_PIN NRF_GPIO_PIN_MAP(1, 3)
|
|
#define ADPT1_S3_PIN NRF_GPIO_PIN_MAP(1, 10)
|
|
#define ADPT1_S2_PIN NRF_GPIO_PIN_MAP(1, 6)
|
|
#define ADPT1_S1_PIN NRF_GPIO_PIN_MAP(1, 11)
|
|
#define LED_R_PIN NRF_GPIO_PIN_MAP(0, 10)
|
|
#define LED_G_PIN NRF_GPIO_PIN_MAP(0, 9)
|
|
#define LED_B_PIN NRF_GPIO_PIN_MAP(1, 2)
|
|
#define VB4H_PIN NRF_GPIO_PIN_MAP(0, 24)
|
|
#define VB4L_PIN NRF_GPIO_PIN_MAP(0, 23)
|
|
#define SPIM_MOSI_PIN NRF_GPIO_PIN_MAP(0, 7)
|
|
#define TW_SDI_PIN NRF_GPIO_PIN_MAP(0, 7)
|
|
#define ADPT_DIN_PIN NRF_GPIO_PIN_MAP(0, 7)
|
|
#define UNCONNECTED_PIN NRF_GPIO_PIN_MAP(0, 2)
|
|
|
|
#define PULSE_ID_NULL 0
|
|
#define PULSE_ID_A 1
|
|
#define PULSE_ID_B 2
|
|
#define PULSE_ID_C 3
|
|
#define PULSE_ID_D 4
|
|
|
|
typedef struct
|
|
{
|
|
uint32_t VAxH;
|
|
uint32_t VAxL;
|
|
uint32_t VBxH;
|
|
uint32_t VBxL;
|
|
uint32_t idle_us; // min: 500us, max: 60sec
|
|
uint32_t point_us[7]; // toggle point timestamp
|
|
uint32_t pulse_cnt; // min: 1, max: 0xFFFFFFFF
|
|
uint32_t pulse_id; // NO_USE_IRQ / USE_TIMER1_IRQ / USE_TIMER2_IRQ
|
|
} pulse_gen_t;
|
|
|
|
void spim_xfer(uint32_t cs_pin,
|
|
nrf_spim_mode_t spi_mode,
|
|
uint8_t *p_tx_buffer,
|
|
uint16_t tx_buffer_length,
|
|
uint8_t *p_rx_buf,
|
|
uint16_t rx_buffer_length);
|
|
|
|
void cpg11_io_init(void);
|
|
void cpg11_pulse_init(uint32_t hw_idx, pulse_gen_t *p_pulse_gen, uint32_t len);
|
|
void cpg11_pulse_start(uint32_t idx, pulse_gen_t *p_pulse_gen);
|
|
void cpg11_pulse_stop(uint32_t hw_idx);
|
|
void cpg11_pulse_suspend_by_pulse_id(uint32_t pulse_id);
|
|
void cpg11_pulse_resume_by_pulse_id(uint32_t pulse_id);
|
|
|
|
#endif /* ! DEF_ELITE_MODEL */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* ! __CPG10_IO_H__ */
|