You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.7 KiB
48 lines
1.7 KiB
|
11 hours ago
|
#include "r_cg_macrodriver.h"
|
||
|
|
#include "r_cg_serial.h"
|
||
|
|
#include "r_cg_port.h"
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// OWI에 사용할 핀 정의 (P70)
|
||
|
|
#define OWI_PORT_P P7 // 포트 출력 레지스터
|
||
|
|
#define OWI_PORT_PM PM7 // 포트 방향 (1: 입력, 0: 출력)
|
||
|
|
#define OWI_PORT_PU PU7 // 내부 풀업
|
||
|
|
#define OWI_PORT_POM POM7 // Open-drain 설정
|
||
|
|
|
||
|
|
#define OWI_PIN_MASK (1 << 0) // P70 = bit 0
|
||
|
|
#define OWI_BIT_PERIOD_US 100
|
||
|
|
#define TBIT OWI_BIT_PERIOD_US
|
||
|
|
#define TLOW_0 (TBIT * 0.75) // 75us
|
||
|
|
#define TLOW_1 (TBIT * 0.25) // 225us
|
||
|
|
#define TSTOP_LOW (TBIT * 2) // 600us
|
||
|
|
#define TIDLE (TBIT * 3) // 900us
|
||
|
|
#define TSTART_HOLD 50 // ≥25us 기준으로 50us 확보
|
||
|
|
#define SECURE_HIGH 250
|
||
|
|
#define SECURE_TOGGLE_COUNT 3
|
||
|
|
#define SECURE_TOGGLE_LOW 40
|
||
|
|
#define SECURE_TOGGLE_HIGH 60
|
||
|
|
|
||
|
|
static uint32_t bit_period_us = 100; // 기본 OWI 비트 시간
|
||
|
|
|
||
|
|
void OWI_EnablePower(void);
|
||
|
|
void OWI_DisablePower(void);
|
||
|
|
void GPIO_Clear(void);
|
||
|
|
void GPIO_Input(void);
|
||
|
|
int GPIO_Read(void);
|
||
|
|
void OWI_Init(uint32_t bit_time_us);
|
||
|
|
void OWI_Start(void);
|
||
|
|
void OWI_Stop(void);
|
||
|
|
void OWI_SecureStop(void);
|
||
|
|
void OWI_WriteBit(int bit);
|
||
|
|
void OWI_WriteByte(uint8_t data);
|
||
|
|
uint8_t OWI_ReadBit(void);
|
||
|
|
uint8_t OWI_ReadByte(void);
|
||
|
|
void OWI_T_ReadBytesAndPrint(int length);
|
||
|
|
void OWI_ReadBytesAndPrint(int length, uint8_t id);
|
||
|
|
void OWI_T_CommandMode(const uint8_t *tx_data, uint8_t tx_len, uint8_t id);
|
||
|
|
void OWI_A_CommandMode(const uint8_t *tx_data, uint8_t tx_len, uint8_t id);
|
||
|
|
void owi_write_coefficients(void);
|
||
|
|
void OWI_CommandMode(const uint8_t *tx_data, uint8_t tx_len, uint8_t id);
|
||
|
|
void OWI_disable();
|
||
|
|
void OWI_Diagnostic(uint8_t id);
|