Autor Thema: RTCC Alarm erst nach 10s  (Gelesen 5622 mal)

Offline WernerE

  • Newbie
  • *
  • Beiträge: 42
    • Profil anzeigen
RTCC Alarm erst nach 10s
« am: Februar 08, 2012, 12:55:23 Nachmittag »
Hallo,
hab einen PIC18F67K22, der eine interne RTCC hat.
Der RTCC soll jede Sekunde einen Alarm auslösen (ALRMCFG=0b11000100).
Es klappt auch, nur das der erste Alarm erst nach ca. 10s kommt. Alle weiteren Alarme kommen wie geplant im Sekundentakt.
Wer hat eine Idee ?

Offline oerni

  • Full Member
  • ***
  • Beiträge: 205
    • Profil anzeigen
    • Private Homepage meiner Basteleien
Re:RTCC Alarm erst nach 10s
« Antwort #1 am: Februar 08, 2012, 19:22:10 Nachmittag »
Hallo Werner,
die Elektronen brauchen bei den momentanen Außentemperaturen knapp 10 Sekunden um warm zu werden. Erst dann können sie sich schneller bewegen ;D
Das wäre die einfachste Erklärung, aber ohne wenigstens eine Zeile Code ist es etwas schwierig genauer zu antworten.
Tschau Oerni

Offline WernerE

  • Newbie
  • *
  • Beiträge: 42
    • Profil anzeigen
Re:RTCC Alarm erst nach 10s
« Antwort #2 am: Februar 10, 2012, 12:19:04 Nachmittag »
Der Code ist relativ trivial. Die RTCC wird aktiviert und dann die Alamkonfiguration gesetzt. Mittlerweile wirds immer merkwürdiger. Lass ich den Code ohne Breakpont laufen, funktioniert es und er springt nach 1s aus rtc_init raus. Setze ich am Anfang einen Breakpoint und lass anschließend weiterlaufen, dann dauert es 10s. Vielleicht ein Problem vom Debugger ICD3 ?!



#include "Fuses.h"
#include <p18cxxx.h>

void rtc_init(void);
void rtc_unlock(void);

void main(void)
{
 rtc_init();
}

void rtc_init(void)
{
 rtc_unlock();                        // Unlock rtcc registers
 RTCCFGbits.RTCEN = 1;                // Enable the rtcc
 ALRMCFG = 0b11000100;                // Set the alarm to every second
 RTCCFGbits.RTCWREN = 0;              // Lock rtcc registers
 PIR3bits.RTCCIF = 0;
 while (PIR3bits.RTCCIF == 0)
    ;
}
 

void rtc_unlock(void)
{
 #define _RTCWREN      5
 _asm
 movlb RTCCFGbits
 movlw 0x55
 movwf EECON2,ACCESS
 movlw 0xAA
 movwf EECON2,ACCESS
 bsf   RTCCFGbits,_RTCWREN,BANKED
 _endasm
}



Offline WernerE

  • Newbie
  • *
  • Beiträge: 42
    • Profil anzeigen
Re:RTCC Alarm erst nach 10s
« Antwort #3 am: Februar 21, 2012, 12:38:11 Nachmittag »
Hab mittlerweile eine Erklärung gefunden. Der SOSC Oscillator braucht im LowPower Modem 5-10s zum Starten.

Offline Stampede

  • Hero Member
  • *****
  • Beiträge: 1026
    • Profil anzeigen
    • PicPlayer.de
Re:RTCC Alarm erst nach 10s
« Antwort #4 am: Februar 22, 2012, 10:09:11 Vormittag »
Das erscheint mir immer noch viel zu lang, das Ding sollte in max. 100ms oder so schwingen. Hast du mal die Kondensatoren geprüft? Sind die vielleicht zu groß gewählt? Ich würde zum Testen mal mit 10pF anfangen.

Gruß
Stefan

Offline Stephan

  • Full Member
  • ***
  • Beiträge: 109
    • Profil anzeigen
Re:RTCC Alarm erst nach 10s
« Antwort #5 am: Februar 22, 2012, 10:29:25 Vormittag »
> das Ding sollte in max. 100ms oder

Ein PIC schwingt ypischerweise in weniger als 50 msec an, der Power-up-Timer hat daher eine Latenz von ca 70 msec. Ich tippe auch auf die Kondensatoren am Quarz (nimm mal andere, defekt?, falscher Wert aufgedruckt?, typisch seind eigenlich 22-27 pF) oder versteckte Kapazitäten durch lange Leiterbahnen etc.

Offline Edson

  • Sr. Member
  • ****
  • Beiträge: 410
    • Profil anzeigen
Re:RTCC Alarm erst nach 10s
« Antwort #6 am: Februar 22, 2012, 12:56:48 Nachmittag »
Hallo Werner,

der SOSC kann auf drei Arten betrieben werden, abhängig von den SOSCSEL-Bits im Config-Word. Wie sind diese Bits bei Dir definiert, passt die Betriebsart für deinen Quarz?

Gruß,
Edson

Offline WernerE

  • Newbie
  • *
  • Beiträge: 42
    • Profil anzeigen
Re:RTCC Alarm erst nach 10s
« Antwort #7 am: Februar 22, 2012, 14:10:09 Nachmittag »
Der Oscillator ist per CONFIG auf LOW Power konfiguriert. Interessanterweise schwingt er im HIGH Power Mode gar nicht an.
Die Kondensatoren haben 15pF. Das Problem habe ich mit unterschiedlichen Platinen, d.h. Bauteildefekt ist auszuschließen.
Irgendwie scheint im 18F67K22 ein anderer Oscillator-Treiber drin zu sein, da ich mit anderen PICs (18F2520, 16xx) bisher nie Probleme hatte.

Offline Stampede

  • Hero Member
  • *****
  • Beiträge: 1026
    • Profil anzeigen
    • PicPlayer.de
Re:RTCC Alarm erst nach 10s
« Antwort #8 am: Februar 22, 2012, 16:20:09 Nachmittag »
Komisch, die 15pF sind eigentlich im üblichen Rahmen. Versuche doch mal einen Widerstand parallel zum Quarz zu hängen, Größenordnung 1MOhm bis 10MOhm.

Offline WernerE

  • Newbie
  • *
  • Beiträge: 42
    • Profil anzeigen
Re:RTCC Alarm erst nach 10s
« Antwort #9 am: Februar 23, 2012, 12:38:12 Nachmittag »
10M parallel bringt auch keine Veränderung.  :(

Offline WernerE

  • Newbie
  • *
  • Beiträge: 42
    • Profil anzeigen
Re:RTCC Alarm erst nach 10s
« Antwort #10 am: Februar 23, 2012, 16:17:06 Nachmittag »
Ok, Problem ist gelöst. Es lag an einer fehlenden Masseverbindung der Kondensatoren. Schuld ist der Layout-Ersteller.
Vielen Dank für die Unterstützung  :-[

 


* Recent Topics