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.

[参考译文] TMS320F280049C:TMS320F280049C

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1511213/tms320f280049c-tms320f280049c

器件型号:TMS320F280049C
Thread 中讨论的其他器件:SysConfigC2000WARE

工具/软件:

您好、  

我使用56RSH 封装、具有以下代码、建议我不使用 SysConfig

#include "driverlib.h"
#include "device.h"
#include "board.h"

 

// ADCIN2的 PGA 实例
#define PGA_NUMBER_3 3U

 

void initADC (void);
void initPGA (void);
void initSOC (void);

 

void main (void)

   uint16_t adcResult;
   浮动电压;

 

   //初始化器件时钟和外设
   设备初始化();

 

   // GPIO 设置(C2不需要、因为它仅为模拟、但为了保持一致性)
   device_initGPIO();

 

   //可选:Board init (如果不使用 Board.c/.h、可以将其删除)
   BOARD_INIT ();

 

   //启用 ADCC
   SysCtl_enablePeripheral (SYSCTL_PERIPH_CLK_ADCC);

 

   //初始化 ADC、PGA 和 SOC
   initadc();
   initPGA();
   initSOC();

 

   while (1)
   {
       //触发 SOC2上的 ADC 转换
       ADC_forceSOC (ADCC_BASE、ADC_SOC_Number2);

 

       //等待转换完成
       while (!ADC_getInterruptStatus (ADC_BASE、ADC_INT_number1)){}

 

       //清除中断标志
       ADC_clearInterruptStatus (ADCC_BASE、ADC_INT_number1);

 

       //读取 ADC 结果
       adcResult = ADC_readResult (ADCCRESULT_BASE、ADC_SOC_Number2);

 

       //将 ADC 值转换为电压(假设基准电压为3.3V)
       Voltage =((float) adcResult * 3.3f)/4095.0f;

 

       DEVICE_DELAY_US (100000); //观察延迟(100ms)
   }
}

 

void initADC (void)

   //将 VREF 设置为内部3.3V
      ADC_setVREF (ADCC_BASE、ADC_REFERENAL、ADC_REFERENCE_3_3V);

 

   //设置 ADC 时钟分频器
   ADC_setPrescaler (ADCC_BASE、ADC_CLK_DIV_4_0);

 

 

   //将 EOC 设置为在转换结束时触发中断
   ADC_setInterruptPulseMode (ADC_BASE、ADC_PULSE_END_OF_CONV);

 

   //启用 ADC 转换器
   ADC_enableConverter (ADCC_BASE);
   DEVICE_DELAY_US (1000);// ADC 稳定延迟
}

 

void initPGA (void)

   //启用 PGA3 (连接到 ADCIN2)
   PGA_ENABLE (PGA3_BASE);

 

   //将 GAIN 设置为3x (选择 PGA_GAIN_3、_6或_12)
   PGA_setGain (PGA3_BASE、PGA_GAIN_3);
}

 

void initSOC (void)

   //将 ADCC 上的 SOC2配置为从 ADCIN2 (通过 PGA3)采样
   ADC_setupSOC (ADCC_BASE、ADC_SOC_Number2、
                ADC_TRIGGER_SW_ONLY、ADC_CH_ADCIN2、14);

 

   //将中断1链接到 SOC2 EOC
   ADC_setInterruptSource (ADCC_BASE、ADC_INT_number1、ADC_SOC_number2);
   ADC_enableInterrupt (ADCC_BASE、ADC_INT_number1);
   ADC_clearInterruptStatus (ADCC_BASE、ADC_INT_number1);
}

现在、定制电路板中的电压没有达到预期。  

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

    我在不同的电路板上尝试了不同的 ADC ADCA/B/C。 评估板中使用相同的代码。 我缺少任何链接参数?

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

    尊敬的 Karunakaran:

    您是否在不使用 SysConfig 文件的情况下尝试过 C2000ware 中的任何直接示例?

    输出值与输入值有何关联?

    谢谢、
    Susmitha.

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

    您好、  

      SysConfig 无法正常工作、因此我们尝试了没有您建议的 SysConfig 的原因。

     我指定1V、输出为浮动随机值

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

    尊敬的 Karunakaran:
    我假设您可能正在将  ADC INIT 用于所有的 ADC 配置吗?

    谢谢、
    Susmitha.

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

    根据上述代码、我不使用预定义的 SysConfig

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

    一个观察结果是、我们可以读取0V - 0个计数和3.3V - 4.096V。 我们无法测量的中间值

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

    尊敬的 Karunakaran:

    您是否可以施加3V 电压并看到输出电压?

    另外、如果将 ADC 引出到 EVM 上、您能否为 ADC 探测 VREF?

    谢谢、

    Susmitha.

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

    我可以获得 Vref、如果设置为2.5V、我可以看到2.5V。  

    我曾尝试降低电压、但没有响应、只有3.3V 时、响应4096。 如果我给出0V、则输出为0。

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

    尊敬的 Karunakaran:

    您是否介意分享 ADC 器件的原理图?

    谢谢、

    Susmitha.

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

    当您施加0和3.3V 以外的其它电压时、输出值是多少?