Здравствуйте, гость ( Вход | Регистрация )

 
Добавить ответ в эту темуОткрыть тему
> 

TMS320F28016 не работает прерывание АЦП , Начал писать для управления инвертором

astrahard
сообщение 28.5.2019, 6:43
Сообщение #1


Активный участник
***

Группа: Пользователи
Сообщений: 403
Регистрация: 23.7.2016
Пользователь №: 49672



Помогите мучаюсь, все восемь раз прочитал про АЦП и контроллер прерываний. Не вызывается обработчик прерываний второй секции АЦП, причем запуск от ШИМ происходит исправно и считываются показания АЦП циферки меняются. Вот текст инициализации прерываний и АЦП, причем прерывания от таймера и USART работают исправно. MODBUS запустил во скоростью 111 опросов в секунду. ШИМ также работает и АЦП запускает от своего события сравнения.

// Step 5. User specific code, enable interrupts:
// Enable CPU INT1 which is connected to CPU-Timer 0 and SEQ2 ADC:
IER |= M_INT1; // Срабатывает, проверено
// Enable CPU INT9 which is connected to SCIRXINTA:
IER |= M_INT9; // Срабатывает, проверено
PieCtrlRegs.PIECTRL.bit.ENPIE =1;
// Enable SCI-A RX in the PIE: Group 9 interrupt 1
PieCtrlRegs.PIEIER9.bit.INTx1=1;
// Enable TINT0 in the PIE: Group 1 interrupt 7
PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
// Enable ADC in the PIE: Group 1 interrupt 2
PieCtrlRegs.PIEIFR1.bit.INTx2 =1;
PieCtrlRegs.PIEIER1.bit.INTx2 =1;

// InitAdc(); // For this example, init the ADC
// Инициализация АЦП ******

EALLOW;
// Инициализация АЦП ******
AdcRegs.ADCREFSEL.bit.REF_SEL =0x0;
AdcRegs.ADCTRL1.all=0x4A0;
AdcRegs.ADCTRL2.all=0x29;
AdcRegs.ADCTRL3.all=0xE8;
AdcRegs.ADCTRL1.bit.CONT_RUN=0;
delay(ADC_usDELAY); // После включения питания нужна задержка
AdcRegs.ADCMAXCONV.bit.MAX_CONV2 = 0x8 ;// convert and store in 1 results registers
AdcRegs.ADCOFFTRIM.bit.OFFSET_TRIM= -20;// ADC Offset Trim Register
AdcRegs.ADCCHSELSEQ4.bit.CONV15 = 0xF; // ADC Input Channel Select
EDIS;
// Инициализация АЦП **** Конец
Вернуться в начало страницы
Вставить ник
+Ответить с цитированием данного сообщения
astrahard
сообщение 29.5.2019, 8:28
Сообщение #2


Активный участник
***

Группа: Пользователи
Сообщений: 403
Регистрация: 23.7.2016
Пользователь №: 49672



Урааа!!! заработало. Забывал в обработчике прерывания стереть бит прерывания. Думал, что в статусный регистр ничего и никогда писать ненужно, оказалось, что кроме подтверждения прерывания от группы еще надо стереть бит в статусном регистре ADC.

P.S. Чего все сидят на Атмеле?, TMS320F28xxx замечательный процик, настолько быстрый я просто поражен!. И разгоняется на ура!, например TMS320F28016, который на 60 мегагерц, я разогнал до 120, работаю на 100 мГц, а чего стоит конвейерное АЦП на 12 Мегагец!!!.
Намного приятнее писать под CCS там редактор на основе Eclipse и вообще, нужно слезать в области сварочников с чего-бы то нибыло кроме специализированных кристаллов, коими являются TMS320 & dsPIC33!!!

P.P.S. Может народ не знает, но TMS320F28xxx даже прошить проще чем Атмел (ему, по сути, не нужен программатор), он прошивается по USART, достаточно простого USB-USART свистка!!!

А dsPIC33EP64GS502 я купил в корпусе 28 выводов с расстоянием между ножками 1.27 мм, тоесть паяется проще чем Атмел. И стоит он в чипдип 160 руб. уже.

Сообщение отредактировал astrahard - 29.5.2019, 9:55
Вернуться в начало страницы
Вставить ник
+Ответить с цитированием данного сообщения
alexlo13
сообщение 29.5.2019, 22:13
Сообщение #3


Специалист
*****

Группа: Пользователи
Сообщений: 747
Регистрация: 14.1.2010
Из: Украина
Пользователь №: 16909



Цитата(astrahard @ 29.5.2019, 7:28) *
P.S. Чего все сидят на Атмеле?, TMS320F28xxx замечательный процик, настолько быстрый я просто поражен!.


Та все очень просто! Во первых, на Атмегу код намного проще для понимания. Я не программист, но если долго посидеть, то написанный код для Атмела, могу разобрать. В С++ на мегу не кто не пишет, кто знает Си, тот атмегу уже давно стороной обходит и как минимум на СТМ32 поделки делают. Не видел тут пока не одного сварочного аппарата, который полноценно собран на МК. Все изделия сделаны на меге, используют внешнюю ШИМку, и только по одной ноге ей управляют.
У самого лежит TMS320F28xxx и куча разных STM32, но до учения не как руки не дойдут и приходится постоянно друзей просить код написать (но обычно все заняты и приходится долго ждать).
TMS320F28xxx брал для общего проекта, который так и не сдвинулся толком с места. А потенциал у нее огого, хватит для управления сварочного аппарата с PFC, режимами MMA/MIG/MAG/TIG как DC так и АС напряжением на выходе и еще управление от смартфона прилепить можно. И все это почти без внешней обвязки. Но увы, программистов радиолюбителей не так уж много, а тем более тех кто готов поделится своим трудом со всеми!
Вернуться в начало страницы
Вставить ник
+Ответить с цитированием данного сообщения

Добавить ответ в эту темуОткрыть тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 8.6.2025, 11:51
Rambler's Top100     
Стиль от Desi.Ru - сайты и домены