Díky za odpověď, co to má být tajné není, spíš s koncem v nedohlednu…
Měl by vzniknout A/D polyfonní (nejspíš 8 hlasý) syntetizér s wavetable oscilátory, přičemž wavetable není to, co je známé třeba ze zvukových karet, ale to, že každý oscilátor má přiřazenou určitým způsobem seřazenou skupinu průběhů a mezi nimi pomocí modulátorů přepíná, takže průběh není statický.
Tohle mám vyřešené jak HW, tak jsem napsal i kompletní SW synth na PC, který tohle používá. HW verze má mít ale analogové VCF a VCA, proto potřebuji mechanismus, který teď řeším.
Struktura by měla být následující: hlavní uC, který bude zajišťovat komunikaci s okolím (MIDI přes USART), scanování fyzických ovládacích prvků (cca 20 potenciometrů + tlačítka, 2x 7segmentovka a 40x2 LCD) a posílat řídící data na 2 identické boardy, každý řízený 1 uC, který bude dělat to, co tu řeším. Každý z dvojice oscilátorů na hlas (tj. celkem 8 osc na boardu) je tzv. fázový oscilátor, hodnotu přírustku udává řídící uC boardu. Proto nemohu mít DAC stále průchozí, protože bude na stejné sběrnici, jako oscilátory (základem je ATtiny2313 ve funkci programovatelného čítače, který generuje pulzy a přes přídavné obvody udává pozici vzorku v tabulce v ROM - mohu kdyžtak vysvětlit detailněji), jejichž frekvence se musí dosti často updatovat, např. kvůli periodickým modulacím.
Modulační generátory (generátor periodických kmitů různých průběhů - LFO a generátory obálek) budu řešit SW, na hodnotách modulátorů totiž závisí např. i poloha ve wavetable, více modulátorů může ovlivňovat jednu veličinu. Ještě nemám určeno, zda budu posílat např. do VCF výslednou hodnotu řídícího napětí nebo zvlášť fixní nastavení a modulátory, obojí má pro a proti. Proto mohu potřebovat těch výstupů třeba 20 i více (všechno 4x, takže i pro pár veličin je jich dost).
K tomu bodu 2, to znamená, že musím na porty vložit hodnotu, čekat 180ns, pak teprve WR → LOW? Mezi nastavením adresy a sepnutím INH na multiplexu nemusí být prodleva nebo je to těch 525 ns?
Nakreslil jsem takové rádoby schéma, jak je to zapojené okolo uC a DAC, chybí tam jen odbočky sběrnice k oscilátorům, které nejsou podstatné. Také program pro Atmel, který by to měl zajišťovat. Je to v podstatě jen funkční prototyp, namlátil jsem to za chvilku, řeší jen posílání na DAC a adresování multiplexů. Jinak programování uC se také učím, takže to nemusí být všechno úplně “clever” .
DACmulti.asm (4.55 KB)