Op deze pagina wordt uitgelegd hoe je beide kanalen van een MAS9116 / WM8816 kan besturen. De MAS9116 / WM8816 heeft twee audio kanalen L + R.
Wat moet worden gedaan is seriele data in de MAS9116 / WM8816 klokken. Als je kijkt op pagina 4 van de datasheet zie je de beschrijvingen van de registers (hier een gedeelte uit die pagina):

De gele regel laat zien hoe je beide kanalen tegelijk kan besturen. Wat moet gebeuren is 16 bits inklokken, om zo het volume (L en R) 0.5 dB harder of zachter te maken. De Adres Byte blijft de hele tijd hetzelfde, en wordt: X1001WXX , als je het stukje bekijkt onder de gele regel, dan staat er dat de X-en liever hoog (1) moeten worden, en de W laag (0) moet worden, zodoende wordt de Adres Byte: 0b11001011 = 0xCB. De Data Byte zal veranderen door de draai-encoder (of welke manier van besturen dan ook, gebruik bijv. DEC en INC), dit register heeft een 8-bit's resolutie (0 - 255) Wil je meteen geluid horen bij inschakelen, zorg er dan voor dat de schakeling opstart vanaf 0 dB (init), als je de datasheet bekijkt zie dat CR1 en CR2 beide identiek zijn, dus zal de init 0b11100000 = 0xE0 worden (224ste positie van de loper) Begin met de 8 bit's van de Adres Byte in te sturen, en meteen er achteraan de 8 bit's van de Data Byte. Als je op pagina 8 kijkt zie je het tijd-diagram (zie ook hieronder) van de seriele data. De 16 bit's zijn duidelijk te herkennen (DATA IN) Bekijk het tijd-diagram heel zorgvuldig:

Wat je ziet zijn de drie verbindingen: CCLK, XCS en DATA. Zodoende heb je drie i/o poorten nodig van een microcontroller, of als je XCS niet gaat gebruiken, deze aan massa leggen. XCS (Chip Selectie) wordt alleen gebruikt als er meerdere MAS9116 / WM8816 IC's worden toegepast in een schakeling (zoals bijv. in een mengpaneel) Dus blijven er maar twee verbindingen over. Telkens als CCLK hoog wordt moet de loper-data volgen (data kan 0 of 1 zijn), je moet dus een serieel protocol schrijven. Doe het volgende: maak eerst XMUTE hoog en XCS laag, zet dan het msb Adres Data bit klaar, maak dan CCLK hoog, nu zal dit bit worden overgebracht in het geheugen van de MAS9116 / WM8816, doe dit 8 maal (het Adres informatie byte), haal dan de Data Byte op, van welke bron dan ook (kunnen zijn drukknoppen, draai-encoders, omhoog/omlaag) verstuur deze byte ook. Zodra alle 16 bits (2 bytes) zijn verzonden, maak dan XCS weer hoog, en het nieuwe volume (afhankelijk van waarde Data Byte 0-255) is gezet. Je kan ook volume of balans presets maken d.m.v. een aantal drukknopjes, zoals: Mute, max Vol., of 0 dB, R, L or midden, enz.
Volgende stap, hoe een symmetrische voeding te maken.
Voor audio toepassingen heb je een goede voeding nodig, hier een schema van een symmetrische voeding voor hobby projekten (voor dit projekt kun je ook de 7824 en 7924 toepassen, maar dan geen regelbare spanning mogelijk):

De spanningen moeten schoon zijn, dus voldoende condensatoren om brom en ruis weg te krijgen. Plaats de transformator van de audio vandaan (niet te dicht erop) en scherm de audio goed af (metalen omhulsel) De dioden (1N4002) beschermen de spanningregelaars. Als de potmeters R2 naar min worden gedraaid, zal de uitgangs spanning 1.25 Volt zijn, als deze op maximale weerstand (50k+1k5) worden gezet krijg je de ingangs spanning minus het spanningsverlies over de regelaar. Deze twee spanningen zijn de limieten. Gebruik koellichamen indien je projekt een hoop stroom nodig heeft. Hier een voorbeeld hoe er een zou kunnen worden gemaakt:

Hoe kun je een piek nivo meten ?
Op pagina 4 van de datasheet van de MAS9116 / WM8816, vind je de 'register descriptions' (uitleg registers) Hieronder afgebeeld:

Register CR4, is het register waar de gegevens van de piek detector opgeslagen wordt, zijn vier waardes:
0x00 = Geen piek nivo overschreden
0x01 = Rechter kanaal piek nivo overschreden
0x02 = Linker kanaal piek nivo overschreden
0x03 = Beide kanalen piek nivo's overschreden
De piek nivo detektor werkt als volgt: Eerst word een bepaalde piek waarde in het piek detektor referentie register CR3 geschreven, hierdoor zal de DAC (digitaal naar analoog omzetter) een corresponderende spanning op de analoge comparator zetten, dit getal kan worden berekend aan de hand van de volgende formule:
Vref = k / 256 * 18V (256 betekent een 8-bit DAC)
Wanneer je b.v. de waarde k = 30 neemt, zal je een referentie spanning krijgen van: 30 / 256 * 18 = 2.1 Volt (varieerd tussen 0 - 18V, dit is de maximale audio signaal amplitude) Speel simpelweg met wat getallen, en op die manier kom je erachter welke waarde(s) het beste werken voor je projekt(en) Als het audionivo hetzelfde nivo bereikt als de referantie spanning zal de piek detektor bit(s) omklappen (werkt idem als de analoge comparator van een AVR), voor elk audio kanaal een apparte bit. Na het uitlezen van de piek detektor bits zullen deze gereset worden. Zet eerst de piek detektor referentie, poll dan de piek detektor status en wacht voor overschreiding ervan.
[terug naar boven]