mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-15 20:35:33 +03:00
[G4] Transponder support (not tested)
This commit is contained in:
parent
f33dd32c33
commit
fcc68c45fa
5 changed files with 12 additions and 8 deletions
|
@ -80,7 +80,7 @@
|
||||||
uint8_t erlt[TRANSPONDER_DMA_BUFFER_SIZE_ERLT]; // 91-200
|
uint8_t erlt[TRANSPONDER_DMA_BUFFER_SIZE_ERLT]; // 91-200
|
||||||
} transponderIrDMABuffer_t;
|
} transponderIrDMABuffer_t;
|
||||||
|
|
||||||
#elif defined(STM32F4) || defined(STM32F7) || defined(STM32H7)
|
#elif defined(STM32F4) || defined(STM32F7) || defined(STM32H7) || defined(STM32G4)
|
||||||
|
|
||||||
typedef union transponderIrDMABuffer_s {
|
typedef union transponderIrDMABuffer_s {
|
||||||
uint32_t arcitimer[TRANSPONDER_DMA_BUFFER_SIZE_ARCITIMER]; // 620
|
uint32_t arcitimer[TRANSPONDER_DMA_BUFFER_SIZE_ARCITIMER]; // 620
|
||||||
|
@ -96,7 +96,7 @@ typedef struct transponder_s {
|
||||||
uint16_t bitToggleOne;
|
uint16_t bitToggleOne;
|
||||||
uint32_t dma_buffer_size;
|
uint32_t dma_buffer_size;
|
||||||
|
|
||||||
#if defined(STM32F3) || defined(STM32F4)|| defined(STM32F7) || defined(STM32H7) || defined(UNIT_TEST)
|
#if defined(STM32F3) || defined(STM32F4)|| defined(STM32F7) || defined(STM32H7) || defined(STM32G4) || defined(UNIT_TEST)
|
||||||
transponderIrDMABuffer_t transponderIrDMABuffer;
|
transponderIrDMABuffer_t transponderIrDMABuffer;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
#include "drivers/transponder_ir.h"
|
#include "drivers/transponder_ir.h"
|
||||||
#include "drivers/transponder_ir_arcitimer.h"
|
#include "drivers/transponder_ir_arcitimer.h"
|
||||||
|
|
||||||
#if defined(STM32F3) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7) || defined(UNIT_TEST)
|
#if defined(STM32F3) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7) || defined(STM32G4) || defined(UNIT_TEST)
|
||||||
|
|
||||||
extern const struct transponderVTable arcitimerTansponderVTable;
|
extern const struct transponderVTable arcitimerTansponderVTable;
|
||||||
static uint16_t dmaBufferOffset;
|
static uint16_t dmaBufferOffset;
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#include "drivers/transponder_ir.h"
|
#include "drivers/transponder_ir.h"
|
||||||
#include "drivers/transponder_ir_erlt.h"
|
#include "drivers/transponder_ir_erlt.h"
|
||||||
|
|
||||||
#if defined(STM32F3) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7) || defined(UNIT_TEST)
|
#if defined(STM32F3) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7) || defined(STM32G4) || defined(UNIT_TEST)
|
||||||
|
|
||||||
static uint16_t dmaBufferOffset;
|
static uint16_t dmaBufferOffset;
|
||||||
extern const struct transponderVTable erltTansponderVTable;
|
extern const struct transponderVTable erltTansponderVTable;
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#include "drivers/transponder_ir.h"
|
#include "drivers/transponder_ir.h"
|
||||||
#include "drivers/transponder_ir_ilap.h"
|
#include "drivers/transponder_ir_ilap.h"
|
||||||
|
|
||||||
#if defined(STM32F3) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7) || defined(UNIT_TEST)
|
#if defined(STM32F3) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7) || defined(STM32G4) || defined(UNIT_TEST)
|
||||||
|
|
||||||
static uint16_t dmaBufferOffset;
|
static uint16_t dmaBufferOffset;
|
||||||
extern const struct transponderVTable ilapTansponderVTable;
|
extern const struct transponderVTable ilapTansponderVTable;
|
||||||
|
|
|
@ -46,12 +46,14 @@ static uint16_t timerChannel = 0;
|
||||||
static uint8_t output;
|
static uint8_t output;
|
||||||
static uint8_t alternateFunction;
|
static uint8_t alternateFunction;
|
||||||
|
|
||||||
#if !(defined(STM32F7) || defined(STM32H7))
|
#if !(defined(STM32F7) || defined(STM32H7) || defined(STM32G4))
|
||||||
#error "Transponder (via HAL) not supported on this MCU."
|
#error "Transponder (via HAL) not supported on this MCU."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef STM32H7
|
#if defined(STM32H7)
|
||||||
DMA_RAM transponder_t transponder;
|
DMA_RAM transponder_t transponder;
|
||||||
|
#elif defined(STM32G4)
|
||||||
|
DMA_RAM_W transponder_t transponder;
|
||||||
#else
|
#else
|
||||||
transponder_t transponder;
|
transponder_t transponder;
|
||||||
#endif
|
#endif
|
||||||
|
@ -124,7 +126,7 @@ void transponderIrHardwareInit(ioTag_t ioTag, transponder_t *transponder)
|
||||||
__DMA2_CLK_ENABLE();
|
__DMA2_CLK_ENABLE();
|
||||||
|
|
||||||
/* Set the parameters to be configured */
|
/* Set the parameters to be configured */
|
||||||
#ifdef STM32H7
|
#if defined(STM32H7) || defined(STM32G4)
|
||||||
hdma_tim.Init.Request = dmaChannel;
|
hdma_tim.Init.Request = dmaChannel;
|
||||||
#else
|
#else
|
||||||
hdma_tim.Init.Channel = dmaChannel;
|
hdma_tim.Init.Channel = dmaChannel;
|
||||||
|
@ -136,10 +138,12 @@ void transponderIrHardwareInit(ioTag_t ioTag, transponder_t *transponder)
|
||||||
hdma_tim.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
|
hdma_tim.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
|
||||||
hdma_tim.Init.Mode = DMA_NORMAL;
|
hdma_tim.Init.Mode = DMA_NORMAL;
|
||||||
hdma_tim.Init.Priority = DMA_PRIORITY_HIGH;
|
hdma_tim.Init.Priority = DMA_PRIORITY_HIGH;
|
||||||
|
#if !defined(STM32G4)
|
||||||
hdma_tim.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
|
hdma_tim.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
|
||||||
hdma_tim.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
|
hdma_tim.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
|
||||||
hdma_tim.Init.MemBurst = DMA_MBURST_SINGLE;
|
hdma_tim.Init.MemBurst = DMA_MBURST_SINGLE;
|
||||||
hdma_tim.Init.PeriphBurst = DMA_PBURST_SINGLE;
|
hdma_tim.Init.PeriphBurst = DMA_PBURST_SINGLE;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Set hdma_tim instance */
|
/* Set hdma_tim instance */
|
||||||
hdma_tim.Instance = (DMA_ARCH_TYPE *)dmaRef;
|
hdma_tim.Instance = (DMA_ARCH_TYPE *)dmaRef;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue