The Datasheet Archive - 100 Million Datasheets from 7500 Manufacturers.    


Datasheet Search Engine   
 
Part # or Description: • 5V RS232 Driver • 2SC5066* • "Real Time Clock" • "USB connector" • "blue led" 5mm • 10 watt zener diode • 2N3055* motorola
 
Search Tip: Try entering the part number only. Include a wildcard (eg. lm317* or 1n4148*)

 

 

TIMEKEEPER M48T59 M48T59Y, from STMicroelectronics, each provide volat


Datasheet Thumbnail

  

Download PDF



Top Searches for this datasheet



Implementing Periodic Alarm with TIMEKEEPER
TIMEKEEPER M48T59 M48T59Y, from STMicroelectronics, each provide volatile static RAM, integrated real time clock. Each also provides alarm which either given time day, repeat certain every month, certain hour every day, certain minute every hour, certain second every minute. With this functionality already provided hardware, software implement alarm given period greatly simplified, described this document. Although specifically tailored M48T59 M48T59Y) device, ideas adapted easily ST's other TIMEKEEPER devices that have alarm feature. Some modifications memory mapping (the TIMEKEEPER address space) register mapping (such pointer register address) would need made. Table Typical TIMEKEEPER (M48T59) Register
Data Address 1FFFh 1FFEh 1FFDh 1FFCh 1FFBh 1FFAh 1FF9h 1FF8h 1FF7h 1FF6h 1FF5h 1FF4h 1FF3h 1FF2h 1FF1h 1FF0h RPT4 RPT3 RPT2 RPT1 BMB4 Year Date Month Date Hours Minutes Seconds Calibration BMB2 BMB1 BMB0 Year Month Date Hour Minute Second Control Watch Interrupt Date Hour Minute Second unused Flags 01-31 00-23 00-59 00-59 Years Function Range Format) 00-99 01-12 01-31 01-7 00-23 00-59 00-59
Hours Minutes Seconds BMB3
Date Hour Alarm Minutes
Alarm Date Alarm Hour Alarm Minutes Alarm Seconds unused
Alarm Seconds unused
February 2000
AN1216 APPLICATION NOTE
TIMEKEEPER CONFIGURATION TIMEKEEPER register mapping shown Table This divided parts: clock registers alarm registers. Clock Registers clock registers configured language computer program follows:
*TIMEKEEPER_CAL 0x80 *TIMEKEEPER_SEC= //user clock setting seconds parameter *TIMEKEEPER_MIN= //user clock setting minutes parameter *TIMEKEEPER_HOUR= //user clock setting hours parameter *TIMEKEEPER_CAL&= 0x7F
process starting clock making calibration adjustments described M48T59 data sheet, application notes AN925 AN934. Alarm Registers necessary Write bit, control register address offset 1FF8h) before proceeding clock modification. Modifications alarm registers, though, made time, with prior changes control register being necessary. program listing, this document, contains statements perform following functions: Stop (ST, register offset 1FF9h) reset start TIMEKEEPER oscillator
*TIMEKEEPER_SEC 0x7F; reset using mask 0x7F
Alarm Flag Enable (AFE) (bit register offset 1FF6h) set, thereby allowing (pin output interrupt signal (active low).
*TKPER_AL_IT 0x80; using mask 0x80
flag register offset 1FF0h) must read beginning alarm updating routine. not, flag will never released, TIMEKEEPER will continuously output interrupt MCU, system will become jammed. SOFTWARE CONFIGURATION program listed page understand operation, important distinguish between three pointer variables, pointing physical addresses hardware:
*TKPER_AL_HOUR, *TKPER_AL_MIN, *TKPER_AL_SEC
three integer variables, used work-space software:
alarm_hour, alarm_minute, alarm_second
first three variables pointers physical address values that stored M48T59 memory device. three software variables used hold user's data (they specify period alarm hours, minutes seconds). This same information stored TIMEKEEPER registers, pointed pointer variables, used their calculation. program does make four Repeat bits (RPT4, RPT3, RPT2 RPT1) that physically located TIMEKEEPER device. These should set, except those corresponding fields that contain significant data. instance, alarm that repeats every minutes seconds, alarm_minutes alarm_seconds variables would loaded with these values. Then appropriate values would calculated loading "Alarm Minutes" "Alarm Seconds" fields alarm registers addresses 1FF3h 1FF2h, *TKPER_AL_MIN *TKPER_AL_SEC, respectively), their Repeat bits (RPT2 RPT1, respectively) would reset `0'. Meanwhile, alarm_hour variable, "Alarm Date" "Alarm Hour" fields alarm registers addresses 1FF5h 1FF4h, *TKPER_AL_DATE *TKPER_AL_HOUR, respectively) would treated "Don't Care",
AN1216 APPLICATION NOTE
indicated their Repeat bits (RPT4 RPT3, respectively) being set. This summarized Table with three local integer variables, alarm_second alarm_minute alarm_hour used represent period. Table Setting Control Period Repeated Alarm
RPT4 RPT3 RPT2 RPT1 second alarm_second seconds (less than minute) alarm_minute minutes alarm_second seconds (less than hour) alarm_hour hours alarm_minute minutes alarm_second seconds (less than day) Periodic alarm activated every
example, period hour minute seconds, procedure follows:
RPT4 RPT3 RPT2 RPT1 alarm_second 0x35 alarm_minute 0x49 alarm_hour 0x01
period minute seconds, procedure follows:
RPT4 RPT3 RPT2 RPT1 alarm_second 0x35 alarm_minute 0x49 alarm_hour DontCare
SOFTWARE IMPLEMENTATION TIMEKEEPER Data Format TIMEKEEPER data held (binary coded decimal). This handled programming language using `unsigned char' data type. This converted within program other data types, such `integer', numeric processing. functions provided program this document making this conversion. Char_To_Int: take parameter, return equivalent integer value Int_To_Char: take integer parameter, return equivalent value. valid ranges alarm fields summarized Table Table TIMEKEEPER Data Format
Data language type Alarm second Alarm minute Alarm hour (integer) Decimal 0-59 0-59 0-12 Char (character) Hexadecimal 00-3B 00-3B 00-0B Char (character) 0-59 0-59 0-12
Alarm Update Management When alarm signal generated TIMEKEEPER device, communicated MCU. monitor this event either polling, using interrupts. There variants each method:
Polling
AN1216 APPLICATION NOTE
Read flag register check (bit register offset 1FF0h) Output alarm signal TIMEKEEPER (pin 26), read port
Interrupts Give priority processing alarm interrupt alarm signal used cause wake event
last option ideally suited when power consumption critical issue. instance, when measuring, processing storing some metering data every three minutes, stay stand-by state time, only full speed, with high power consumption, during other time. other interrupt option ideally suited when service time critical issue. will interrupted from whatever processing currently engaged service alarm event. This integrated into hierarchy prioritized interrupts. polling options equally suited when needs full speed, full power, time, executing important background work, only responding alarm event when nothing else polling method, always running full speed full power consumption. this case, application power consumption issue and/or process executed alarm which priority. alarm check update served every other application routine. TIMEKEEPER (pin active signal. following program, routine "Update_Next_Alarm" provided take care periodic update alarm parameters. program been written ANSI been compiled tested with M68HC11 series MCU.
TIMEKEEPER M48T59/59Y PERIODIC ALARM SOURCE CODE Version: 1.01
Copyright 1999 STMicroelectronics. This program provided WITHOUT WARRANTY KIND, EITHER EXPRESSED IMPLIED, INCLUDING LIMITED IMPLIED WARRANTY MERCHANTABILITY FITNESS PARTICULAR PURPOSE. ENTIRE RISK QUALITY PERFORMANCE PROGRAM WITH YOU. SHOULD PROGRAM PROVE DEFECTIVE, ASSUME COST NECESSARY SERVICING, REPAIR CORRECTION. This program controls TIMEKEEPER alarm hardware provide functionality periodic alarm. #include <mcu_hc11.h> #include <m88xxfx.h> this developed HC11 platform Flash+PSD register
extern volatile unsigned char dip_sw; TIMEKEEPER memory Depend your system your TIMEKEEPER. device M48T59 series, 8kx8 volatile SRAM, clock alarm registers address 1FF8h 1FFFh this example, TIMEKEEPER mapped from 4000h 5FFFh*/
AN1216 APPLICATION NOTE
#ifndef _MEM_MAP_H #define _MEM_MAP_H #define #define #define #define #define #define #define #define #define #define #define EXT_RAM_BASE (unsigned int) TIMEKEEPER_HOUR (unsigned char TIMEKEEPER_MIN (unsigned char TIMEKEEPER_SEC (unsigned char TIMEKEEPER_CAL (unsigned char TKPER_AL_IT (unsigned char TKPER_AL_DATE (unsigned char TKPER_AL_HOUR (unsigned char TKPER_AL_MIN (unsigned char TKPER_AL_SEC (unsigned char TKPER_FLAG (unsigned char 0x4000 0x5FFB 0x5FFA 0x5FF9 0x5FF8 0x5FF6 0x5FF5 0x5FF4 0x5FF3 0x5FF2 0x5FF0
#endif function Char_To_Int description This function convert timekeeper data*/ format) integer. input char byte output integer example octet 0x33 integer) Char_To_Int (0x21 hexa) Char_To_Int(unsigned char octet) buffer; buffer (int)(octet); (octet 0x09) return(buffer); ((octet 0x10) (octet 0x19)) return (buffer-6); ((octet 0x20) (octet 0x29)) return (buffer-12); ((octet 0x30) (octet 0x39)) return (buffer-18); ((octet 0x40) (octet 0x49)) return (buffer-24); ((octet 0x50) (octet 0x59)) return (buffer-30); function Int_To_Char description This function convert integer data TIMEKEEPER format (unsigned char) input integ output unsigned char example integ (0x21 hexa) Int_To_Char 0x33 integer) unsigned char Int_To_Char(int integ) char buffer; buffer (unsigned char)(integ); (integ return(buffer); ((integ (integ 19)) return (buffer+6); ((integ (integ 29)) return (buffer+0x0C); ((integ (integ 39)) return (buffer+0x12); ((integ (integ 49)) return (buffer+0x18); ((integ (integ 59)) return (buffer+0x1E); void Update_Next_Alarm description After alarm interupt, will reset TIMEKEEPER flag read actual time clock register calculate next alarm time update alarm register prepare next alarm input alarm period (al_hour, al_minute, al_second) output nothing
AN1216 APPLICATION NOTE
void Update_Next_Alarm(int al_hour,int al_minute,int al_second) time carry, going used hour, minute second calculation process. unsigned char time_flag intermediate storage alarm data. buffsec; buffmin; buffhour; temporary storage unsigned char buffchar; Touch flag register reset TIMEKEEPER flag (interupt) buffchar *TKPER_FLAG; This update alarm second register. will test RPT1 set. then adds "al_second" second alarm register. takes care minute carry. (!(*TKPER_AL_SEC 0x80)) !RPT1 update register with carry buffsec Char_To_Int(*TIMEKEEPER_SEC) al_second; (buffsec then restore 60sec format *TKPER_AL_SEC Int_To_Char(buffsec-60); time_flag else *TKPER_AL_SEC Int_To_Char(buffsec); normal case This update alarm minute register. will test RPT2 set. then adds "al_minute" alarm minute register. takes care hour carry. (!(*TKPER_AL_MIN 0x80)) !RPT2 update register with carry buffmin Char_To_Int(*TIMEKEEPER_MIN) al_minute time_flag; (buffmin then restore format *TKPER_AL_MIN Int_To_Char(buffmin-60); time_flag else *TKPER_AL_MIN Int_To_Char(buffmin); normal case time_flag This update alarm hour register. will test RPT2 set. then adds "al_hour" alarm hour register (!(*TKPER_AL_HOUR 80)) buffhour Char_To_Int(*TIMEKEEPER_HOUR) al_hour time_flag; (buffhour *TKPER_AL_HOUR Int_To_Char(buffhour-24); else *TKPER_AL_HOUR Int_To_Char(buffhour);
AN1216 APPLICATION NOTE
main(void) alarm_second; alarm_minute; alarm_hour;
relative alarm variable
TIMEKEEPER alarm configuration example. *TKPER_AL_HOUR *TKPER_AL_MIN *TKPER_AL_SEC alarm_hour alarm_minute alarm_second 0x7F; 0x7F; 0x7F; Memory-mapped unsigned char pointers external hardware registers one-off alarm fixed time today. Local memory integer variables hold repetition period alarm interrupt every 49min 35sec (for example).
Start Timekeeper oscillator. *TIMEKEEPER_SEC 0x7F; RPT4 *TKPER_AL_DAY 0x80; enable request pin26 (M48T59) *TKPER_AL_IT 0x80; while read_the_port read detect alarm interrupt lcd_min_display software driver used routine debug Those library were developed FLASH+PSD development board. read_the_ports(); display current time (dip_sw==0x0E) dip_sw updated read_the_port detect alarm interrupt from TIMEKEEPER
display next alarm time
AN1216 APPLICATION NOTE
current information products, please consult pages world wide web: www.st.com have questions suggestions concerning matters raised this document, please send them following electronic mail addresses:
apps.nvram@st.com ask.memory@st.com
(for application support) (for general enquiries)
Please remember include your name, company, location, telephone number number.
Information furnished believed accurate reliable. However, STMicroelectronics assumes responsibility consequences such information infringement patents other rights third parties which result from use. license granted implication otherwise under patent patent rights STMicroelectronics. Specifications mentioned this publication subject change without notice. This publication supersedes replaces information previously supplied. STMicroelectronics products authorized critical components life support devices systems without express written approval STMicroelectronics. 2000 STMicroelectronics Rights Reserved logo registered trademark STMicroelectronics. other names property their respective owners. STMicroelectronics GROUP COMPANIES Australia Brazil China Finland France Germany Hong Kong India Italy Japan Malaysia Malta Morocco Singapore Spain Sweden Switzerland United Kingdom U.S.A. http://www.st.com

Other recent searches


TA09645 - TA09645   TA09645 Datasheet
SRS620RGU - SRS620RGU   SRS620RGU Datasheet
Ni20U-EM30-AN6X - Ni20U-EM30-AN6X   Ni20U-EM30-AN6X Datasheet
MAX16834 - MAX16834   MAX16834 Datasheet
H5920-01 - H5920-01   H5920-01 Datasheet
833202B03300 - 833202B03300   833202B03300 Datasheet
74AUP1G04 - 74AUP1G04   74AUP1G04 Datasheet
2SC3973 - 2SC3973   2SC3973 Datasheet
2SC3973A - 2SC3973A   2SC3973A Datasheet

 

Privacy Policy | Disclaimer
© 2012 Datasheet Archive