mirror of
https://github.com/rvtr/twl_mcu.git
synced 2025-06-18 14:45:41 -04:00
167 lines
4.6 KiB
C
167 lines
4.6 KiB
C
#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
|