Страница 1 из 1

PIC24HJ128GP502 - SO28

Добавлено: Пт май 01, 2015 14:30:48
maxlab
Привет! Делаю проект на этом кристалле. Слепил себе макетку, бикоз в сети ничего путного не нашел.
Выкладываю, может кому пригодится. Делал методом ЛЛТ (ламинатор вместо утюга). Обвязка согласно даташита.

Re: PIC24HJ128GP502 - SO28

Добавлено: Вт май 05, 2015 13:11:15
maxlab
Однако, очень шустрый контроллер :)

Re: PIC24HJ128GP502 - SO28

Добавлено: Вт май 05, 2015 13:42:16
Albert_V
Шустрый. Особенно интересно будет когда с DMA разберётесь.

Re: PIC24HJ128GP502 - SO28

Добавлено: Ср май 06, 2015 08:15:00
driver_gv
Да, неплох по скорости и возможностям. У меня на нем одет оцифровка видео с камеры в реалтайме, разбор картинки и подсчет проходящих людей в разные стороны + RS485.

Re: PIC24HJ128GP502 - SO28

Добавлено: Вт май 12, 2015 08:50:05
maxlab
Кстати, вопрос к коллегам кто имеет опыт использования этого контроллера... Какова достижимая погрешность измерения периода модулем input capture? Мне нужно измерять частоту от 5 до 10 мгц с точностью+\- 1Гц - возможно ли это?

Re: PIC24HJ128GP502 - SO28

Добавлено: Вт май 12, 2015 17:42:07
Аlex
Разрешение периода будет равно одному такту таймера, который подключен к модулю захвата.
Погрешность, соответственно, будет равна погрешности генератора, тактирующего этот самый таймер.

Re: PIC24HJ128GP502 - SO28

Добавлено: Сб май 16, 2015 14:03:34
КРАМ
Предпочтительнее использовать вместо упомянутого в заголовке практически идентичный ему по цене dsPIC33FJ128MC802.
По сути оный PIC24 является обрубком упомянутого мной 33-его.
maxlab писал(а):Мне нужно измерять частоту от 5 до 10 мгц с точностью+\- 1Гц - возможно ли это?
Все зависит от потребной СКОРОСТИ измерений и точности опорного генератора.
Если 1 измерение в секунду устроит, то можно. Можно чуть напрячься и уменьшить период измерений до 0,25 сек...

Re: PIC24HJ128GP502 - SO28

Добавлено: Пн май 18, 2015 14:34:25
maxlab
Этих контроллеров мне отсыпали 5 штук... надо использовать :)
В качестве процедуры измерения хочу использовать код из даташита, немного адаптировав его под CCS PICC

// Initialize the Input Capture Module
IC1CONbits.ICM = 0b00; // Disable Input Capture 1 module
IC1CONbits.ICTMR = 1; // Select Timer2 as the IC1 Time base
IC1CONbits.ICI = 0b01; // Interrupt on every second capture event
IC1CONbits.ICM = 0b011; // Generate capture event on every Rising edge
// Enable Capture Interrupt And Timer2
IPC0bits.IC1IP = 1; // Setup IC1 interrupt priority level
IFS0bits.IC1IF = 0; // Clear IC1 Interrupt Status Flag
IEC0bits.IC1IE = 1; // Enable IC1 interrupt
// Capture Interrupt Service Routine
unsigned int timePeriod= 0;
void __attribute__((__interrupt__)) _IC1Interrupt(void)
{
unsigned int t1,t2;
t1=IC1BUF;
t2=IC1BUF;
IFS0bits.IC1IF=0;
if(t2>t1)
timePeriod = t2-t1;
else
timePeriod = (PR2 - t1) + t2;
}

Re: PIC24HJ128GP502 - SO28

Добавлено: Пн май 18, 2015 22:14:55
КРАМ
Нужно подключить InputCapture к DMA и по прерыванию от DMA выставлять флаг готовности данных. По этому флагу в main производить расчет. DMA массив можно сделать массивом FIR (КИХ), таким образом в скользящем окне фильтровать результат и сделать его стабильным, тем самым повысить и точность и разрешение (суперсемплингом).