User Tools

Site Tools


mmbasic:clock_frequency_trimming_on_micromite_ii_uses_precision_32_768khz_output_from_ds3231_real_time_clock

Clock frequency trimming on Micromite II uses precision 32.768KHz output from DS3231 Real Time Clock

The DS3231 RTC has a very precise 32.768KHz output usually on pin 1 (ymmv). By taking this known frequency and measuring it using the COUNT function in MMBasic, the internal clock frequency (which determines the gate period for the count) can be adjusted until the measured frequency is as near as possible to the know frequency from the RTC.

The clever code below measures the frequency and automatically calculates the CLOCKTRIM argument.

Originally posted here: http://www.thebackshed.com/forum/forum_posts.asp?TID=7972

Credit: twofingers

' Clocktrim level for Micromite2/MMBasic 
' determines the value for Option ClockTrim n 
' using the DS3231 32768hz signal (32kHz TCXO). 
' Released by twofingers@TBS 18.09.2015 
' Provided AS IS. No warranty. 
' 
' You need only to connect a wire from  
' DS3231/32kHz Pin 1 to a MM2 (COUNT) pin (e.g. 16) 

 
Option EXPLICIT 
Dim integer freq,ctrim 

SetPin 16,fin 
Pause 2000 
freq=Pin(16) 

ctrim=Cint(freq-32768)/15 
'Print freq, ctrim 
If Abs(ctrim) < 10 Then 
   Option ClockTrim ctrim 
   Print "ClockTrim is set to "ctrim 
Else 
   Print "Error! Please check 32khz signal. Freq="freq 
EndIf
mmbasic/clock_frequency_trimming_on_micromite_ii_uses_precision_32_768khz_output_from_ds3231_real_time_clock.txt · Last modified: 2024/01/19 09:30 by 127.0.0.1