42 lines
1.5 KiB
C
42 lines
1.5 KiB
C
|
|
/*******************************************************************************
|
||
|
|
* Copyright © 2019 TRINAMIC Motion Control GmbH & Co. KG
|
||
|
|
* (now owned by Analog Devices Inc.),
|
||
|
|
*
|
||
|
|
* Copyright © 2023 Analog Devices Inc. All Rights Reserved. This software is
|
||
|
|
* proprietary & confidential to Analog Devices, Inc. and its licensors.
|
||
|
|
*******************************************************************************/
|
||
|
|
|
||
|
|
|
||
|
|
#ifndef __UART_H_
|
||
|
|
#define __UART_H_
|
||
|
|
|
||
|
|
#include "RXTX.h"
|
||
|
|
|
||
|
|
// Switchable UART pin configuration due to pinout changes in TMC2208 v1.2 -> TMC2208 v1.3 aswell as TMC2209
|
||
|
|
typedef enum {
|
||
|
|
UART_PINS_1, // Default UART pinout (<= TMC2208 v1.2, UART_TXD = DIO17, UART_RXD = DIO18)
|
||
|
|
UART_PINS_2 // Alternate UART pinout (>= TMC2208 v1.3, UART_TXD = DIO10, UART_RXD = DIO11)
|
||
|
|
} UART_Pins;
|
||
|
|
|
||
|
|
typedef enum {
|
||
|
|
UART_MODE_DUAL_WIRE,
|
||
|
|
UART_MODE_SINGLE_WIRE,
|
||
|
|
UART_MODE_DUAL_WIRE_PushPull, // Use PushPull for TX instead of OpenDrain
|
||
|
|
} UART_Mode;
|
||
|
|
|
||
|
|
typedef struct {
|
||
|
|
UART_Pins pinout;
|
||
|
|
UART_Mode mode;
|
||
|
|
RXTXTypeDef rxtx;
|
||
|
|
} UART_Config;
|
||
|
|
|
||
|
|
extern UART_Config UART;
|
||
|
|
|
||
|
|
void UART0_RX_TX_IRQHandler_UART(void);
|
||
|
|
int32_t UART_readWrite(UART_Config *uart, uint8_t *data, size_t writeLength, uint8_t readLength);
|
||
|
|
void UART_readInt(UART_Config *channel, uint8_t slave, uint8_t address, int32_t *value);
|
||
|
|
void UART_writeInt(UART_Config *channel, uint8_t slave, uint8_t address, int32_t value);
|
||
|
|
void UART_setEnabled(UART_Config *channel, uint8_t enabled);
|
||
|
|
|
||
|
|
#endif /* __UART_H_ */
|