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.

TI官方例程中28035关于ADC的寄存器设置对应不上芯片资料上的

Other Parts Discussed in Thread: CONTROLSUITE

各位大侠们,你们有发现TI28035官方例程中,设置ADC采集A、B相电流寄存器设置和28035datasheet对应不上,f280xileg_vdc.c文件中的初始化的寄存器和资料中不对应,是不是我找错了,还请指正!!!

  • 哪儿对不上了?贴出来看看

  • void F280X_ileg2_dcbus_drv_init(ILEG2DCBUSMEAS *p) { DELAY_US(ADC_usDELAY); AdcRegs.ADCTRL1.all = ADC_RESET_FLAG; // Reset the ADC Module asm(" NOP "); asm(" NOP "); AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3; // Power up bandgap/reference circuitry DELAY_US(ADC_usDELAY); // Delay before powering up rest of ADC AdcRegs.ADCTRL3.bit.ADCPWDN = 1; // Power up rest of ADC DELAY_US(ADC_usDELAY); AdcRegs.ADCTRL3.bit.ADCCLKPS = 16; // Set up ADCTRL3 register AdcRegs.ADCTRL1.all = ADCTRL1_INIT_STATE; // Set up ADCTRL1 register AdcRegs.ADCTRL2.all = ADCTRL2_INIT_STATE; // Set up ADCTRL2 register AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 2; // Specify three conversions AdcRegs.ADCCHSELSEQ1.all = p->ChSelect; // Configure channel selection AdcRegs.ADCREFSEL.all = 39; // Set up the ADC reference select register AdcRegs.ADCOFFTRIM.all = 65534; // Set up the ADC offset trim register // Set up Event Trigger with CNT_zero enable for Time-base of EPWM1 EPwm1Regs.ETSEL.bit.SOCAEN = 1; // Enable SOCA EPwm1Regs.ETSEL.bit.SOCASEL = 1; // Enable CNT_zero event for SOCA EPwm1Regs.ETPS.bit.SOCAPRD = 1; // Generate SOCA on the 1st event EPwm1Regs.ETCLR.bit.SOCA = 1; // Clear SOCA flag }

    里面的寄存器大多都和28035中ADCGEG寄存器对不上,请您帮忙看看,28035ADC模块关于采集AB相电流的程序在哪可以找到??

  • void F280X_ileg2_dcbus_drv_init(ILEG2DCBUSMEAS *p)

    {

       DELAY_US(ADC_usDELAY);

       AdcRegs.ADCTRL1.all = ADC_RESET_FLAG; // Reset the ADC Module

    asm(" NOP ");

    asm(" NOP ");    

       AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3; // Power up bandgap/reference circuitry

    DELAY_US(ADC_usDELAY);     // Delay before powering up rest of ADC

       AdcRegs.ADCTRL3.bit.ADCPWDN = 1;   // Power up rest of ADC

    DELAY_US(ADC_usDELAY);

       AdcRegs.ADCTRL3.bit.ADCCLKPS = 16;     // Set up ADCTRL3 register

       AdcRegs.ADCTRL1.all = ADCTRL1_INIT_STATE; // Set up ADCTRL1 register

       AdcRegs.ADCTRL2.all = ADCTRL2_INIT_STATE; // Set up ADCTRL2 register

    AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 2;       // Specify three conversions

       AdcRegs.ADCCHSELSEQ1.all = p->ChSelect;     // Configure channel selection

       AdcRegs.ADCREFSEL.all = 39;                 // Set up the ADC reference select register

       AdcRegs.ADCOFFTRIM.all = 65534;             // Set up the ADC offset trim register

       // Set up Event Trigger with CNT_zero enable for Time-base of EPWM1

       EPwm1Regs.ETSEL.bit.SOCAEN = 1;     // Enable SOCA

       EPwm1Regs.ETSEL.bit.SOCASEL = 1;    // Enable CNT_zero event for SOCA

       EPwm1Regs.ETPS.bit.SOCAPRD = 1;     // Generate SOCA on the 1st event

    EPwm1Regs.ETCLR.bit.SOCA = 1;       // Clear SOCA flag

    }  

    这里的ADCREG寄存器里的位寄存器和28035芯片资料上的都对应不上,如AdcRegs.ADCREFSEL.all = 39;  而芯片资料上的ADCREG就没有ADCREFSEL这个位,ADCREFSEL是属于ADCCTL1寄存器中,请您帮忙看看

  • 请求大侠们给予指点啊!!!

  • 你使用的芯片是F28035?你使用的文件是基于F280x的?

    F2803x是断然没有ADCTRL3和ADCCHSELSEQ1寄存器的。

    建议你将该文件名写出(或直接作为附件上传),同时说明是在哪里下载的(或者controlsuite的哪个路径下面)?

    我可以去比较一下最原始的文件,或建议你使用哪个新的文件。

  • 请下载最新版的controlsuite,在里面的例程应该都是对的

  • 谢谢各位的回答,确实我的错了,我贴出来的不是从controlsuite里找的,是直接从TI官网关于28035的应用中PMSM3_4中关于场定向控制使用QEP的例程,里面有关于A、B相电流的采集,但是寄存器确实对不上,例程不是针对28035的,那你们知道TI官网有关于28035对应的磁场定向控制的代码吗?

  • 请到controlSUITE下找HVPM_Sensorless对应的例程:C:\TI\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.0,里面也有文档说明。