ADC konvertálás

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
MaSTeRFoXX

ADC konvertálás

Hozzászólás Szerző: MaSTeRFoXX »

ÜDV!
Az lenne akérdésem : hogy mennyi idő alatt végez el az avr (azmega16)egy AD konverziót 4MHz-en?
Mert olyan ötletem támadt, hogy az AVR 8 analóg bemenetére a aktív/passziv szűrőkkel a teljes hangfrekvenciás sávot felosztani, ezeket sorban, egymás után beolvastatni és kííratni egy 8*8as LED mátrixra. és ezzel létre tudnánk hozni egy szép kis spektrum analizátort, mint a Winamp-ban!

Az lenne a lényeg hogy mind a 8 konvertálást el kéne végezni másodpercenként legalábbb 25 ször, hogy folyamatosnak tűnjön azu egész.

Ez megoldható, vagy karácsony után egy nappal ne zargassalak ilyen kérdéssel? :D

.:: MaSTeRFoXX ::.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Hat elvileg 30-40 kHz ami kihozható belőle. van egy Sound Recorder nevű alkalmazás az Atmel oldalán. Ott tömörítéssel is megy a dolog, és ~8kHzvel digizik. A Config ADC utasítással állíthatod be a referenciafrekvenciát. Ha 8 biten digizel, akkor ezt osszd el 9-l (közelítéses a digizás, ha jól emlékszem, ez a legrosszabb esetben 9 órajelfreki.). Szóval a 25/db r9öhögve megy.

De: ézz körbe a Fast fourier Transformation részen. Itt SWből van meg a szűrőzés (matematikája bonyolult, nézz meg 1-2 mintát.
Így 1 bemenet, a proci megy 16 MHzre. Sőt egy M8-ba is belefér a kód. illetve januártól lesz ATTIny25/45/85 proci (kergetem már), ez 8 lábó, AD bemenettel, és 8K belső programmemóriával :roll: , Szóval ütős darab...
MaSTeRFoXX

Hozzászólás Szerző: MaSTeRFoXX »

Köszi!

MAjd ez lesz a következő project. De azelőtt még be kell fejeznem a Fóliasátor/Üvegház ajtó-vezérlő elektronikát, Lehetőleg jan.16ig a versenyre. :)
[/img]
MaSTeRFoXX

Hozzászólás Szerző: MaSTeRFoXX »

Lenne még egy kérdésem(úgy ahogy az AD konverterhez tartozik):

PWM-ezni Bascomban hogy lehet?
Például hangot előállítani.

(hang->AD konverter -> AT45DBxxx DataFlash memória->PWM->hang)=diktafon

Asszem a 335ös Application note-on találtam az atmel honlapján.
Köszi
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

'ATTiny2313 mintapanel kiegeszito program:
'********************************************************************
'* Program név: ATTiny2313-11.bas *
'* Fordító : BASCOM AVR, (V.1.11.7.9) *
'* Dátum : 2005-11-26 *
'* Honlap : http://avr.tavir.hu *
'* *
'* Írta : Cseh Róbert *
'* E-mail : csehrobert@tavir.hu *
'********************************************************************
'ATTiny2313 mintapanel kiegészítő program:
'
'PWM - Hardware 2


'--- Alapadatok ---
$regfile = "ATtiny2313.dat"
$crystal = 7372800

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 1 'Ez a kontraszt
Config Pinb.3 = Output
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.1 , Rs = Portb.2


Dim A As Byte
Do
Cls
Lcd "Novekszik..."
For A = 0 To 255
Pwm1a = A
Waitms 10
Next A
Home
Lcd "Csokken... "
For A = 255 To 0 Step -1
Pwm1a = A
Waitms 10
Next A
Loop




A PWM prescale minel kisebb legyen (itt 1).
A pwm1a erteke adja meg a kitoltesi tenyezot. utana RC-szurovel (ld a mintaalkalmazast) kinyered a hangot. Orulsz:)

A Mega16 panelre keszul ilyen alkalmazasosdi...
Legalabbis nagyon gondolkodom rajta...

A PWM kimenetei lab kotott. Timer0, Timer1, Timer2 is tud PWM-t.
Mar amelyik van az IC-ben. Tiny13ban csak Timer0, Tiny2313: Timer1, es Timer0.
MaSTeRFoXX

Hozzászólás Szerző: MaSTeRFoXX »

Köszi

Ez a PWM-es hanggenerálás olcsóbb mint bármely DAC IC 8)
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

DAC IC helyett én pihenten R-2R nevő ellenálláslétrát raktam be. Így 1 port ugrott. Viszont tuti zajtalan lett a DA konverter:))).


Amúgy a PWM eljárás van a CD-lejátszókban is. 1 bites konverter:)
A felbontása Timer0 és Timer2 esetén 8bites, Timer 1 esetén 8...16 bites lehet. Jellemzően 8 v. 10 bites módban szokták használni. A 8 bit szinte mindenre elég. Analóg jeldigizás esetén a 8bit/8kHz bőven elég. Ez testvérek közt 8kbyte/sec. Amúgy a spec hangtároló IC-k (WiBond) sem túl drágák. ~1000-1200 Ft a 2 perces.
MaSTeRFoXX

Hozzászólás Szerző: MaSTeRFoXX »

Lehet hogy a végén r-2r-lesz belőle, mivel úgyis ATMEGA8-as procit akarok erre a célra használni, asztán ezért sok szabad láb marad, és így meg tudom spórolni a kimeneti szűrőt.

Igazából nem a hangtároló a lényeg, hanem hogy megismerkedjek ezzel a DataFlash-al, hogy akár később (valamilyen célra) képe(ke)t is tudjak tárolni rajta.

BUÉK!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A Dataflash kezelés hasonlóan megy, mint a MMC/SD kártya kezelése. Ez utóbbira ott a beépített AVR-DOS, ekkor kártyaolvasóban is olvasható a kártya utána:).
MintaSW eddig nem igazán található rá. Most majd kénytelen leszek megismerni:). Meg a dataflash "hátránya" hogy 3.3V-os. Így azt a részt is ki kell találni, bár a be/kimenetei 5V toleránsak. Csak a tápot kell egy LM33 chippel leszabni kisebbre.

Most a nyáktervezővel is küzdök, új alkatrészek tervezése nem a leányálmom... de 1x meg kell tanulni:). Legalább lesz normális általános alkatrészkönyvtáram...


Szóval az ADtól jól sikerült elkanyarodni. :D
MaSTeRFoXX

Hozzászólás Szerző: MaSTeRFoXX »

Avr-ről dataflash felé egyszerű: feszosztó, vagy előtét ellenállás
Vissza: bonyolultabb... :P

Legegyszerűbb megoldás ATMEGA8 L 2.7-3.6 V (Bár nemtom mit szól az STK200-as programozó hozzá....)
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Na meglestem a katalóguslapot.
A memória 5V tolerant ki/bemenettel bír, így direktben 5V-s rendszerre köthető.

Egyedül a táphoz kell 3,3V-s stab-IC.


Az L-s chip programozásakor a STK-200-as programozóból a 3.3V-s kell hozzá. egyenlőre nem volt rá szükség... Az USB-n 5V jön ki:).
MaSTeRFoXX

Hozzászólás Szerző: MaSTeRFoXX »

Az OK hogy a memória elbir 5Vot, de visszafelé, az AVR mit szól a 3.3Vos jelnek?!
Elfogadja H szintnek a 3.3-mat?
Mert én nem vagyok biztos bnne...
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Elfogadja.

ld. adatlap.
H=0,6*Vcc, azaz 5V*0,6=3V :).
Avatar
btotyi
Újonc
Újonc
Hozzászólások: 7
Csatlakozott: 2005. december 11. vasárnap, 7:00

Hozzászólás Szerző: btotyi »

MaSTeRFoXX írta:Avr-ről dataflash felé egyszerű: feszosztó, vagy előtét ellenállás
Vissza: bonyolultabb... :P

Legegyszerűbb megoldás ATMEGA8 L 2.7-3.6 V (Bár nemtom mit szól az STK200-as programozó hozzá....)
Neten fellelhető infók szerint az L-es és a sima AVR-ek között alacsony frekvencián ( < 16 MHz) nincs különbség. Igazából az L-es AVR-ek azok lesznek amik a gyártásban a végső teszten magasabb frekin hibásan működnek. ( ATMEL-es belső, persze nem hivatalos info)

A cikkiró szerint gyakorlatilag gond nélkül lehet sima AVR-t az L-es helyén használni.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Igy van.
Az 1.8 V névleges feszen menő chipek lesznek a L-esek. De ez az 1.8V 1.3V jellemzően:).
A Tiny2313V chipek esetén legalábbis...
Válasz küldése