Motor d'àudio 2
Diversos efectes i fitxers d'àudio poden ser reproduïts per la FT800. La sortida es proporciona com a PWM
senyal en un sol pin, AUDIO_L. Hi ha dues fonts d'àudio, el sintetitzador de so i el
Reproducció d'àudio.
-2.1 Sintetitzador de so
Els efectes de so estan carregats prèviament en una biblioteca d'ones de ROM i no requereixen l'ús de cap FT800
Espai RAM. La majoria dels comentaris auditius de l'usuari es poden proporcionar a través d'aquests efectes, com ara un clic
quan es prem un botó a la pantalla, es mostren els tons DTMF per a la telecomunicació o un avís d'alarma. La majoria
els efectes es jugaran una vegada i després s'aturaran. Uns altres jugaran contínuament. La llista completa de tons i
Les funcions es mostren a continuació:
Valor | Efecte | Contínua | Brea ajustar | Valor | Efecte | Contínua | Brea ajustar |
00h | Silenci | Jo | N | 32h | DTMF 2 | Jo | N |
01h | ona quadrada | Jo | Jo | 33h | DTMF 3 | Jo | N |
02h | ona sinusoïdal | Jo | Jo | 34h | DTMF 4 | Jo | N |
03h | ona de la dentadura | Jo | Jo | 35h | DTMF 5 | Jo | N |
04h | ona del triangle | Jo | Jo | 36h | DTMF 6 | Jo | N |
05h | Boig | Jo | Jo | 37 h | DTMF 7 | Jo | N |
06h | Alarma | Jo | Jo | 38h | DTMF 8 | Jo | N |
07h | Warble | Jo | Jo | 39h | DTMF 9 | Jo | N |
08h | Carrusel | Jo | Jo | 40h | arpa | N | Jo |
10h | 1 pipa curta | N | Jo | 41h | xilòfon | N | Jo |
11h | 2 pips curts | N | Jo | 42h | tuba | N | Jo |
12h | 3 pips curts | N | Jo | 43h | Glockenspiel | N | Jo |
13h | 4 pips curts | N | Jo | 44 h | òrgan | N | Jo |
14h | 5 pips curts | N | Jo | 45h | trompeta | N | Jo |
15h | 6 pips curts | N | Jo | 46h | piano | N | Jo |
16h | 7 pips curts | N | Jo | 47h | campanes | N | Jo |
17h | 8 pips curts | N | Jo | 48h | Caixa de música | N | Jo |
18h | 9 pips curts | N | Jo | 49h | timbre | N | Jo |
19h | 10 pips curts | N | Jo | 50h | feu clic a | N | N |
1Ah | 11 pips curts | N | Jo | 51h | interruptor | N | N |
1Bh | 12 pips curts | N | Jo | 52h | covell | N | N |
1Ch | 13 pips curts | N | Jo | 53h | entallada | N | N |
1Dh | 14 pips curts | N | Jo | 54h | hihat | N | N |
1Eh | 15 pips curts | N | Jo | 55h | kickdrum | N | N |
1Fh | 16 pips curts | N | Jo | 56h | pop | N | N |
23h | DTMF # | Jo | N | 57 h | clack | N | N |
2Ch | DTMF * | Jo | N | 58 h | xerra | N | N |
30h | DTMF 0 | Jo | N | 60h | mut | N | N |
31h | DTMF 1 | Jo | N | 61h | silenciar | N | N |
Molts dels efectes permeten el control de tonalitats (nota MIDI), de manera que es poden generar diversos tons. S'utilitzen assignacions estàndard de notes MIDI:
Nota MIDI | Nota ANSI | Freq (Hz) | Nota MIDI | Nota ANSI | Freq (Hz) |
21 | A0 | 27.5 | 65 | F4 | 349.2 |
22 | A # 0 | 29.1 | 66 | F # 4 | 370.0 |
23 | B0 | 30.9 | 67 | G4 | 392.0 |
24 | C1 | 32.7 | 68 | G # 4 | 415.3 |
25 | C # 1 | 34.6 | 69 | A4 | 440.0 |
26 | D1 | 36.7 | 70 | A # 4 | 466.2 |
27 | D # 1 | 38.9 | 71 | B4 | 493.9 |
28 | E1 | 41.2 | 72 | C5 | 523.3 |
29 | F1 | 43.7 | 73 | C # 5 | 554.4 |
30 | F # 1 | 46.2 | 74 | D5 | 587.3 |
31 | G1 | 49.0 | 75 | D # 5 | 622.3 |
32 | G # 1 | 51.9 | 76 | E5 | 659.3 |
33 | A1 | 55.0 | 77 | F5 | 698,5 |
34 | A # 1 | 58.3 | 78 | F # 5 | 740.0 |
35 | B1 | 61.7 | 79 | G5 | 784.0 |
36 | C2 | 65.4 | 80 | G # 5 | 830.6 |
37 | C # 2 | 69.3 | 81 | A5 | 880.0 |
38 | D2 | 73.4 | 82 | A # 5 | 932.3 |
39 | D # 2 | 77.8 | 83 | B5 | 987.8 |
40 | E2 | 82.4 | 84 | C6 | 1046.5 |
41 | F2 | 87.3 | 85 | C # 6 | 1108.7 |
42 | F # 2 | 92.5 | 86 | D6 | 1174.7 |
43 | G2 | 98.0 | 87 | D # 6 | 1244.5 |
44 | G # 2 | 103.8 | 88 | E6 | 1318.5 |
45 | A2 | 110.0 | 89 | F6 | 1396.9 |
46 | A # 2 | 116.5 | 90 | F # 6 | 1480.0 |
47 | B2 | 123.5 | 91 | G6 | 1568.0 |
48 | C3 | 130.8 | 92 | G # 6 | 1661.2 |
49 | C # 3 | 138.6 | 93 | A6 | 1760.0 |
50 | D3 | 146.8 | 94 | A # 6 | 1864.7 |
51 | D # 3 | 155.6 | 95 | B6 | 1975.5 |
52 | E3 | 164.8 | 96 | C7 | 2093.0 |
53 | F3 | 174.6 | 97 | C # 7 | 2217.5 |
54 | F # 3 | 185.0 | 98 | D7 | 2349.3 |
55 | G3 | 196.0 | 99 | D # 7 | 2489.0 |
56 | G # 3 | 207.7 | 100 | E7 | 2637.0 |
57 | A3 | 220.0 | 101 | F7 | 2793.8 |
58 | A # 3 | 233.1 | 102 | F # 7 | 2960.0 |
59 | B3 | 246.9 | 103 | G7 | 3136.0 |
60 | C4 | 261.6 | 104 | G # 7 | 3322.4 |
61 | C # 4 | 277.2 | 105 | A7 | 3520.0 |
62 | D4 | 293.7 | 106 | A # 7 | 3729.3 |
63 | D # 4 | 311.1 | 107 | B7 | 3951.1 |
64 | E4 | 329.6 | 108 | C8 | 4186.0 |
La síntesi sonora està controlada pels registres següents:
REG_SOUND
o Bits 31-16 = No m'importa
o Bits 15-8 = Nota MIDI (tonalitat)
o efecte Bits 7-0
REG_PLAY
o Bits 31-1 = No m'importa
o Bit0 = Inicia l'estat de reproducció / reproducció
Escriure = 1 per començar a reproduir la selecció en REG_SOUND
Llegir = 1 indica l'efecte que s'està reproduint actualment
Llegir = 0 indica l'efecte que s'ha completat
REG_VOL_SOUND
o Bits 31-8 = no els importa
o Bits 7-0 = volum de sortida
Les lectures i escriptures a l'espai de memòria FT800 es gestionen a través del format "little endian", on
el primer byte serà el menys significatiu. Per exemple, considereu un efecte piano (0x46) que toca A4
(0x45). Les dades de la interfície SPI o I2C consistirien en una seqüència d'escriptura de memòria de l'ordinador amb
les següents dades, per ordre:
0x90 = Memòria de l'ordinador Transferència d'escriptura (0x80) més el primer byte d'adreça de registre (0x10)
0x24 = segon byte d'adreça de registre
0x84 = tercer byte de l'adreça del registre
0x46 = efecte piano
0x45 = nota / pitch = A4 (440 Hz)
0x00 = no m'importa, opcional
0x00 = no m'importa, opcional
Tingueu en compte que els dos últims bytes no han d'estar escrits, de manera que una escriptura de memòria de l'ordinador de 16 bits pot realment
satisfan els valors necessaris en el registre. Explicació addicional de la memòria de l'amfitrió Escriure, amfitrió
Memòria de lectura de memòria i Memòria de l 'ordinador Les transferències de dades d' ordres es troben a AN_240 FT800 Des del
Ground Up.
-2.2 Arxius d'àudio
Hi pot haver aplicacions on sigui necessària alguna cosa més que una simple síntesi de to. Per
Per exemple, un missatge de veu o un altre anunci pot ser necessari per donar a l'usuari específic
instruccions. El FT800 és compatible amb la reproducció d'arxius en els següents formats de mono:
PCM signat a 8 bits: àudio sense comprimir sense processar
8 bits μLAW: àudio comprimit no lineal
IMA-ADPCM de 4 bits: més μLAW comprimit, on cada byte conté dos de 4 bits
mostres
El FT800 té 256 KB de memòria d'objectes (RAM_G) per contenir objectes de vídeo (imatges i fonts) i
objectes d'àudio (sons gravats). L'espai ha de ser gestionat per l'MCU amfitrió perquè
la informació no es sobreescriu fins que no es requereixi més.
Els fitxers d'àudio es carreguen a través de la transacció d'escriptura de memòria de l'ordinador a l'espai disponible i són
necessària per ser alineat de 8 bytes (64 bits).
Una vegada que un fitxer d'àudio es carrega a la memòria RAM_G, la reproducció es controla de la següent manera
registra:
REG_PLAYBACK_START
o Bits 31-20 = no els importa
o Bits 19-0 = adreça de sortida de 20 bits del fitxer dins de RAM_G
REG_PLAYBACK_LENGTH
o Bits 31-20 = no els importa
o Bits 19-0 = longitud de 20 bits del fitxer dins de RAM_G
REG_PLAYBACK_FREQ
o Bits 31-16 = no els importa
o Bits 15-0 = freqüència de mostreig de la freqüència de reproducció de 16 bits, en Hz
REG_PLAYBACK_FORMAT
o Bits 31-2 = no els importa
o Bits 1-0 = format de reproducció de 2 bits
0 = PCM lineal o no comprimit
1 = μLaw
2 = ADPCM
3 = no definit
REG_PLAYBACK_LOOP
o Bits 31-1 = no els importa
o Bit 0 = estil de reproducció de 1 bits
0 = jugar una vegada
1 = jugar continu
REG_PLAYBACK_PLAY
o Bits 31-1 = no els importa
o Bit 0 = Inicia la reproducció / estat del joc
Escriure = 0 o 1 per començar a reproduir la selecció en REG_SOUND
Llegir = 1 indica que el fitxer s'està reproduint actualment
Llegir = 0 indica que el fitxer s'ha completat
REG_PLAYBACK_READPTR
o Bits 31-20 = no els importa
o Bits 19-0 = punter de 20 bits de la posició de reproducció actual
REG_VOL_PB
o Bits 31-8 = no els importa
o Bits 7-0 = volum de sortida
-2.2.1 Utilitat de conversió
FTDI proporciona una utilitat de conversió d'àudio anomenada "AUD_CVT" per tenir un format de fitxer comú i
Creeu els tres tipus de fitxers compatibles amb el FT800. Un enllaç a aquesta utilitat es proporciona a la
A la secció "Apèndix A - Referències" d'aquest document.
S'assumeix que el fitxer d'origen és un PCM de 16 bits (sense comprimir), mono d'arxiu WAV. Aquest fitxer pot
es crearà a través d'un programa d'edició d'àudio comú, com ara Audacity. Una vegada que el
l'arxiu font està disponible, simplement executeu l'utilitat en un símbol del sistema:
aud_cvt -i inputfilename -f format
on "format" = 0 per PCM signat a 8 bits
= 1 per μLaw de 8 bits
= 2 per IMA ADPCM de 4 bits
Es crearà una carpeta amb els fitxers resultants. Aquests fitxers es poden usar per carregar al
Àrea de memòria RAM_G del FT800.
La utilitat de conversió d'àudio produirà un arxiu en brut i un fitxer comprimit per a cada format seleccionat. Ho
pot ser útil en l 'MCU host per emmagatzemar els fitxers comprimits i, a continuació, expandir - los a la
RAM_G buffer quan sigui necessari. Consulteu la secció 4 per obtenir més informació.