/**
 * @file   MKY43.h
 * @author StepTechnica
 * @date   Feb 02, 2023
 * 
 * @brief Evaluation Board 用ヘッダーファイル「MKY43デバイス」
 * 
 * @copyright (C) 2022- StepTechnica Co.,Ltd.
 * 
 * このソフトウェアは、コピー利用、配布、変更の追加、変更を加えたもの再配布、商用利用、有料販売など、どなたも自由にお使いいただくことができます。
 * このソフトウェアには保証はついていません。
 * このソフトウェアを利用したことで問題が起きた際に、ソフトウェアの製作者は一切の責任を負いません。
 * 
 */

#ifndef MKY_43_H
#define MKY_43_H

/* -----------------------------------------------------------------------------
 * #defineマクロ定義
 */
#define MKY_43							//プリプロセッサのデバイス識別用

#define MKY_MEMORY_BASE		0x60000000	//メモリ開始アドレス
#define MKY_MEMORY_SIZE		0x800		//メモリサイズ
#define MAX_ACCESS_SIZE		(0x800)		//コマンドからアクセスできるメモリのサイズ

#define MKY_OFS_MEMORY		0			//メモリ初期化 オフセット
#define MKY_LEN_MEMORY		0x300		//メモリ初期化 長さ

#define MKY_OFS_MEMORY_1	0x400		//メモリ初期化 後半 オフセット
#define MKY_LEN_MEMORY_1	0x200		//メモリ初期化 後半 長さ
#define MKY_OFS_GM	        0			//グローバルメモリ オフセット
#define MKY_LEN_GM  		0x200		//グローバルメモリ 長さ
#define OFS_GM_MIN			0
#define OFS_GM_MAX			0x1FF
#define GM_BLKSIZE			8			//一つのメモリブロックのサイズ。

#define OFS_regBCR			0x356		//Basic Control Register
#define BIT_regBCR_SA		0			//Station Address bit
#define MASK_regBCR_SA		0x003F		//Station Address mask
#define BIT_regBCR_BPS		6			//BPS bit
#define BIT_regBCR_BPS0
#define MASK_regBCR_BPS		0x00C0		//BPS mask
#define BIT_regBCR_OWN		8			//OWN width bit
#define MASK_regBCR_OWN		0x3F00		//OWN width mask
#define BIT_regBCR_LFS		15			//Long Frame Select bit
#define MASK_regBCR_LFS		0x8000		//Long Frame Select mask

#define OFS_regSCR			0x366		//System Control Register
#define BIT_regSCR_START	8			//START bit
#define BIT_regSCR_RUN		9			//RUN phase bit
#define BIT_regSCR_CALL		10			//CALL phase bit
#define BIT_regSCR_BRK		11			//BReaK phase bit
#define BIT_regSCR_GMM		15			//Global Memory Monitor bit

#define OFS_regRFR			0x300       //Receive Flag Register
#define OFS_regLFR			0x308       //Link Flag Register
#define OFS_regMFR			0x310       //Member Flag Register
#define OFS_regDRFR			0x318       //Data Renewal Flag Register
#define OFS_regLGR			0x320       //Link Group Register
#define OFS_regMGR			0x328       //Member Group Register
#define OFS_regDRCR			0x330       //Data Renewal Check Register
#define OFS_regRHCR0		0x338       //Read Hazzard Control Register 0
#define OFS_regRHCR1		0x33A       //Read Hazzard Control Register 1
#define OFS_regWHCR0		0x33C		//Write Hazard Control Register 0
#define OFS_regWHCR1		0x33E		//Write Hazard Control Register 1
#define OFS_regMSLR			0x340       //Mail Send Limit time Register
#define OFS_regMSRR			0x342       //Mail Send Result Register
#define OFS_regMESR			0x344       //Mail Error Status Register
#define OFS_regMSCR			0x346       //Mail Send Control Register
#define OFS_regMR0CR		0x348       //Mail Receive 0 Control Register
#define OFS_regMR1CR		0x34A       //Mail Receive 1 Control Register
#define OFS_regCCTR			0x34C       //Care CounTer Register
#define OFS_regUTCR			0x34E       //UTility pin Control Register
#define OFS_regQCR			0x350       //Query Control Register
#define OFS_regNFSR			0x352       //New Final Station Register
#define OFS_regFSR			0x354       //Final Station Register
#define OFS_regINT0CR		0x358       //INTerrupt 0 Control Register
#define OFS_regINT1CR		0x35A       //INTerrupt 1 Control Register
#define OFS_regIT0CR		0x35C       //Interrupt Timing 0 Control Register
#define OFS_regIT1CR		0x35E       //Interrupt Timing 1 Control Register
#define OFS_regINT0SR		0x360       //INTerrupt 0 Status Register
#define OFS_regINT1SR		0x362       //INTerrupt 1 Status Register
#define OFS_regSSR			0x364       //System Status Register
#define OFS_regCCR			0x368       //Chip Code Register
#define OFS_regRHPB0		0x370       //Read Hazzard Protection Buffer 0
#define OFS_regRHPB1		0x378       //Read Hazzard Protection Buffer 1
#define OFS_regWHPB0		0x380       //Write Hazzard Protection Buffer 0
#define OFS_regWHPB1		0x388       //Write Hazzard Protection Buffer 1

//CCR
#define VAL_CCR10			0x4B4D       // 'M' = 0x4D, 'K' = 0x4B
#define VAL_CCR32			0x3459       // 'Y' = 0x59, '4' = 0x34
#define VAL_CCR54			0x5F33       // '3' = 0x33, '_' = 0x5F
#define VAL_CCR76			0x3076       // 'v' = 0x76, '0' = 0x30

#endif//MKY_43_H//MKYデバイス初期化。
