440.0 Hz Standard Music Tone Generatior

 

 

    Figure 1 is a simple but very accurate circuit that generates the 440.0 Hz standard music tone.  It can act like a "tuning fork" for musical instruments. For example, you can use it to check whether your piano has been out of tune. If your piano is fine tuned, its A4 key must sound the same tone as this one.

 

                               

                                      Figure 1.  440 Hz Music Tone generator

 

 

    To get exact 440.0 Hz  tone, both hardware and software must be fine-tuned. Because ATtiny11's built-in RC oscillator is not accurately 1 MHz, we replace it with the 1 MHz crystal oscillator as shown. The speaker needs to have good response to audible frequencies, we choose a 2.5" 100 Ohm speaker.

 

    Since the factory has pre-programmed the ATtiny11's "Fuse bits" and made it shipped with built-in RC oscillator, we need to re-program its "Fuse bits" in order to use external oscillator.

 

    This "Fuse bits" programming facility is not included in AVRHVP-1 programmer since there is no more flash memory to accommodate this. For this reason another special programmer AVRHVP-2 has been developed, which handles only "Fuse bits" programming and writing "Lock bits" (to hide the binary code on chip) functions.

 

    Listing 1 is the software. To generate the accurate 440 Hz frequency tone, an infinite loop of 1136 us (microsecond) High and Low voltage is alternately applied to the speaker, here 1136 us is the half period (T/2) corresponding to 440 Hz.

 

    The key routine here is DL1132us delay routine, but every other instruction counts. For example, setting up PB1=High or Low takes 2 us each, calling DL1132 also takes 2 us. Adding them up gives exact 1136 us.

 

    With such meticulous calculation, the circuit output tone is exactly 440.0 Hz when measured by frequency meter. As a comparison, if you don't re-program the Fuse bits but use the original factory built-in RC oscillator, the frequency meter will show quite different readings, such as 495.7 Hz and with the last two digits changing.

 

 

 

 

 

LISTING 1. The Standard 440 Hz Music Tone Generation program

 

;ATonTn11.ASM: 440 Hz Standard Music “A” tone generator

.include "TN11def.inc"      ; Port definitions here

.cseg

.org 0

        sbi     DDRB, 1     ; config DDRB bit-1 as output

        sbi     DDRB, 0     ; config DDRB bit-0 as output

 

        cbi     PORTB, 0    ; LED=ON

 

AGAIN:

        cbi     PORTB, 1    ; PB1=LOW; 2us

        rcall   DL1132us    ;

        NOP                 ; 1us

        NOP                 ; 1us                  

                            ;                1136

                            ;               ------        --

        sbi     PORTB, 1    ; PB1=High     |      |      |

        rcall   DL1132us    ;           ___|      |______|

                            ;                       1136

        rjmp    AGAIN       ; 2us

;--------------------------------------------------------------

;delay 1132us at 1 MHz

 

DL1132us:

        LDI     R20, 0          ; 1us

LOOP1:

        DEC     R20             ; 1us \ 3*256 = 768 us

        brne    LOOP1           ; 2us /

 

        LDI     R21, 119        ; 1us

LOOP2:

        DEC     R21             ; 1us \ 3*119 = 357 us

        brne    LOOP2           ; 2us /

 

        RET                     ; 4us

;---------------------------------------------------------

;rcall is 3us;  Total delay = 1132 us