PIC-Top Octave Generator

Für geringere Anforderungen an Genauigkeit und Tonhöhe kann auch ein RISC-Prozessor zur Tonerzeugung herangezogen werden.
Eingesetzt wurde ein "Microchip PIC18F13K22". Getaktet von einem 16MHz-Quarz, arbeitet er intern mit seiner Maximalfrequenz von 64MHz. Um möglichst hohe und genaue Frequenzen erzeugen zu können, musste der Programmcode so kurz wie möglich gehalten werden. Hierin lag die eigentliche Herausforderung.
Der PIC stellt alle Halbtöne von C6 (1046,502Hz) bis einschließlich C7 (2093,005Hz) zeitgleich an seinen 13 Ausgängen bereit, das Puls/Pausenverhältnis der rechteckförmigen Ausgangsspannungen beträgt 1:1.

Frequenztabelle

Note Teiler Soll-Frequenz
(Hz)
Ist-Frequenz
(Hz)
Abweichung
(%)
C7 60 2093,005 2083,333 -0,462
H6 63 1975,533 1984,127 +0,435
Ais6 67 1864,655 1865,672 +0,054
A6 71 1760,000 1760,563 +0,032
Gis6 75 1661,219 1666,667 +0,328
G6 80 1567,982 1562,500 -0,349
Fis6 84 1479,978 1488,095 +0,549
F6 89 1396,913 1404,494 +0,543
E6 95 1318,510 1315,789 -0,207
Dis6 101 1244,508 1237,624 -0,553
D6 107 1174,659 1168,224 -0,548
Cis6 113 1108,731 1106,195 -0,229
C6 120 1046,502 1041,667 -0,462

Schaltbild als pdf :

C-Dur Tonleiter

Chromatische Tonleiter

Firmware für PIC18F13K22 als hex :

Die Version ohne externen Quarz :