This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR2632:逐个检查Captivate引脚

Guru**** 654100 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1084024/msp430fr2632-checking-captivate-pins-one-by-one

部件号:MSP430FR2632

您好,

我需要编写一个例程,以便检查我的MSP的每个PIN。

要检查GPIO引脚,相对容易,我将其配置为输入,邻居配置为高电平输出,我检查是否获得高输入,这意味着我在某些引脚之间存在焊接短路。

无论如何,这不是问题。

现在,我想检查一下锁销,以便现在它们是否被剪切在PCB上的某个位置。

如何从这些引脚中获取值(有时纯粹吸引引脚,有时替代函数可以是GPIO)?

(我要检查6个引脚,它是3x3触控板)

感谢你的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Charly,

    是的,在那些具有专用Captivate IO引脚的设备上,这会成为一个挑战,因为您不能只是"设置/清除"引脚。  您必须实际进行容性测量,然后与已知的良好值进行比较。  

    我有一个触控板诊断实用程序,它可以执行此操作,并用于检查触控板是否已连接。  但是,它只检查一个元素E00 (RX/TX节点)以确定是否存在触控板。  您需要测试所有9个节点(3x3)。  理论上说,如果其中一个TX或RX信号轨迹中存在断路或短路,则测量值将与已知良好值不同,您可以设置一些阈值,说明针脚测量是好还是坏。

    我可以扩展该代码以为您执行所有9个节点,但可能需要一两天时间来执行并验证它是否正常工作。

    同时,为了让您入门,我将发布当前的一组说明,说明如何将诊断功能添加到您的项目中,以及如何运行和捕获一组已知的正确值。 我还将发布FR2676示例的CCS项目源代码,我所拥有的示例演示了这一点。  如果您按照说明操作,您应该能够复制诊断文件并添加FR2632项目,至少测试以查看它在您的设置中的工作情况。  请记住,该代码仅设置为测试元素E00,但它会让您了解事物的工作原理。

    然后,当我准备好修改后的代码时,我将发布。

    听起来不错?

    顺便说一句,您是否介意分享您的触控板的用途?  您是否也计划做手指手势或仅仅是XY跟踪?

    e2e.ti.com/.../detect_5F00_trackpad_5F00_software_5F00_instructions.pdf

    e2e.ti.com/.../FR2676_5F00_TP8X8_5F00_1_5F00_85_5F00_00_5F00_04_5F00_test_5F00_TP_5F00_connections.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Dennis,

    非常感谢,我将仔细分析您的代码,然后再联系您。
    触控板用于识别一些手势,如向左,向右滑动,双击...此部分似乎工作正常。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    以下是触控板配置

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Dennis,

    我正在使用的MCU在FRAM内存中非常有限,不可能让您的代码与我的代码一起适应FRAM ... 不管怎样,我尝试了它, 它的作用或多或少,但我的策略是找出问题的核心,以便减少代码,特别是删除QMath库。

    难道我不能用这个函数来获取每个元素的数据吗?

    void Grip_measureCycleRawCount(tSensor *pSensor, uint8_t ui8Cycle)
    {
        MAP_CAPT_applySensorParams(pSensor);
        MAP_CAPT_applySensorFreq(CAPT_OSC_FREQ_DEFAULT,pSensor);
        MAP_CAPT_loadCycle(pSensor, ui8Cycle, 0, false);
        MAP_CAPT_startConversionAndWaitUntilDone(&g_bEndOfConversionFlag, CPUOFF);
        MAP_CAPT_unloadCycle(pSensor, ui8Cycle, 0, false);
    }

    我尝试过,但我遇到了一些问题来锁定他们...

    for(j=0; j<3;j++){
            for(i = 0; i< 3; i++){
               pElement = Trackpad.pCycle[j]->pElements[i];
               mesure=0;
                
                // 8 measures, then average
               for(k = 0; k<8;k++){
                   Grip_measureCycleRawCount(&Sentien_Trackpad, j);
                   mesure = (uint32_t)(pElement->pRawCount[0]);
               }
    
               mesure = mesure >> 3;
            }
        }

    我的价值观似乎很奇怪,你怎么看?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Charly,

    好的,那么您的应用程序占用了多少内存?  您是否使用了任何INFOA内存区域?  我现在有扫描所有电极的代码,让我看看我是否可以为您缩小尺寸。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能解释一下为什么要进行一些乘法和除法吗? 为什么我不能直接获得数据?  

    感谢你的帮助

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Charly,

    该数学函数用于将测量值转换为电容变化,可用于确定实际的绝对引脚电容。 这就是原始代码的用途,但您的应用程序可能不需要它。  我附上了扫描所有触控板电极的最新代码。  您可以根据需要进行修改。

    e2e.ti.com/.../TP4X4B_5F00_1_5F00_85_5F00_00_5F00_14_5F00_test_5F00_TP_5F00_connections.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Charly,

    我们已经听过您的意见了一段时间,所以我假设您能够推进您的项目。
    我会将此发布标记为已解决,但如果不是这种情况,请单击"这不能解决我的问题"按钮并回复此主题以了解更多信息。
    如果此线程已锁定,请单击"提出相关问题"按钮,并在新线程中描述您的问题的当前状态以及您可能需要帮助我们解决问题的任何其他详细信息。