mirror of
https://github.com/rvtr/ctr_mcu.git
synced 2025-06-19 09:05:48 -04:00

・電源LEDが青でないときに電源断を行うと、次回の起動時に問答無用で強制電源断が発生するのを修正 ・モード遷移中にリセットなどでTWL側のMCUレジスタが不整合になるのを強制クリア ・アドレス 0x7F の本体情報の読み出しを、8文字以下で打ち切るとI2Cをがめてしまい、続く数文字分の通信に対して期待しない値を返してしまっていたのを修正(task_misc) ・試遊台対応 ・LED_NOTIF_DATAを書くと時計が狂うのを修正 git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@303 013db118-44a6-b54f-8bf7-843cb86687b1
269 lines
7.1 KiB
C
269 lines
7.1 KiB
C
#ifndef _USER_DEF_
|
||
#define _USER_DEF_
|
||
|
||
|
||
#define IIC_T_SLAVEADDRESS 0x4A
|
||
#define IIC_C_SLAVEADDRESS 0x4A
|
||
#define IIC_C_SLAVEADDRESS_DMY 0x4C
|
||
|
||
#define IIC_SLA_DCP 0x50
|
||
|
||
#ifdef _debug_led_
|
||
# define DBG_LED_on { PM2.1 = 0; P2.1 = 1; }
|
||
# define DBG_LED_off { P2.1 = 0; }
|
||
# define DBG_LED_toggle ( P2.1 ^= 1 )
|
||
# define DBG_LED2_on { PM2.2 = 0; P2.2 = 1; }
|
||
# define DBG_LED2_off { P2.2 = 0; }
|
||
# define DBG_LED2_toggle ( P2.2 ^= 1 )
|
||
|
||
#else
|
||
# define DBG_LED_on ;
|
||
# define DBG_LED_off ;
|
||
# define DBG_LED_toggle ;
|
||
# define DBG_LED2_on ;
|
||
# define DBG_LED2_off ;
|
||
# define DBG_LED2_toggle ;
|
||
#endif
|
||
|
||
#ifdef _PMIC_CTR_
|
||
# define SLP_ACK P7.7
|
||
#endif
|
||
|
||
|
||
#define IIC_SLA_CODEC 0xA4
|
||
#define IIC_SLA_ACCEL 0x30 // ST LIS331DLH
|
||
|
||
|
||
// PMxは0で出力モード
|
||
|
||
// SoC
|
||
#ifdef _MODEL_TEG2_
|
||
#define IRQ0_ast { P3.0 = 0; PM3.0 = 0; }
|
||
#define IRQ0_neg { PM3.0 = 1; }
|
||
#define IRQ0 ( P3.0 )
|
||
#endif
|
||
#ifdef _MODEL_WM0_
|
||
#define IRQ0_ast { P3.0 = 0; PM3.0 = 0; }
|
||
#define IRQ0_neg { PM3.0 = 1; }
|
||
#define IRQ0 ( P3.0 )
|
||
#endif
|
||
|
||
#ifdef _MODEL_TS0_
|
||
#define IRQ0_ast { P7.6 = 0; PM7.6 = 0; }
|
||
#define IRQ0_neg { PM7.6 = 1; }
|
||
#define IRQ0 ( P7.6 )
|
||
#endif
|
||
#ifdef _MODEL_CTR_
|
||
#define IRQ0_ast { P7.6 = 0; PM7.6 = 0; }
|
||
#define IRQ0_neg { P7.6 = 1; }
|
||
#define IRQ0_enable { PM7.6 = 0; }
|
||
#define IRQ0_disable { PM7.6 = 1; }
|
||
#define IRQ0 ( P7.6 )
|
||
#endif
|
||
|
||
|
||
// ↓誤代入防止
|
||
#define RESET1_n ( P0.0 )
|
||
|
||
#if 0 // PM_RESET1~を使う
|
||
#define RESET1_ast { P0.0 = 0; PM0.0 = 0; }
|
||
#define RESET1_neg { PM0.0 = 1; }
|
||
#endif
|
||
|
||
#define RESET2_ast { P0.1 = 0; PM0.1 = 0; }
|
||
#define RESET2_neg { PM0.1 = 1; }
|
||
|
||
#define SLP_REQ P12.0
|
||
|
||
// FCRAM
|
||
#ifdef _MODEL_TEG2_
|
||
#define FCRAM_RST P14.0
|
||
#define FCRAM_RST_ast { P14.0 = 0; }
|
||
#define FCRAM_RST_neg { P14.0 = 1; }
|
||
#endif
|
||
#ifdef _MODEL_WM0_
|
||
#define FCRAM_RST P14.0
|
||
#define FCRAM_RST_ast { P14.0 = 0; }
|
||
#define FCRAM_RST_neg { P14.0 = 1; }
|
||
#endif
|
||
|
||
#ifdef _MODEL_TS0_
|
||
#define FCRAM_RST P3.0
|
||
#define FCRAM_RST_ast { P3.0 = 0; }
|
||
#define FCRAM_RST_neg { P3.0 = 1; }
|
||
#endif
|
||
#ifdef _MODEL_CTR_
|
||
#define FCRAM_RST P3.0
|
||
#define FCRAM_RST_ast { P3.0 = 0; }
|
||
#define FCRAM_RST_neg { P3.0 = 1; }
|
||
#endif
|
||
|
||
|
||
// CODEC
|
||
#define PM_IRQ_n P7.2
|
||
// INTP6
|
||
|
||
// PM
|
||
#define PM_EXTDC_n P7.0
|
||
// INTP7
|
||
//#define BT_TEMP P15.0
|
||
// ANI8
|
||
//#define BT_DET P15.1
|
||
// ANI9
|
||
#define BT_DET_P P1.6
|
||
#define BT_TEMP_P P1.7
|
||
|
||
|
||
// 充電せよ(out)
|
||
// 負論理です。注意。
|
||
#define BT_CHG_ENABLE() ( P4.3 = 0 )
|
||
#define BT_CHG_DISABLE() ( P4.3 = 1 )
|
||
#define BT_CHG_Ena_n P4.3
|
||
|
||
// 充電中(in)
|
||
#define BT_IN_CHG_n P5.1
|
||
|
||
#define SW_WIFI_n P7.4
|
||
// KR4
|
||
#define SW_POW_n P7.3
|
||
// KR3
|
||
#define SW_SEL_n P2.3
|
||
//#define VOL P2.7
|
||
// ANI7
|
||
|
||
#define SW_HOME_n_JIKKI P20.4
|
||
// INTP22
|
||
#define SW_HOME_n_TSBOARD P2.0
|
||
|
||
// WiFi
|
||
#ifndef _TEG_
|
||
#define WL_TX P20.3 // INTP21
|
||
#else
|
||
#define WL_TX P20.3 // INTP21
|
||
#endif
|
||
|
||
//#define LED_CAM P1.0 // TO02
|
||
//#define LED_WIFI P1.1 // TO03
|
||
//#define LED_NOTIFY P1.3 // TO05
|
||
//#define LED_TUNE P5.2 // SLTO ← TO01
|
||
//#define LED_POW2 P1.4 // TO06 ( 青 )
|
||
//#define LED_POW1 P1.5 // TO07 ( 赤 )
|
||
//#define LED_CHARGE P2.4
|
||
|
||
|
||
#ifdef _MODEL_TEG2_
|
||
#define I2C_PU_on() P5.3 = 1
|
||
#define I2C_PU_off() P5.3 = 0
|
||
#endif
|
||
|
||
#ifdef _MODEL_TS0_
|
||
#define I2C_PU_on() P5.3 = 1
|
||
#define I2C_PU_off() P5.3 = 0
|
||
#endif
|
||
|
||
#ifdef _MODEL_WM0_
|
||
#define I2C_PU_on() P5.3 = 1
|
||
#define I2C_PU_off() P5.3 = 0
|
||
#endif
|
||
|
||
#ifdef _MODEL_CTR_
|
||
// P5.3 に加え、P5.5, P140 P141
|
||
// P140が出力専用なので...
|
||
#define I2C_PU_on() { PM5.3 = 1; PM3.3 = 1; P14 |= 0x03; P5.3 = 1; PM5.3 = 0; P3.3 = 1; PM3.3 = 0; }
|
||
#define I2C_PU_off() { PM5.3 = 1; PM3.3 = 1; P14 &= ~0x03; P5.3 = 0; PM5.3 = 0; P3.3 = 0; PM3.3 = 0; }
|
||
#endif
|
||
|
||
#ifdef _MODEL_CTR_
|
||
#define GYRO_ENABLE() P5.0 = 0
|
||
#define GYRO_DISABLE() P5.0 = 1
|
||
#else
|
||
#define GYRO_ENABLE() ;
|
||
#define GYRO_DISABLE() ;
|
||
#endif
|
||
|
||
//#define I2C_M_SDA P3.1 // SDA10
|
||
//#define I2C_M_SCL P3.2 // SCL10
|
||
|
||
//#define I2C_0_SCL P6.0 // IIC_TWL SCL0
|
||
//#define I2C_0_SDA P6.1 // SDA0
|
||
|
||
//#define I2C_1_SCL P20.0 // IIC CTR SCL1
|
||
//#define I2C_1_SDA P20.1 // SDA1
|
||
|
||
//#define 32kHz_O P1.2 // RTCCL
|
||
//#define 32k_I1 P12.3 // XT1
|
||
//#define 32k_I2 P12.4 // XT2
|
||
|
||
#define DIPSW_0 P4.0 // mini cube ソフトウェアディップスイッチ
|
||
#define DIPSW_1 P4.1 // mini cube ソフトウェアディップスイッチ
|
||
|
||
#ifndef _MODEL_WM0_
|
||
#define SHELL_OPEN P7.1 // INTP5 ふた開閉 (閉じると?)
|
||
#else
|
||
#define SHELL_OPEN 1
|
||
#endif
|
||
|
||
//#define DBG_VR P2.6
|
||
// ANI6
|
||
|
||
#define DBG P14.1
|
||
|
||
#ifdef _MODEL_TEG2_
|
||
#define ACC_VALID P15.2
|
||
#define ACCEL_INT1 P2.5
|
||
#endif
|
||
|
||
#ifdef _MODEL_TS0_
|
||
#define ACC_VALID P20.5
|
||
#define ACCEL_INT1 P2.5
|
||
#endif
|
||
|
||
#ifdef _MODEL_WM0_
|
||
// テレコになっていたが、センサ側の設定を変えたため、TS0と同じでよい
|
||
#define ACC_VALID P20.5
|
||
#define ACCEL_INT1 P2.5
|
||
#endif
|
||
|
||
#ifdef _MODEL_CTR_
|
||
#define ACC_VALID P20.5
|
||
#define ACCEL_INT1 P2.5
|
||
#endif
|
||
|
||
|
||
|
||
#define KR_SW_POW ( 1 << 3 )
|
||
#define KR_SW_WIFI ( 1 << 4 )
|
||
|
||
|
||
#define INFO_LED_IS_FULLCOLOR_n P20.2
|
||
#define INFO_LED_IS_FULLCOLOR_PM PM20.2
|
||
#define INFO_LED_IS_FULLCOLOR_PU PU20.2
|
||
|
||
|
||
///////////////////////////////////////////////////////////
|
||
|
||
#define INT_MSK0_IIC_M_DMA 0b0001000000000000
|
||
#define INT_MSK0_SHELL 0b0000000010000000
|
||
#define INT_MSK0_EXTDC 0b0000000001000000
|
||
//#define INT_MSK0_SLP 0b0000000000000100 )
|
||
//#define INT_MSK0_RSV 0b1110111100111011 )
|
||
#define INT_MSK0_RSV 0b1110111100111111
|
||
|
||
#define INT_MSK1_KR 0b0000100000000000
|
||
#define INT_MSK1_RTCINTVAL 0b0000010000000000
|
||
#define INT_MSK1_RTCALARM 0b0000001000000000
|
||
#define INT_MSK1_ADC 0b0000000100000000
|
||
#define INT_MSK1_IIC_CTR 0b0000000000001000
|
||
#define INT_MSK1_IIC_MCU 0b0000000000000001
|
||
#define INT_MSK1_RSV 0b1111000011110110
|
||
|
||
#define INT_MSK2_WIFI_TX_KE3 0b00010000
|
||
#define INT_MSK2L_RSV 0b11101111
|
||
|
||
#define INT_MSK2_IIC_TWL ( 0b0000000100000000 )
|
||
#define INT_MSK2_WIFI_TX_BSR ( 0b0000010000000000 )
|
||
#define INT_MSK2_CODEC_PMIRQ ( 0b0000000000001000 )
|
||
#define INT_MSK2_RSV 0b1111101111110111
|
||
|
||
#endif
|