⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 convity_test.cpp

📁 Microsoft WinCE 6.0 BSP FINAL release source code for use with the i.MX27ADS TO2 WCE600_FINAL_MX27_S
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    PMIC_CONVITY_USB_OTG_CONFIG cfg, cfgtmp;

    PmicConvitySetMode(handle, USB);
    PmicConvityUsbSetPowerSource(handle, USB_POWER_INTERNAL, USB_POWER_3V3);


    PmicConvityUsbOtgGetConfig(handle, &cfg);
    dump_regs(TEXT("Initial Value"));
    g_pKato->Log(LOG_COMMENT, TEXT("Value read: %d\r\n"), cfg);


    cfgtmp = (PMIC_CONVITY_USB_OTG_CONFIG)(USB_OTG_SE0CONN | USB_VBUS_CURRENT_LIMIT_LOW);
    PmicConvityUsbOtgSetConfig(handle, cfgtmp);
    PmicConvityUsbOtgGetConfig(handle, &cfg); 
    MY_ASSERT(cfg == cfgtmp);
    dump_regs(TEXT("USB_OTG_SE0CONN | USB_VBUS_CURRENT_LIMIT_LOW"));
    g_pKato->Log(LOG_COMMENT, TEXT("Value read: %d\r\n"), cfg);

    cfgtmp = (PMIC_CONVITY_USB_OTG_CONFIG)(USB_OTG_SE0CONN | USB_VBUS_CURRENT_LIMIT_HIGH);
    PmicConvityUsbOtgSetConfig(handle, 
        (PMIC_CONVITY_USB_OTG_CONFIG)(USB_VBUS_CURRENT_LIMIT_HIGH));
    PmicConvityUsbOtgGetConfig(handle, &cfg); 
    MY_ASSERT(cfg == cfgtmp);
    dump_regs(TEXT("USB_OTG_SE0CONN | USB_VBUS_CURRENT_LIMIT_HIGH"));
    g_pKato->Log(LOG_COMMENT, TEXT("Value read: %d\r\n"), cfg);


    cfgtmp = (PMIC_CONVITY_USB_OTG_CONFIG)(USB_VBUS_CURRENT_LIMIT_HIGH);
    PmicConvityUsbOtgClearConfig(handle, 
        (PMIC_CONVITY_USB_OTG_CONFIG)(USB_OTG_SE0CONN));
    PmicConvityUsbOtgGetConfig(handle, &cfg); 
    MY_ASSERT(cfg == cfgtmp);
    dump_regs(TEXT("USB_VBUS_CURRENT_LIMIT_HIGH"));
    g_pKato->Log(LOG_COMMENT, TEXT("Value read: %d\r\n"), cfg);
    
    
    
    g_pKato->Log(LOG_COMMENT, TEXT("UsbOtgCfgTest complete\r\n"));
    g_pKato->Log(LOG_COMMENT, TEXT("===========================\r\n"));
}


void Rs232CfgTest(PMIC_CONVITY_HANDLE handle)
{
    PMIC_CONVITY_RS232_INTERNAL in;
    PMIC_CONVITY_RS232_EXTERNAL ex;
    BOOL tri;

    PmicConvitySetMode(handle, RS232);

    PmicConvityRs232SetConfig(handle, RS232_TX_USE0VM_RX_UDATVP, 
        RS232_TX_UDM_RX_UDP, FALSE);
    PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
    MY_ASSERT((in == RS232_TX_USE0VM_RX_UDATVP) && (ex == RS232_TX_UDM_RX_UDP) && (tri == FALSE));
    dump_regs(TEXT("TX_USE0VM_RX_UDATVP TX_UDM_RX_UDP"));


    PmicConvityRs232SetConfig(handle, RS232_TX_UDATVP_RX_URXVM, 
        RS232_TX_UDM_RX_UDP, FALSE);
    PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
    MY_ASSERT((in == RS232_TX_UDATVP_RX_URXVM) && (ex == RS232_TX_UDM_RX_UDP) && (tri == FALSE));
    dump_regs(TEXT("TX_UDATVP_RX_URXVM TX_UDM_RX_UDP"));


    PmicConvityRs232SetConfig(handle, RS232_TX_UTXDI_RX_URXDO, 
        RS232_TX_UDM_RX_UDP, FALSE);
    PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
    MY_ASSERT((in == RS232_TX_UTXDI_RX_URXDO) && (ex == RS232_TX_UDM_RX_UDP) && (tri == FALSE));
    dump_regs(TEXT("TX_UTXDI_RX_URXDO TX_UDM_RX_UDP"));


    PmicConvityRs232SetConfig(handle, RS232_TX_RX_INTERNAL_DEFAULT, 
        RS232_TX_UDM_RX_UDP, FALSE);
    PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
    MY_ASSERT((in == RS232_TX_RX_INTERNAL_DEFAULT) && (ex == RS232_TX_UDM_RX_UDP) && (tri == FALSE));
    dump_regs(TEXT("TX_RX_INTERNAL_DEFAULT TX_UDM_RX_UDP"));


    PmicConvityRs232SetConfig(handle, RS232_TX_USE0VM_RX_UDATVP, 
        RS232_TX_UDP_RX_UDM, FALSE);
    PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
    MY_ASSERT((in == RS232_TX_USE0VM_RX_UDATVP) && (ex == RS232_TX_UDP_RX_UDM) && (tri == FALSE));
    dump_regs(TEXT("TX_USE0VM_RX_UDATVP TX_UDP_RX_UDM"));


    PmicConvityRs232SetConfig(handle, RS232_TX_UDATVP_RX_URXVM, 
        RS232_TX_UDP_RX_UDM, FALSE);
    PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
    MY_ASSERT((in == RS232_TX_UDATVP_RX_URXVM) && (ex == RS232_TX_UDP_RX_UDM) && (tri == FALSE));
    dump_regs(TEXT("TX_UDATVP_RX_URXVM TX_UDP_RX_UDM"));


    PmicConvityRs232SetConfig(handle, RS232_TX_UTXDI_RX_URXDO, 
        RS232_TX_UDP_RX_UDM, FALSE);
    PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
    MY_ASSERT((in == RS232_TX_UTXDI_RX_URXDO) && (ex == RS232_TX_UDP_RX_UDM) && (tri == FALSE));
    dump_regs(TEXT("TX_UTXDI_RX_URXDO TX_UDP_RX_UDM"));


    PmicConvityRs232SetConfig(handle, RS232_TX_RX_INTERNAL_DEFAULT, 
        RS232_TX_UDP_RX_UDM, FALSE);
    PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
    MY_ASSERT((in == RS232_TX_RX_INTERNAL_DEFAULT) && (ex == RS232_TX_UDP_RX_UDM) && (tri == FALSE));
    dump_regs(TEXT("TX_RX_INTERNAL_DEFAULT TX_UDP_RX_UDM"));


    PmicConvityRs232SetConfig(handle, RS232_TX_USE0VM_RX_UDATVP, 
        RS232_TX_RX_EXTERNAL_DEFAULT, FALSE);
    PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
    MY_ASSERT((in == RS232_TX_USE0VM_RX_UDATVP) && (ex == RS232_TX_RX_EXTERNAL_DEFAULT) && (tri == FALSE));
    dump_regs(TEXT("TX_USE0VM_RX_UDATVP TX_RX_EXTERNAL_DEFAULT"));


    PmicConvityRs232SetConfig(handle, RS232_TX_UDATVP_RX_URXVM, 
        RS232_TX_RX_EXTERNAL_DEFAULT, FALSE);
    PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
    MY_ASSERT((in == RS232_TX_UDATVP_RX_URXVM) && (ex == RS232_TX_RX_EXTERNAL_DEFAULT) && (tri == FALSE));
    dump_regs(TEXT("TX_UDATVP_RX_URXVM TX_RX_EXTERNAL_DEFAULT"));


    PmicConvityRs232SetConfig(handle, RS232_TX_UTXDI_RX_URXDO, 
        RS232_TX_RX_EXTERNAL_DEFAULT, FALSE);
    PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
    MY_ASSERT((in == RS232_TX_UTXDI_RX_URXDO) && (ex == RS232_TX_RX_EXTERNAL_DEFAULT) && (tri == FALSE));
    dump_regs(TEXT("TX_UTXDI_RX_URXDO TX_RX_EXTERNAL_DEFAULT"));


    PmicConvityRs232SetConfig(handle, RS232_TX_RX_INTERNAL_DEFAULT, 
        RS232_TX_RX_EXTERNAL_DEFAULT, FALSE);
    PmicConvityRs232GetConfig(handle, &in, &ex, &tri);
    MY_ASSERT((in == RS232_TX_RX_INTERNAL_DEFAULT) && (ex == RS232_TX_RX_EXTERNAL_DEFAULT) && (tri == FALSE));
    dump_regs(TEXT("TX_RX_INTERNAL_DEFAULT TX_RX_EXTERNAL_DEFAULT"));
    g_pKato->Log(LOG_COMMENT, TEXT("Rs232CfgTest complete\r\n"));
    g_pKato->Log(LOG_COMMENT, TEXT("===========================\r\n"));
}


void Cea936DetectionCfgTest(PMIC_CONVITY_HANDLE handle)
{
    PMIC_CONVITY_CEA936_DETECTION_CONFIG cfg, cfgtmp;

    PmicConvitySetMode(handle, RS232);

    cfgtmp = (PMIC_CONVITY_CEA936_DETECTION_CONFIG)
        (ACCESSORY_ID_ID100KPU | ACCESSORY_ID_IDPUCNTRL);
    PmicConvityCea936SetDetectionConfig(handle, cfgtmp);
    PmicConvityCea936GetDetectionConfig(handle, &cfg);
    MY_ASSERT(cfg == cfgtmp);
    dump_regs(TEXT("ACCESSORY_ID_ID100KPU | ACCESSORY_ID_IDPUCNTRL"));

    g_pKato->Log(LOG_COMMENT, TEXT("Cea936DetectionCfgTest complete\r\n"));
    g_pKato->Log(LOG_COMMENT, TEXT("===========================\r\n"));
}


//------------------------------------------------------------------------------
//
// Function: PMICTestConvityRegisterAccess
//
// This function attempts to test PMIC Connectivity register access.
//
// Parameters:
//      uiMsg
//           [in] Ignored.
//
//      tpParam
//           [in] Ignored.
//
//      lpFTE
//           [in] Ignored.
//
// Returns:
//      Specifies if the test passed (TPR_PASS), failed (TPR_FAIL), or was
//      skipped (TPR_SKIP).
//
//------------------------------------------------------------------------------
TESTPROCAPI PMICTestConvityRegisterAccess(UINT uMsg, TPPARAM tpParam, 
                                          LPFUNCTION_TABLE_ENTRY lpFTE)
{
    PMIC_CONVITY_HANDLE handle;
    PMIC_STATUS status;

    UNREFERENCED_PARAMETER(tpParam);
    UNREFERENCED_PARAMETER(lpFTE);

    // Validate that the shell wants the test to run
    if (uMsg != TPM_EXECUTE)
    {
        return TPR_NOT_HANDLED;
    }

    g_pKato->Log(LOG_COMMENT, TEXT("Connectivity -- PMICTestConnectivity() +\r\n"));

    status = PmicConvityOpen(&handle, USB);

    if (status != PMIC_SUCCESS)
        g_pKato->Log(LOG_COMMENT, TEXT("Open Failed\r\n"));
    else
        g_pKato->Log(LOG_COMMENT, TEXT("Open Successful\r\n"));

    if (status == PMIC_SUCCESS)
    {
        IfModeTest(handle);
        UsbSpeedTest(handle);
        UsbSetPowerTest(handle);
        UsbSetXcvrTest(handle);
        UsbHnpTesting(handle);
        UsbOtgCfgTest(handle);
        Rs232CfgTest(handle);
        Cea936DetectionCfgTest(handle);

        PmicConvityReset(handle);
        dump_regs(TEXT("Reset"));
        g_pKato->Log(LOG_COMMENT, TEXT("PmicConvityReset complete\r\n"));

        PmicConvityClose(handle);
    }

    return TPR_PASS;
}


//------------------------------------------------------------------------------
//
// Function: PMICTestConvityEvents
//
// This function attempts to test PMIC Connectivity events.
//
// Parameters:
//      uiMsg
//           [in] Ignored.
//
//      tpParam
//           [in] Ignored.
//
//      lpFTE
//           [in] Ignored.
//
// Returns:
//      Specifies if the test passed (TPR_PASS), failed (TPR_FAIL), or was
//      skipped (TPR_SKIP).
//
//------------------------------------------------------------------------------
TESTPROCAPI PMICTestConvityEvents(UINT uMsg, TPPARAM tpParam, 
                                  LPFUNCTION_TABLE_ENTRY lpFTE)
{
    int i;
    PMIC_CONVITY_HANDLE handle;
    PMIC_STATUS status;
    PMIC_CONVITY_EVENTS evtmask;
    PMIC_CONVITY_CALLBACK funcaddr = NULL;

    UNREFERENCED_PARAMETER(tpParam);
    UNREFERENCED_PARAMETER(lpFTE);

    // Validate that the shell wants the test to run
    if (uMsg != TPM_EXECUTE)
    {
        return TPR_NOT_HANDLED;
    }

    g_pKato->Log(LOG_COMMENT, TEXT("Connectivity -- PMICTestConvityEvents() +\r\n"));

    status = PmicConvityOpen(&handle, USB);
    if (status != PMIC_SUCCESS)
        g_pKato->Log(LOG_COMMENT, TEXT("Open Failed\r\n"));
    else
        g_pKato->Log(LOG_COMMENT, TEXT("Open Successful\r\n"));

    if (status == PMIC_SUCCESS)
    {
        PmicConvitySetCallback(handle, (PMIC_CONVITY_CALLBACK)&usbCB, 
            (PMIC_CONVITY_EVENTS)0x1fff);
        i = 0;
        while (i++ < 10)
        {
            g_pKato->Log(LOG_COMMENT, TEXT("Waiting for events for %d more seconds\r\n"), 
                3 * (11 - i));
            Sleep(3001);
        }
        PmicConvityGetCallback(handle, &funcaddr, &evtmask);
        g_pKato->Log(LOG_COMMENT, 
            TEXT("Waiting completed. printing current mask: 0x%.8x\r\n"), evtmask);
        MY_ASSERT(((unsigned int)funcaddr) == ((unsigned int)&usbCB));

        PmicConvityClearCallback(handle);
        PmicConvityClose(handle);
    }

    return TPR_PASS;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -