Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Проблем с RTCC на dsPIC33FJ128GP802
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=8891
Страница 1 от 1

Автор:  borisov [ Пон Май 23, 2011 11:08 pm ]
Заглавие:  Проблем с RTCC на dsPIC33FJ128GP802

Здравейте, моря се с тоя RTCC модул някой да го е пробвал. За да работи му е нужен 32.768KHz кварц поставен на изводите за втори осцилатор единствено от там може да получава тактов сигнал. TMR1 също може да получава такт от там, но и той отказва същия резултат се получава, и като смених процесора с dsPIC33FJ12GP202 иначе в други режими таймера си работи. Мислех си, че проблема е в кристала и свързването му, но като го задам като главен клок си работи нормално и това ме обърква още повече, не знам къде греша.

Автор:  Desert Leo [ Вто Май 24, 2011 9:31 am ]
Заглавие: 

При мен на PIC24 си работи. Провери дали втория осцилатор е разрешен и дали RTCC е сетнат да получава клок от него. Изглежда да е забранен.

Автор:  borisov [ Вто Май 24, 2011 3:05 pm ]
Заглавие: 

Ето и програмката.


void main() {
ADPCFG = 0xffff;
TRISB = 0x0000;
LATB = 0x0000;
Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
///////////////////////RTCC////////////////////////////////
NVMKEY = 0x55;
NVMKEY = 0xAA;
RCFGCAL.RTCWREN = 1;
RCFGCAL.RTCEN = 0;
RCFGCALbits.RTCPTR = 0b11;
RTCVAL = 0x0007;
RTCVAL = 0x1028;
RTCVAL = 0x0110;
RTCVAL = 0x0000;
RCFGCAL.RTCEN = 1;
RCFGCAL.RTCWREN = 0;
RCFGCALbits.CAL = 0x00;
OSCCONbits.LPOSCEN = 1; //ENABLE SECOND OSC for RTCC
///////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////

while(1){

while(RCFGCALbits.RTCSYNC == 1){asm{nop}}
RCFGCALbits.RTCPTR = 0b11;

year = RTCVAL;
month_date = RTCVAL;
wday_hour = RTCVAL;
min_sec = RTCVAL;

///////////////////////////////////////
}
}

Автор:  Reader [ Чет Май 26, 2011 2:53 pm ]
Заглавие: 

Не знам как е в PIC30, но в PIC24 не можеш директно да пишеш така:
Код:
OSCCONbits.LPOSCEN = 1; //ENABLE SECOND OSC for RTCC
а трябва да изпълниш отключваща последователност или да използваш готов макрос, напр. __builtin_write_OSCCONL:
Код:
   // Разрешаване на вторичния осцилатор (за часовника)
   __builtin_write_OSCCONL(OSCCON | 0x02);
Вторият код е за PIC24.

Автор:  borisov [ Чет Юни 02, 2011 10:31 pm ]
Заглавие: 

Ами ще пробвам така, иначе замерих с осцилоскоп на изводите на кварца и няма никой, а мисля че трябва защото в други случаи е имало синусоида с честотата на кварца.

Автор:  Reader [ Пон Юни 06, 2011 10:28 am ]
Заглавие: 

Винаги са ми изглеждали странно хората, чиято религия не им позволява да четат инструкции.
В документацията, на стр.146 си пише ясно:
Цитат:
Writes to this register require an unlock sequence. Refer to Section 39. “Oscillator (Part III)” (DS70216) in the “dsPIC33F/PIC24H Family Reference Manual” (available from the Microchip website) for details.

Автор:  borisov [ Пон Юни 06, 2011 6:28 pm ]
Заглавие: 

Преди да почна да пиша на С++ съм програмирал на асемблер така, че инструкциите на сън ги бълнувам, а тая документация съм я чел вече и изпълних всичко, в крайна сметка резонатора не беше нещо наред, но сега се оправи след като го подмених.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/