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.

[参考译文] ADC 映射更改问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/570897/adc-mapping-changing-problem

主题中讨论的其他器件:DRV8312

根据 DRV8312和 F28054M 的设计、我更改了定制电路板的 ADC 硬件映射

当前偏移的默认设置为:

I_A 连接到 ADC_B3

I_b 连接到 ADC_B5

i_c 连接到 ADC_B7

我将其更改为以下内容:

I_A 连接到 ADC_A1

i_b 连接到 ADC_B1

i_c 连接到 ADC_A3

我保持电压 OFFESETS 映射与 DRV8312相同

由于我更改了硬件连接、我还需要更改软件 ADC 映射

因此、我 将   hal.c 中 void HAL_setupAdcs (HAL_Handle handle)中的 ADC 引脚映射更改为 hal.c

//为 drv8312kit_revD 配置 SOC
//根据勘误表 sprz342f
ADC_setSockNumber (obj->adcHandle、ADC_SockNumber_0、ADC_SockChanNumber _A1)对第一个采样进行两次采样;
ADC_SocksTrigHandle、ADC_Sock_Socksinc1



、ADC_Socksock_Socksinc1、ADC_Socksocksense1、ADC_Socksense1、ADC_Socksocksense1、ADC_Socksocksense1、ADC_Socksocksocksinc1、ADC_Socksense1、ADC_Sinc1、ADC_SocksocksocksocksocksetSinc1、ADC_Socksinc1、ADC_Sinc1、ADC_Sinc1、ADC_Socksocksocksocksinc1、AD_Socksocksense1、AD_Socksense1、ADCs
ADC_setSockSampleDelay (obj->adcHandle、ADC_SockNumber_1、ADC_SockSampleDelay_7_cycles);

ADC_setSockNumber (number->adcHandle、ADC_SockNumber_2、ADC_SockChanOBJ_B1);
ADC_SockTrigSincc (obj->adsocksensHandle_2
、ADC_Socksocksocksense_Socksense2、ADC_Socksensore_Socksensore_Socksensore2、ADC_Socksensore_Socksensore_Socksensore_Socksinc1、ADC_Socksensore_Socksensore2、ADC_Socksensore_Socksensore_Socksensore_Socksensore_Socksands


ADC_setSockTrigSrc (obj->adcHandle、ADC_SockNumber_3、ADC_SockTrigSrc_EPWM1_ADCSOCA);
ADC_setSockSockSamplpleDelay (obj->adcHandle、ADC_SockSinc数目_3、ADC_SockSincay_7_cycles);ADC_SockSockSockSockSockSockSockSockS数目


4;AD_4、ADC_SockSockSockSockSockSinc_4
、AD_Delay_4、ADC_SockSockSockSockSockSinc_4;AD_De_SockSockSinc1 (obj_4、ADC_SockSock1、ADC_SockSinc_Delay_4、ADC_SockSockSockSockSockSinc1、AD_Delay_4、ADCsinc_D

ADC_setSockChanNumber (obj->adcHandle、ADC_SockNumber_5、ADC_SockChanNumber_A7);
ADC_setSockTrigSrc (obj->adcHandle、ADC_SockNumber_5、ADC_SockTrigSrc_EPWM1_ADCSOCA);ADC_setSocksensHandle_6
、ADC_Socksockse_Socksinc1

、ADC_Socksockse_Sockse_Sockse_Sockse_Sockse_Sockse_Sockse_Sockse_SocksandeQ5-> ADCse_Sockse_Sockse_Sockse_Sockse_Sockse_Sockse_Sockse_Sockse_Sockse_Sockse_Sockse_Sockse_sandeQ4;ADCse_Socks

ADC_setSockSampleDelay (obj->adcHandle、ADC_SockNumber_6、ADC_SockSampleDelay_7_cycles);

ADC_setSockChanNumber (obj->adcHandle、ADC_SockSockNumber_7、ADC_SockSocksTrigSrces (obj->adcscHandle_7

、ADC_Socksock_7);ADC_Socks_sockspleSock_7、ADC_SockspleSock_Sockse_7、ADC_SockspleSocksprise_7、ADC_Socksprise_7、ADC_SocksenseSockse_7、ADC_Sock_Sockspres)


;ADC_S // HAL_setupAdcs()函数结束 

在进行这些更改后、我仍然无法读取正确的电流偏移、这意味着可以获得这些类似的值

#define  I_A_offset   (-0.8692960739)
#define  I_B_OFFSET   (-0.8690671921)
#define  I_C_OFFSET   (-0.8657041192)

但我将得到以下值:

I_A_offset   (-0.259814620)
I_B_OFFSET   (-0.247000575)
I_C_OFFSET   (-0.138281882)

我是否错过了任何同样需要更改的内容?

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否能够使用原始通道获得正确的转换? 或者您是否完全无法通过您的硬件获得一个? 我想知道这是否与硬件相关

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

    我认为这不是与硬件相关的问题。 我进行了几次测试。

    在不使用我自己的电路板的情况下、我将 DRV8312与 F2805M 搭配使用、我将其更改为与 hal.c 中的定制电路板相同的 ADC 引脚
    I_A 连接到 ADC_A1
    i_b 连接到 ADC_B1
    i_c 连接到 ADC_A3

    它生成了与我自己的定制板相同的输出读数:
    I_A_offset (-0.259814620)
    I_B_OFFSET (-0.247000575)
    I_C_OFFSET (-0.138281882)

    但是、如果我将 hal.c 中的 ADC 引脚更改为默认值、如所示
    I_A 连接到 ADC_B3
    I_b 连接到 ADC_B5
    i_c 连接到 ADC_B7

    我能够获得以下内容的正确读数:
    I_A_offset (-0.8692960739)
    I_B_OFFSET (-0.8690671921)
    I_C_OFFSET (-0.8657041192)


    因此、我仔细检查了 DRV8312的硬件连接、
    I_A 都与 ADC_A1和 ADC_B3连接(hal.c 默认值)
    I_B 都与 ADC_B1和 ADC_B5连接(hal.c 默认值)
    I_C 均与 ADC_A3和 ADC_A5连接(默认为 hal.c)

    遗憾的是、我的定制电路板的硬件连接仅与连接
    I_A 连接到 ADC_A1
    i_b 连接到 ADC_B1
    i_c 连接到 ADC_A3

    我不知道为什么 A1、B1、A3不能被用于读取正确的偏移值。 或者它不能只通过更改 hal.c 中的这些值来工作,也许需要进行更多的修改?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    F28054M 控制卡似乎还需要确认一些开关设置。 开关 SW5、6和8控制 ADC 通道 A1、B1和 A3的3分频硬件预分频器。 您能否确认将这些通道置于向下(0、向右)位置以允许这些通道直接传递到 MCU?

    肖恩
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、这些开关向下放置为0、以允许这些通道直接传递到 MCU。
    但问题相同。
    I_A_offset (-0.259814620)
    I_B_OFFSET (-0.247000575)
    I_C_OFFSET (-0.138281882)

    当我使用不同的 ADC 映射时、hal.c 是否是唯一需要更改的文件?