RTC Breakout för DS1339 på Arduino - låg kostnad, batteribackup, 2 larm
Den mest populära RTC för Arduino är DS1307, säljs av Adafruit, Sparkfun och andra. Men har det vissa nackdelar, de mest anmärkningsvärda av som är att dess driftspänning är 5v, vilket innebar att jag inte kunde använda det med min Arduino Pro Mini @ 3.3V.
Som ledde mig på en jakt efter en lämplig ersättare för DS1307. Här var min design parametrar:
1) Tolerant av ett brett utbud av spänningar, inklusive 3,3 och 5 v
2) batteribackup, så jag inte behöver oroa resetting dadeln och tid varje gång jag driva cyklade det.
3) förekomst av ett larm, så jag kunde få tidsbestämda avbrott (och eventuellt använda det för att hantera energibesparingar för Arduino Pro Mini körs på batteri.
4) dopp paketet helst, så det skulle göra för lättare lödning (ack, detta var inte ska!)
DS1307 görs av Maxim integrerade, och de har en svindlande mängd RTC marker. Efter att ha gått igenom en hel uppsättning datablad, börjar jag få huvudvärk! Jag slutligen avgöras på DS1339, som uppfyllt alla min krav, nämligen:
1) Tolerant av ett brett utbud av spänningar, från 1,8 V till 5.5V. I synnerhet jag väljer DS1339-33, som har en spänning utbud av 2.97V-5.5V med typisk spänning som 3.3V
2) hade en Batteribackup
3) hade inte en, utan två larm!
4) som en bonus hade det också en rännil laddare
I anges för att utforma en utbrytning styrelse för DS1339, som jag har delat på
https://www.oshpark.com/shared_projects/A21xcMiD
Efter att jag fick brädorna från Oshpark, jag var tvungen att göra vissa smd lödning. Det finns gott om platser att berättar hur du hand-löda smd komponenter, så jag inte kommer gå in på detaljer här. Jag la en löda bygel till breakout styrelsen som kan användas för att aktivera/inaktivera pullup motstånd.
Efter att behövde jag faktiskt ett bibliotek för att prata med DS1339 från Arduino. Registret formatet är för DS1307 (varav flera bibliotek finns tillgängliga). Lyckligtvis hittade jag ett bibliotek för den DS1337 som gjordes speciellt för Mosquino, en Arduino kompatibel plattform för extremt låg strömförbrukning. Lyckligtvis, den DS1337 och DS1339 register formaten var nästan identiska, med det undantaget att DS1339 hade också en mer register för trickle charger.
Jag kluven Mosquino DS1337 biblioteket, och gjort det mer allmän (du kan ange vilket stift som du använder för externa avbrotten), gjorde DS1337 och DS1339 underklasser (jag kunde lägga trickle charger stöd för DS1339, till exempel), och också uppdaterat exempel för att kunna ställa in och läsa tiden, vilket gör det lättare att ställa in tiden på RTC modulen för första gången.
Jag har släppt det på github-
https://github.com/sridharrajagopal/DSRTCLib
Den liknar alla andra Arduino bibliotek. Kopiera över den till mappen Arduino bibliotek, och starta om Arduino. DSRTCLib bör Visa under exempel.
Nu du har en relativt låg kostnad RTC modul som är chock-ful av funktioner, och kan användas med en mängd Arduino styrelser.
Njut!
Sridhar