📄 triton_pm.c
字号:
//===============================================================================
// TEXAS INSTRUMENTS INCORPORATED PROPRIETARY INFORMATION
//
// Property of Texas Instruments
// For Unrestricted Internal Use Only
// Unauthorized reproduction and/or distribution is strictly prohibited.
// This product is protected under copyright law and trade secret law
// as an unpublished work.
// Created 2000, (C) Copyright 1999 Texas Instruments. All rights reserved.
//
//===============================================================================
#include "global_types.h"
#include "triton_mapping.h"
#include "triton_pm.h"
#include "result.h"
//########################################################################################
// NAME : PM_P1_DEVSLP
//
// DESCRIPTION : SW put P1 in Sleep mode with ACT2SLP transition
//
// PARAMETERS : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P1_DEVSLP(void)
{
MSI2C_AccessPage(PMC_MASTER_page); //Page 1
MSI2C_MasterPollingSendAbb(PMC_MASTER_P1_DEV,DEVSLP);
}
//########################################################################################
// NAME : PM_P2_DEVSLP
//
// DESCRIPTION : SW put P2 in Sleep mode with ACT2SLP transition
//
// PARAMETERS : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P2_DEVSLP(void)
{
MSI2C_AccessPage(PMC_MASTER_page); //Page 1
MSI2C_MasterPollingSendAbb(PMC_MASTER_P2_DEV,DEVSLP);
}
//########################################################################################
// NAME : PM_P3_DEVSLP
//
// DESCRIPTION : SW put P3 in Sleep mode with ACT2SLP transition
//
// PARAMETERS : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P3_DEVSLP(void)
{
MSI2C_AccessPage(PMC_MASTER_page); //Page 1
MSI2C_MasterPollingSendAbb(PMC_MASTER_P3_DEV,DEVSLP);
}
//########################################################################################
// NAME : PM_P1_P2_DEVSLP
//
// DESCRIPTION : SW put P2 then P1 in Sleep mode with ACT2SLP transition
//
// PARAMETERS : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P1_P2_DEVSLP(void)
{
MSI2C_AccessPage(PMC_MASTER_page); //Page 1
MSI2C_MasterPollingSendAbb(PMC_MASTER_P2_DEV,DEVSLP);
MSI2C_MasterPollingSendAbb(PMC_MASTER_P1_DEV,DEVSLP);
}
//########################################################################################
// NAME : PM_P1_P3_DEVSLP
//
// DESCRIPTION : SW put P3 then P1 in Sleep mode with ACT2SLP transition
//
// PARAMETERS : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P1_P3_DEVSLP(void)
{
MSI2C_AccessPage(PMC_MASTER_page); //Page 1
MSI2C_MasterPollingSendAbb(PMC_MASTER_P3_DEV,DEVSLP);
MSI2C_MasterPollingSendAbb(PMC_MASTER_P1_DEV,DEVSLP);
}
//########################################################################################
// NAME : PM_P2_P3_DEVSLP
//
// DESCRIPTION : SW put P2 then P3 in Sleep mode with ACT2SLP transition
//
// PARAMETERS : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P2_P3_DEVSLP(void)
{
MSI2C_AccessPage(PMC_MASTER_page); //Page 1
MSI2C_MasterPollingSendAbb(PMC_MASTER_P2_DEV,DEVSLP);
MSI2C_MasterPollingSendAbb(PMC_MASTER_P3_DEV,DEVSLP);
}
//########################################################################################
// NAME : PM_P1_DEVOFF
//
// DESCRIPTION : SW put P1 in Off mode with ACT2OFF transition
//
// PARAMETERS : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P1_DEVOFF(void)
{
MSI2C_AccessPage(PMC_MASTER_page); //Page 1
MSI2C_MasterPollingSendAbb(PMC_MASTER_P1_DEV,DEVOFF);
}
//########################################################################################
// NAME : PM_P2_DEVOFF
//
// DESCRIPTION : SW put P2 in Off mode with ACT2OFF transition
//
// PARAMETERS : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P2_DEVOFF(void)
{
MSI2C_AccessPage(PMC_MASTER_page); //Page 1
MSI2C_MasterPollingSendAbb(PMC_MASTER_P2_DEV,DEVOFF);
}
//########################################################################################
// NAME : PM_P3_DEVOFF
//
// DESCRIPTION : SW put P3 in Off mode with ACT2OFF transition
//
// PARAMETERS : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P3_DEVOFF(void)
{
MSI2C_AccessPage(PMC_MASTER_page); //Page 1
MSI2C_MasterPollingSendAbb(PMC_MASTER_P3_DEV,DEVOFF);
}
//########################################################################################
// NAME : PM_P1_P2_DEVOFF
//
// DESCRIPTION : SW put P2 then P1 in Off mode with ACT2OFF transition
//
// PARAMETERS : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P1_P2_DEVOFF(void)
{
MSI2C_AccessPage(PMC_MASTER_page); //Page 1
MSI2C_MasterPollingSendAbb(PMC_MASTER_P2_DEV,DEVOFF);
MSI2C_MasterPollingSendAbb(PMC_MASTER_P1_DEV,DEVOFF);
}
//########################################################################################
// NAME : PM_P1_P3_DEVOFF
//
// DESCRIPTION : SW put P3 then P1 in Off mode with ACT2OFF transition
//
// PARAMETERS : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P1_P3_DEVOFF(void)
{
MSI2C_AccessPage(PMC_MASTER_page); //Page 1
MSI2C_MasterPollingSendAbb(PMC_MASTER_P3_DEV,DEVOFF);
MSI2C_MasterPollingSendAbb(PMC_MASTER_P1_DEV,DEVOFF);
}
//########################################################################################
// NAME : PM_P2_P3_DEVOFF
//
// DESCRIPTION : SW put P2 then P3 in Off mode with ACT2OFF transition
//
// PARAMETERS : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : None
//########################################################################################
void PM_P2_P3_DEVOFF(void)
{
MSI2C_AccessPage(PMC_MASTER_page); //Page 1
MSI2C_MasterPollingSendAbb(PMC_MASTER_P2_DEV,DEVOFF);
MSI2C_MasterPollingSendAbb(PMC_MASTER_P3_DEV,DEVOFF);
}
//########################################################################################
// NAME : PM_Set_PKEY
//
// DESCRIPTION : Authorize access to PKey protected reg
//
// PARAMETERS : None
//
//
//
// RETURN VALUE: Valid key or not
//
// LIMITATIONS : None
//########################################################################################
UWORD8 PM_Set_PKEY(void)
{
MSI2C_AccessPage(PMC_MASTER_page); //Page 1
MSI2C_MasterPollingSendAbb(PMC_MASTER_PROTECT_PKEY, PKEY);
MSI2C_MasterPollingSendAbb(PMC_MASTER_PROTECT_EN, PWEN);
//Check access
if ( MSI2C_MasterPollingReceiveAbb(PMC_MASTER_PROTECT_PKEY) == VALID_KEY)
return VALID_KEY;
else
return 0x00;
}
//########################################################################################
// NAME : PM_Set_TKEY
//
// DESCRIPTION : Authorize access to TKey protected reg
//
// PARAMETERS : None
//
//
//
// RETURN VALUE: Valid key or not
//
// LIMITATIONS : You must enable PKEY before
//########################################################################################
UWORD8 PM_Set_TKEY(void)
{
MSI2C_AccessPage(PMC_MASTER_page); //Page 1
MSI2C_MasterPollingSendAbb(PMC_MASTER_PROTECT_TKEY, TKEY);
MSI2C_MasterPollingSendAbb(PMC_MASTER_PROTECT_EN, TRWEN | PWEN );
//Check access
if ( MSI2C_MasterPollingReceiveAbb(PMC_MASTER_PROTECT_TKEY) == VALID_KEY)
return VALID_KEY;
else
return 0x00;
}
//########################################################################################
// NAME : PM_SEQ_OFF_ASYNC
//
// DESCRIPTION : Authorize Asynchronous Act2Off and Off2Act transitions on P1/2/3
//
// PARAMETERS : None
//
//
//
// RETURN VALUE: Valid key or not
//
// LIMITATIONS : You must enable PKEY before
//########################################################################################
UWORD8 PM_SEQ_OFF_ASYNC(void)
{
UWORD8 SEQ_CFG_MODE;
MSI2C_AccessPage(PMC_MASTER_page); //Page 1
//Check access
if ( MSI2C_MasterPollingReceiveAbb(PMC_MASTER_PROTECT_PKEY) == VALID_KEY)
{
SEQ_CFG_MODE = MSI2C_MasterPollingReceiveAbb(PMC_MASTER_SEQ_CFG_MODE);
MSI2C_MasterPollingSendAbb(PMC_MASTER_SEQ_CFG_MODE, SEQ_CFG_MODE & ~(SEQ_OFFSYNC));
return VALID_KEY;
}
else
return 0x00;
}
//########################################################################################
// NAME : PM_Freeze_SEQ_Stable
//
// DESCRIPTION : Freeze next transitions on P1/2/3, wait for the last transitions
//
// PARAMETERS : None
//
//
//
// RETURN VALUE: None
//
// LIMITATIONS : You must enable PKEY before
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -