Zdravim Vas, nedavno sme tu uspesne vyriesili problem s generovanim obldznikoveho signalu s moznostou zmeny frekvencie pomocou trimra a teraz by som potreboval pomoct nakopnut ako postupovat pri generovani piloviteho a trojuholnikoveho priebehu. Podmienka je ze frekvencia sa bude nastavovat programovo takze z vonku sa dat ovplyvnit nebude. Nikdy som nevidel ako vyriesit tento problem a jedine riesenie co ma napadlo je inkrementovat hodnotu za nejaky cas a tuto hodnotu posielat do DA prevodniku a tym vytvorit tu sklopenu hranu oboch priebehov, pricom strmost bude dana casom a samozrejme rozlisenim prevodniku. Bolo by to vobec mozne? Su nejake jednoduhsie sposoby ako vytvorit tieto priebehy? Problemom pri tom mojom sposobe by bola asi velmi mala frekvencia tychto signalov aby som nezacal skreslovat generovany signal. Dakujem
PS: pisem v bascome a v kite mam osadenu Megu644p
Ahoj.
Pokud uz umis generovat obdelnik, proc nepouzit trochu “smeti okolo” ke generovani pily nebo trojuhelniku.
Pro inspiraci treba zde 8bitu.cz/clanek/generator-signalu-obdelnik-trojuhelnik-a-pila/
alebo pouzit:
AD9833
MAX038
tomu som sa chcel vyhnut, ale vidim ze mi asi naozaj nic ine neostava
PS: MAX038 sa uz nevyraba
Když umíš vyrobit obdélník, pilovitý průběh z něj vyrobíš pomocí integrátoru (invertující OZ s kondenzátorem ve zpětné vazbě). Problém je, že amplituda klesá s rostoucím kmitočetm. Nevím na co to máš, zda to nemůže být překážka.
Pokud ti jde o funkční generátor (obdelník, pila, sinus), hodí se k tomu od firmy EXAR integráč XR2206 s přeladitelností až 1:2000. Chceš-li mít přesnou frekvenci řízenou MCU, musel by sis k tomu dodělat fázový závěs.
To DragonSoul: Příklad, který uvádíš, není v principu pilovitý průběh, ale exponenciální.
xr2206 a pod som vyskusal avsak ziaden mi neposkytol to co som pozadoval a to je maximalna frekvencia cca 150-200kHz bez toho aby sa signal nejakym sposobom skresloval. S XRkom som sa dostal max do tych 80-100kHz kedy bol signal este v tolerancii avsak so zvysujucou sa frekvenciu sa zacal signal neumerne skreslovat a preto som chcel vediet ci by bolo mozne nieco podobne generovat pomocou MCU. Vidim ze asi najlepsie riesenie bude vyskusat niektory ADxxxx generator a zistit kam sa dostanem
ak chces dosiahnut 200kHz neskresleny trojuholnik v rozdahu 10b DA, potom je potrebne do DA zapisat 2048 vzoriek na periodu. To znamena, ze 200000*2048 = 409milionov zapisov za sekundu.
To ze ako si si predstavoval s mcu beziacom na 16-20MHZ?
Ak by si zliezol na 8krokov (3bity), potom bude frekvencia zapisu 3.2milionov zapisov za sekundu. No a signal z DA s krokom 1/8 bude mat vystupny signal daleko daleko vacsie skreslenie ako s XR2206/7. Logis
Inak co rozumies pod “toleranciou” signalu? Mozem Ta ubezpecit, ze 5% skreslenie sinusoveho signalu (co je uz dost velky smejd) nemusi byt na osciloskope okom pozorovatelne. Alebo si pre vyhodnotenie pouzil frekvencny analyzator s vyhodnotenim skreslenia?
Hned v uvode som napisal ze je to len moja predstava ako by sa to teoreticky dalo spravit nakolko som to nikdy nerobil a popravde som sa hlbsie nad tym ani nezamyslal nakolko som myslel ze existuje nejaky jednoduchsi sposob ako to spravit. Co sa tyka tej tolerancie tak potrebujem aby hrany boli co najostrejsie a nemusis sa bat ale viem ze na osciloskope neuvidim aj tu najmensiu deformaciu signalu ale pri IO ktore som doteraz mal tento problem nastal a bol jasne viditelny
Prepac, ale zas taka vagna poziadavka: “aby boli hrany co najostrejsie”.
Definuj veci co najpresnejsie, napriklad poziadavkou na sirku prenasaneho pasma generovaneho signalu. Ak budes generovat napriklad 10MHz a sirka prenasaneho pasma (bez dodatocneho fazoveho skreslenia) bude 200MHz, potom bude hrana trvat cca 5% casu signalu. 200MHz vsak uz nie je ziadna mala frekvencia pre realizaciu jej prenosu “beznymi” prostriedkami (samozrejme ida aj o vzdialenost a o parazitnu indukcnost a kapacitu po ceste). Tam uz zavisi od impedancnejho prisposobenia a tak podobne a nespravnym meranim (predpokladam, ze Ty merias spravne, je to len poznamka pre zaciatocnikov ) sa do signalu vedia zaviest take deformacie az by sa jeden divil.
Maximalna frekvencia ktoru pozadujem je cca 200kHz, tzn do MHz urcite nepojdem a aby som presnejsie definoval pojem ostre hrany tak sa to pokusim opisat na priklade s hore spominanim XR2206. Pri frekvencii cca 100kHz sa na vrchole (spicke) trojuholnika zacalo vytvarat zaoblenie ktore bolo dost znatelne pri pohlade na osciloskop. Keby som mal nejaky obrazok tak ho tu hodim ale to az ked budem doma ale myslim ze asi vies o com hovorim. O tom ze pri frekvenciach v radoch MHz a aj nizsich zalezi velmi aj na prevedeni spojov a ze kazdu ciaru si treba premysliet je mi jasne, uz ma to vytrapilo nejeden krat
Zkoušel jsi změnit parametry XR2206? Je možné, že výstupní amplituda je příliš vysoká a dochází uvnitř k limitaci. Dle datasheetu může pracovat až do 1MHz a linearita by měla být 1%.
Podkud žádáš kvalitnější pilu, lze ji vyrobit (jak už jsem předeslal) pomocí integrátoru tvořeného z OZ, např OP37. Ten je řízen z klopného obvodu typu RS, který se překlápí signálem ze dvou komparátorů, jejichž prahové úrovně vymezují amplitudu výsledného signálu. Koneckonců na tomto principu funguje již zmíněný XR2206. Komparátory včetně KO jsou obsaženy např. v NE555.
K zaoblení pily dochází i u řady značkových generátorů na maximální frekvenci. U některých už není rozdíl mezi sinusem a pilou, jako např. u generátorů Metex. Nevím pro co to máš, ale pokud jde o měření, využívá se vždy lineární část pily a špičky se z měření vylučují. Podstatná je linearita, nikoliv ostré špičky pily.