||
/*******************************************
函数名称:CardPowerUp
函数功能:卡上电
输入参数:无
输出参数:无
描述:复位过程:先加VCC,200个时钟周期内加CLK,之后,SDA应在CLK加上后的200个时钟周期内被置于接收状态,CLK加上后,保持RST为低至少400个时钟周期,之后卡复位RST被置为高,SDA上的应答应在RST信号上升沿后400-40000个时钟周期内开始,RST为高后,等待400个时钟周期开始接收应答信号
*******************************************/
void CardPowerUp(void)
{
//卡SDA输出1,
CardSDAOutput;
CardSDAOutputHigh;
//卡上电输出高,不上电
CardPowerOutputHigh;
delay_ms2M(10);
//开始复位时序,卡上电200个时钟周期内加MCLK
//卡上电
CardPowerOutput;
CardPowerOutputLow;
Delay05XETU(); //186个时钟周期
//输出MCLK
MCLKOutput;
MCLKOutputLow;
MCLKOutputHigh;
MCLKSEL;
//MCLK加上后,卡复位脚输出低,保持至少400个时钟周期
CardRSTOutput;
CardRSTOutputLow;
Delay05XETU();
//SDA应在MCLK加上后200个时钟周期内被置于接收状态
//卡SDA脚置为输入
CardSDAInput;
Delay1ETU();//372个时钟周期
Delay1ETU();
//卡复位脚输出高,应答信号在RST变高后400-40000个时钟周期开始
CardRSTOutputHigh;
Delay1ETU();
}
/*******************************************
函数名称:EsamPowerUp
函数功能:Esam上电
输入参数:无
输出参数:无
描述:与卡上电时序相同,
*******************************************/
void EsamPowerUp(void)
{
//EsamSDA输出1,
EsamSDAOutput;
EsamSDAOutputHigh;
//Esam上电输出高,不上电
EsamPowerOutputHigh;
delay_ms2M(10);
//开始复位时序,Esam上电200个时钟周期内加MCLK
//Esam上电
EsamPowerOutput;
EsamPowerOutputLow;
Delay05XETU(); //186个时钟周期
//输出MCLK
MCLKOutput;
MCLKSEL;
//MCLK加上后,Esam复位脚输出低,保持至少400个时钟周期
EsamRSTOutput;
EsamRSTOutputLow;
Delay05XETU();
//SDA应在MCLK加上后200个时钟周期内被置于接收状态
//EsamSDA脚置为输入
EsamSDAInput;
Delay1ETU();//372个时钟周期
Delay1ETU();
//Esam复位脚输出高,应答信号在RST变高后400-40000个时钟周期开始
EsamRSTOutputHigh;
Delay1ETU();