Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Кто работал с процессорами TMS320F280x &

Пт май 10, 2019 12:16:27

Что я делаю неправильно в отношении TMS320F28016? Не работает прерывание АЦП (не запускается обработчик прерывания и бит прерывания не устанавливается). Все работало недавно, но код потерялся, а вот заново написанный оказался "Мертвым" Помогите кто может!!!!!!!!! :shock:

// Инициализация АЦП ******
EALLOW;
AdcRegs.ADCTRL3.bit.ADCPWDN =1; // Аналоговая схема внутри ядра включена.
AdcRegs.ADCREFSEL.bit.REF_SEL = 0; // Внутренний источник опорного напряжения
AdcRegs.ADCTRL3.bit.ADCBGRFDN = 3; // Полоса пропускания и опорная схема включены.
AdcRegs.ADCTRL3.bit.ADCCLKPS=ADC_MODCLK;// = 7.5 MHz
AdcRegs.ADCTRL3.bit.SMODE_SEL = 1; // Выбирает посл.или одновр.режим выборки.
AdcRegs.ADCTRL1.bit.CPS = 1; // 1->HCLK/2,0->HCLK/1
delay(ADC_usDELAY); // После включения питания нужна задержка
AdcRegs.ADCTRL1.bit.ACQ_PS = 6; // Sequential mode: Sample rate=1/[(2+ACQ_PS)*ADC clock in ns]
AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; // 1 SEQ1 and SEQ2 as a single 16-state sequencer (SEQ).
AdcRegs.ADCTRL1.bit.CONT_RUN = 1; // Setup continuous run
AdcRegs.ADCTRL1.bit.SEQ_OVRD = 1; // Включить функцию переопределения секвенсора
AdcRegs.ADCCHSELSEQ4.bit.CONV15 = 15; // ADC Input Channel Select
AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 15; // convert and store in 16 results registers
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 =1; // This bit enables the interrupt request to CPU by INT SEQ1.
AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1 =1; //INT_SEQ1 is set at the end of every other SEQ1 sequence. вроде здесь 8)
// AdcRegs.ADCTRL2.bit.INT_ENA_SEQ2 =1; // This bit enables the interrupt request to CPU by INT SEQ2.
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 =1; // EPWM compare B SOC mask for SEQ1 8) и это не работает 8)
AdcRegs.ADCTRL2.bit.EPWM_SOCB_SEQ =1; // EPWM compare B SOC enable
AdcRegs.ADCTRL2.bit.EXT_SOC_SEQ1=1; // Внешний старт преобразования для SEQ1
AdcRegs.ADCOFFTRIM.bit.OFFSET_TRIM = -20;// ADC Offset Trim Register
AdcRegs.ADCTRL2.bit.SOC_SEQ1 =1; // Software trigger - Start SEQ1 from currently stopped position
EDIS;
// Инициализация АЦП **** Конец

Re: Кто работал с процессорами TMS320F280x &

Чт май 16, 2019 11:26:41

Кто нибудь вообще заморачивался с TMS320F28 ?? я победил проблему, сейчас расскажу как. Процессор довольно сложный и, чтобы заставить АЦП работать по прерываниям нужно запрограммировать три узла
1. Собственно АЦП
2.Затем ШИМ должен получить указание запускать АЦП
3. Ну и контроллер прерываний там навороченный тоже требует чтобы этому прерыванию устроили проводку.

Re: Кто работал с процессорами TMS320F280x &

Чт май 16, 2019 21:35:26

В этом "сложном процессоре" нет DMA чтобы копировать из АЦП в массив?

Re: Кто работал с процессорами TMS320F280x &

Пт май 17, 2019 07:03:27

Зато там есть ШИМ 150 пикосекуд, АЦП с оверсемплингом конвеерный. Все в одном месте не собирается. В STM нет четырех компараторов связанных с 4 DAC, а у dsPIC есть, но от 16 бит. Так что ......
Ответить