RTC-problem

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Det sista problemet måtte vara problem RST, eller hemska tanke att det är fel på din krets! Hur ser programmet ut i picen då ?
Mutiaz
Inlägg: 295
Blev medlem: 3 april 2004, 17:29:53

Inlägg av Mutiaz »

Kod: Markera allt

DEFINE	LOADER_USED	1

        INCLUDE "MODEDEFS.BAS"  ' Include Shiftin/out modes


' Define LCD pins 
DEFINE OSC 4
DEFINE LCD_DREG  PORTA 
DEFINE LCD_DBIT  0 
DEFINE LCD_RSREG  PORTA 
DEFINE LCD_RSBIT  4 
DEFINE LCD_EREG  PORTB 
DEFINE LCD_EBIT  3 
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50

tmp		VAR	BIT 		  'Tmp är räknaren
knapp 	VAR PORTB.5		  'Knappen på portb.5
RST     VAR     PORTB.0
IO      VAR     PORTB.2
SCLK    VAR     PORTB.1

' Allocate variables
rtcyear VAR     BYTE
rtcday  VAR     BYTE
rtcmonth VAR    BYTE
rtcdate VAR     BYTE
rtchr   VAR     BYTE
rtcmin  VAR     BYTE
rtcsec  VAR     BYTE
rtccontrol VAR  BYTE





TRISB.5 = 1
tmp = 1
Pause 500           	  'Wait for LCD to wake up 
LCDOut $FE, 1       	  'Initiate LCD by clearing display 
Pause 500            	  'Wait for LCD to initiate 

LCDOut $FE, 64, $84, $8e, $8e, $84, $8e, $9b, $9b, $91 	




        Low RST         ' Reset RTC
        Low SCLK


Pause 500
        ' Set initial time to 8:00:00AM 07/16/99
        rtcyear = $05
        rtcday = $18
        rtcmonth = $03
        rtcdate = $20
        rtchr = $21
        rtcmin = $53
        rtcsec = 0
        GoSub settime   ' Set the time

        GoTo mainloop   ' Skip subroutines


' Subroutine to write time to RTC
settime:
        RST = 1         ' Ready for transfer

        ' Enable write
        ShiftOut IO, SCLK, LSBFIRST, [$8e, 0]

        RST = 0         ' Reset RTC

        RST = 1         ' Ready for transfer

        ' Write all 8 RTC registers in burst mode
        ShiftOut IO, SCLK, LSBFIRST, [$be, rtcsec, rtcmin, rtchr, rtcdate, rtcmonth, rtcday, rtcyear,0]

        RST = 0         ' Reset RTC
        Return

' Subroutine to read time from RTC
gettime:
        RST = 1         ' Ready for transfer

        ShiftOut IO, SCLK, LSBFIRST, [$bf]      ' Read all 8 RTC registers in burst mode
        ShiftIn IO, SCLK, LSBPRE, [rtcsec, rtcmin, rtchr, rtcdate, rtcmonth, rtcday, rtcyear, rtccontrol]

        RST = 0         ' Reset RTC
        Return
        
        
                ' Main program loop - in this case, it only updates the LCD with the time
mainloop:

 IF knapp = 1 Then 		  '
	IF tmp = 1 Then 	  '
		tmp = 2 		  '
	Else 				  'Antingen etta eller nolla vid knapptryckning
		tmp = 1 		  '
	EndIF 				  '
EndIF					  '


        
        IF tmp = 0 Then
LCDOut $FE, 1, 14, 14, 14, 14, $00, "Mitsubishi"   'Om Tmp är 0 "Mutiaz"
LCDOut $00
LCDOut $FE, $C0, 14, 14, 14, "Eclipse Racing"
LCDOut $FE, $94, "Driver: M.Ljungberg"
LCDOut $FE, $D4, 14, 14, 14, 14, 14, 14, $00, "SWEDEN", $00
Pause 250
EndIF

           IF tmp = 1 Then
        
        GoSub gettime   ' Read the time from the RTC

        ' Display time on LCD
LCDOut $fe, 1, HEX2 rtcyear, "/", HEX2 rtcmonth, "/", HEX2 rtcdate, _
        "  ", HEX2 rtchr, ":", HEX2 rtcmin, ":", HEX2 rtcsec

        Pause 300       ' Do it about 3 times a second
             
EndIF
        GoTo mainloop   ' Do it forever
        
End
Mutiaz
Inlägg: 295
Blev medlem: 3 april 2004, 17:29:53

Inlägg av Mutiaz »

Kan det va något fel här??
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Jag vet inte... tycker rent spontant att det borde fungera, men det är något som vi missar helt klart... om det nu inte är någon felaktig krets någonstanns..
Mutiaz
Inlägg: 295
Blev medlem: 3 april 2004, 17:29:53

Inlägg av Mutiaz »

Den behöver inte programmeras medans den har backupspänning eller det spelar ingen roll?
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

De brukar inte villa bli programerade när de går på backup-spänning, men nu gissar jag eftersom jag inte sitter med databladet här och nu.
Mutiaz
Inlägg: 295
Blev medlem: 3 april 2004, 17:29:53

Inlägg av Mutiaz »

Hmm okej.. Jag driver PICen och RTCn med en spänningsstab men jag har inte satt dit störningsfiltret än. Kan det vara felet?
Mutiaz
Inlägg: 295
Blev medlem: 3 april 2004, 17:29:53

Inlägg av Mutiaz »

Om det inte fungerar med störningsfiltret, då borde jag ju kunna köra med bara batteribackupen hela tiden??

Hur länge orkar två seriekopplade 1,5V batterier driva RTCn utan att den tappar tiden?

Här är databladet: http://pdfserv.maxim-ic.com/en/ds/DS1302.pdf
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

Varför inte använda ett 3V-litiumbatteri?

CR1025 har en kapacitet på 30 mAh, och det ger ju teoretiskt en livslängd på 100000 timmar vid en strömförbrukning på 300nA (ur datablad). I verkligheten blir ju naturligtvis tiden kortare, eftersom RTC:n bara fungerar ner till 2V osv. men det blir ju ändå LÅNG tid.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Men när RTC skickar data så lär den dra mer ström, backupen är bara till för att få klockan att gå offline, eller ?
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

Jo, men RTC:n drar väl den strömmen från den andra spänningsmatningen då? RTC:n har ju två separata spänningsmatningar.

Jag trodde att det var off-linematningen som avsågs?
Användarvisningsbild
Henry
Inlägg: 24617
Blev medlem: 20 april 2005, 02:52:47
Ort: Lund

Inlägg av Henry »

Det är väl så att vid normal drift så tar den spänningen från den ena matningen som tex kommer från en dators strömförsörjning, där den då kan arbeta normalt. När då datorn stängs av så finns det ingen "normal" matningsspänning till den vilket detekteras och då kopplar den över till batterimatning och går säkert samtidigt ner i ett sparläge. Då skulle det förvåna mig om alla funktioner fortfarande skulle fungera eftersom det säkert blir en hel del funktioner som blir avaktiverade just för att spara ström?
Mutiaz
Inlägg: 295
Blev medlem: 3 april 2004, 17:29:53

Inlägg av Mutiaz »

Det är ju när den primära spänningsmatningen blir lägre än sekundärspäningen som sekundärspänningen går till som jag fattat det.

Men om jag använder ett litiumbatteri så borde det iallafall hålla ett år och det kan jag leva med! Tror ni det klarar att köras i ett år? Om jag räknade på 100000timmar så skulle det hålla i ca 4100 dagar och det är ju rätt länge..

Jag har tänkt att köra med endast batteri om ni inte fattat det eftersom det inte fungerade med primär och sekundärspänningen..
Mutiaz
Inlägg: 295
Blev medlem: 3 april 2004, 17:29:53

Inlägg av Mutiaz »

Vad tror du Bengt-re ??
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Det fungerar säkert, men hur länge batteriet håller låter jag vara osagt, då jag misstänker att den drar mer ström när med skickar data - väl värt att testa iaf! Lite irriterande att det inte fungerar, känns som om du har gjort allt rätt annars....
Skriv svar