ctr_mcu/trunk/user_define.h
N2232 2a6ddf4d26 0.17
・レジスタ書き込みでの強制ボリュームセット実装
・パナソニックのバッテリパラメータをダミーから差し替え(まだ機能してない)
・フルカラーお知らせLEDにきちんと対応
 現行の電源ボード、電源赤がPWMできたりするが実機に合わせてコードも整理
  でないと自動判別後が大変な為
・電源断時にLEDを何となくフェードアウト
・CTR側のI2Cレジスタの実装を修正。220バイト程ROMを節約
 エンバグ怖い
・I2C_mcuのモジュール初期化チェックなどの無駄を少し整理
・TWL I2Cの通信がどうにも間に合わないとき、リトライされてタイミングが悪いと0x00などを返していた。
 リトライ時にも正常に動作するように修正。エンバグ怖い
・廃止enumをちょっと整理
・I2Cレジスタの初期値・リセット時の初期化などを修正
・温度で充電停止周りを実装
・プラットフォームの判定を誤っていた。(0x7Fで読める)
・RCOMPの値の計算を間違えていた。算数もできないのか!
・デバッグコードを抜いた。(pm.c)
・rengeOSのデバッグを有効にしたままだった。I2C_TWLのパフォーマンスが全くでず不具合の嵐
・6秒で電源断を追加。(CTRレジスタから可変) デバッグで耐えられないのでまだ#ifdefでデフォルトを1秒にしてある
・電池無しからアダプタ差したり、アダプタ有りの状態から電池をつないだりで充電したりしなかったり電源はいらなかったり…を修正
・電源LEDが赤になるタイミングと、TWLへの電池残量への通知、NTRへの通知などの閾値がばらばらだったのを修正


git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@171 013db118-44a6-b54f-8bf7-843cb86687b1
2010-05-24 04:10:36 +00:00

279 lines
7.2 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 _USER_DEF_
#define _USER_DEF_
#define IIC_T_SLAVEADDRESS 0x4A
#define IIC_C_SLAVEADDRESS 0x4A
#define IIC_SLA_DCP 0x50
#ifdef _debug_led_
# define DBG_LED_on { PM2.4 = 0; P2.4 = 1; }
# define DBG_LED_off { PM2.4 = 1; P2.4 = 0; }
# define DBG_LED_toggle ( P2.4 ^= 1 )
#else
# define DBG_LED_on ;
# define DBG_LED_off ;
# define DBG_LED_toggle ;
#endif
#ifdef _PMIC_TWL_
# define PM_TEG_PWSW P7.5 // TEGのみ
# define PM_TEG_LCD_dis( val ) ( P7.6 = val ) // TEGのみ
#else
# 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 { 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
#ifndef _MODEL_CTR_
#define SND_DEPOP_SND_MUTE P7.7 = 1
#define SND_DEPOP_SND_ENABLE P7.7 = 0
#else
#define SND_DEPOP_SND_MUTE ;
#define SND_DEPOP_SND_ENABLE ;
#endif
// 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)
#ifdef _PMIC_CTR_
// 負論理です。注意。
#define BT_CHG_ENABLE() ( P4.3 = 0 )
#define BT_CHG_DISABLE() ( P4.3 = 1 )
#else
#define BT_CHG_ENABLE() ( P4.2 = 0 )
#define BT_CHG_DISABLE() ( P4.2 = 1 )
#endif
// 充電中(in)
#define BT_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_CS_ENABLE() P5.0 = 0
#define GYRO_CS_DISABLE() P5.0 = 1
#else
#define GYRO_CS_ENABLE() ;
#define GYRO_CS_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