twl_mcu/user_define.h
2024-12-17 04:24:29 -05:00

167 lines
4.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _MD_USER_DEF_
#define _MD_USER_DEF_
#include "config.h"
#define n_sys_reset ( P1.2 )
#define n_sys_reset_ast { PM1.2 = 0; P1.2 = 0; }
#define n_sys_reset_ngt { PM1.2 = 1; P1.2 = 1; }
#define n_irq_ast { P12.0 = 0; PM12.0 = 0; } // 念のため。
#define n_irq_ngt { P12.0 = 1; PM12.0 = 1; }
#define n_wifi_reset_ast ( P12.1 = 0 )
#define n_wifi_reset_ngt ( P12.1 = 1 ) // H にするとリセットがかかる
#define PM_OFF ( P12.2 ) // オフ直前に H になる
#define PM_SLP ( P0.0 )
#define n_key_minus ( P1.3 )
#define n_key_plus ( P1.4 )
// Vref = 2.8V 対応前、実力で動作/デバイスにダメージあり
#define GPIO_dir ( PM2.2 )
#define GPIO_dat ( P2.2 )
#define flash_we ( P2.0 )
#define n_key_pwsw ( P2.1 )
#define n_key_func ( P3.0 ) // select
#define n_ac_supp ( P3.3 )
#define led_wifi ( P1.7 )
#define led_G_on ( P1.6 = 1 )
#define led_G_pwm ( P1.6 = 0 )
#define led_R_on ( P1.5 = 1 )
#define led_R_pwm ( P1.5 = 0 )
#define led_cam ( P2.2 )
#define WDTRF 0x10
#define TxPE ( P3.2 )
#define RxPE ( P0.1 )
#define IS_led_cam_mode ( PM0.1 ) // 赤箱対応
#define IS_led_cam RxPE // 赤箱対応
enum EEP_DAT_NAME { DAT_BL_BRIGHT, DAT_ADC_COMP };
/*
* 外から見たときの、マイコンレジスタアドレス。
* 拡張性などを考えて、飛び飛び
*/
/*
* 割り込み要因フラグは
* MSB:外部電源供給有り/なし変化 (未実装)
* 6:Volキー操作変更に限らず。MAX時にでも。
* 5:電池電圧 少 検出
* 4: 僅
* 3:電源スイッチ 押され検出
* 2:(未設定)
* 1:電源スイッチ OFF 時間押され検出
* LSB: リセット
*/
enum REG_ADRS{ // 未定義アドレスへ書き込んだ際の動作は不定
REG_ADRS_VER_INFO = 0x00,
REG_ADRS_PMIC_INFO,
REG_ADRS_BATT_INFO,
REG_ADRS_IRQ = 0x10,
REG_ADRS_COMMAND,
REG_ADRS_MODE,
REG_ADRS_POWER_INFO = 0x20,
REG_ADRS_POWER_SAVE,
REG_ADRS_WIFI = 0x30,
REG_ADRS_CAM,
REG_ADRS_VOL = 0x40,
REG_ADRS_BL,
REG_ADRS_ADC_CALIB = 0x60,
REG_ADRS_ADC_CALIB_STATUS,
REG_ADRS_ADC_CALIB_VALUE,
REG_ADRS_POWER_LED,
REG_ADRS_TEMP0 = 0x70, // 0x77 まで。
REG_ADRS_TEMP1,
REG_ADRS_TEMP2,
REG_ADRS_TEMP3,
REG_ADRS_TEMP4,
REG_ADRS_TEMP5,
REG_ADRS_TEMP6,
REG_ADRS_TEMP7,
REG_ADRS_TIME_PWSW_DELAY = 0x80,
REG_ADRS_TIME_PWSW_THRESHOLD
};
/*
* マイコン内部でのレジスタの実装
* もちろん効率を考えて、つめてある
*/
enum REG_ADRS_INSIDE_MCU{
REG_INT_ADRS_VER_INFO = 0x00,
REG_INT_ADRS_PMIC_INFO,
REG_INT_ADRS_BATT_INFO,
REG_INT_ADRS_IRQ, // 0x10,
REG_INT_ADRS_COMMAND,
REG_INT_ADRS_MODE,
REG_INT_ADRS_POWER_INFO, // 0x20,
REG_INT_ADRS_POWER_SAVE,
REG_INT_ADRS_WIFI, // 0x30,
REG_INT_ADRS_CAM,
REG_INT_ADRS_VOL, // 0x40,
REG_INT_ADRS_BL,
REG_INT_ADRS_ADC_CALIB, // 0x60,
REG_INT_ADRS_ADC_CALIB_STATUS,
REG_INT_ADRS_ADC_CALIB_VALUE,
REG_INT_ADRS_POWER_LED,
REG_INT_ADRS_TEMP0, // 0x70 - 0x77
REG_INT_ADRS_TEMP1,
REG_INT_ADRS_TEMP2,
REG_INT_ADRS_TEMP3,
REG_INT_ADRS_TEMP4,
REG_INT_ADRS_TEMP5,
REG_INT_ADRS_TEMP6,
REG_INT_ADRS_TEMP7,
REG_INT_ADRS_TIME_PWSW_DELAY,
REG_INT_ADRS_TIME_PWSW_THRESHOLD
};
#define REGISTER_SIZE 27
#define BL_IND_MAX 4 // 配列番。配列数じゃないよ
#define IIC_SLV_ADDR_MONITOR 0x6E
typedef enum { Wake, Sleep } sleep_status_;
enum { NTR, TWL };
#ifdef iic_debug_msg
#define DBG_IIC_REG_TMP0( x ) vregs[ REG_INT_ADRS_TEMP0 ] = x
#define DBG_IIC_REG_TMP1( x ) vregs[ REG_INT_ADRS_TEMP1 ] = x
#define DBG_IIC_REG_TMP2( x ) vregs[ REG_INT_ADRS_TEMP2 ] = x
#define DBG_IIC_REG_TMP3( x ) vregs[ REG_INT_ADRS_TEMP3 ] = x
#define DBG_IIC_REG_TMP4( x ) vregs[ REG_INT_ADRS_TEMP4 ] = x
#define DBG_IIC_REG_TMP5( x ) vregs[ REG_INT_ADRS_TEMP5 ] = x
#define DBG_IIC_REG_TMP6( x ) vregs[ REG_INT_ADRS_TEMP6 ] = x
#define DBG_IIC_REG_TMP7( x ) vregs[ REG_INT_ADRS_TEMP7 ] = x
#else
#define DBG_IIC_REG_TMP0( x ) ;
#define DBG_IIC_REG_TMP1( x ) ;
#define DBG_IIC_REG_TMP2( x ) ;
#define DBG_IIC_REG_TMP3( x ) ;
#define DBG_IIC_REG_TMP4( x ) ;
#define DBG_IIC_REG_TMP5( x ) ;
#define DBG_IIC_REG_TMP6( x ) ;
#define DBG_IIC_REG_TMP7( x ) ;
#endif
#endif