Sari la conținut
ELFORUM - Forumul electronistilor

A/D la PIC30F2020 comparat cu placa de sunet


Postări Recomandate

Detin acest microcontroller.

 

Are A/D pe 10 biti la viteaza de 1MS/s.

De fapt are doua astfel de A/D uri care pot merge simultan.

 

Intrebarea: pot mari viteza daca micsorez rezolutia? Sa depaseasca  1MS/s

 

Ca o compartie sunt interesat de viteza de esantionare a placii de sunet.

 

Ma gandeam sa construiesc un osciloscop cu acest PIC.

Ar iesi destul de simplu.

Am vvazut schemele de pe NET.

Link spre comentariu
  • Răspunsuri 10
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

Top autori în acest subiect

Imagini postate

Si eu am cautat sa folosesc un PIC pentru un DSO dar bataia de cap cu programarea + costul tuturor componentelor nu merita efortul. Orice DSO sub 100$ era superior solutiei gasite. In scop didactic e un proiect superb, bani si timp sa ai. Tine-ne la curent cu solutia aleasa.

Link spre comentariu
  • 5 luni mai târziu...

OK, integrartul merge, ala licare la 1Hz.

 

Acum dintr-un pin  PWM out am sa pun urmatoare schema:

Posted Image

 

Deci direct din pin fara tranzistor.

RL=2k2

L= un mic filtru de 1cm din dezmenbrari

In serie cu L un 0K5

 

Se doreste tessiune variabila pe RL......

Cu viteza de variartie cat mai mare.

 

Adica din acesta variartie a trrensiunii se construieste un senal dreptunghiular.

Daca voi gasiti adresa de Mail pentru autorul softului de osciloscop cu dsPIC30F2020, postati aici sau pe PM,

Ca vreau sa-i scriu autorului. 

 

Problema - ce vreu sa intreb este cum face el achizitia non-real-time!

Si chiar n-am nicium chefde pierdurt timp sa fac reverse softului facurt de el.

 

Daca stiti, sa imi spuneti, va rog,  cum se poate face achizitia non-real-time. Ca se ajunge si la 30MHz cu osciloscopul asta.

 

Deci:

- Intentia mea este sa elimin FT232, ca e scump.

- sa fie "mai universal". Adica sa poti sa il folosesti si pe tabletra/telefon.

 

------------------------------

Bun, dar pana acolo, avem partea cu generatul unei tensiuni, apoi a unui semnal, care va fi  'captat' de placa de sunet.

Link spre comentariu

[...]

Problema - ce vreu sa intreb este cum face el achizitia non-real-time!

[...]Daca stiti, sa imi spuneti, va rog,  cum se poate face achizitia non-real-time. Ca se ajunge si la 30MHz cu osciloscopul asta.

 

 

 

Uite asa se face. http://www.tek.com/document/application-note/real-time-versus-equivalent-time-sampling

Atentie, insa, ca metoda merge numai daca semnalul este periodic. Alfel iese o sfecla!

Pe scurt, esantionarea se face necoerent (asincron) intre A/D si semnal, astfel incat, pe parcursul mai multor perioade ale semnalului esantaionat, se contruieste treptat semnalul de frecventa mai mare decat frecv Nyquist. Non-coerenta asigura captura unor esantionane plasate in pozitii diferite in cadrul unei perioade, la fiecare noua achizitie. Asta permite reconstructia semnalului de frecv mare.

Editat de cirip
Link spre comentariu

A....da asta.

Cum face TRIGGER ?

Sa ziceam ca avem semnal SIN(t).

 

Bun, ia un esantion din prima perioada(0-t), unul din a adoua(t-2t), unul din a treia(2t-3t).

Poate n-am fost clar. Cum face resincronizarea ?

 

El trebuie sa astepte inceputul urmatoarei perioade. Sau daca nu inceputul, un moment din ea.

Cum stie cand incepe urmatoarea perioada?

Din ce imi amintesc, astepta pana atunci cand tesiunea are o anumita valoare si derivata ei are o anumita valoare.

 

Dar nu am vazut niciun circuit derivator inschema.

Schema e una si acceasi orinde pe NET. Dati search cu "dsPIC30F2020 oscilloscope" si veti gasi acceasi schema cu acclas soft.

 

--------------------------------------------------

Ideea mea - de ce sa legam montajul prin USB la calculator ?

Nu !

Daca am achizitionat semnalul si depozitat in memoria RAM,

datorita carateristicilor  PWM ale PIC-ui putem reproduce excat acelasi semnal, dar la o frecventa mult mai joasa.

=================================================

Sa luam in discutie tot aici si cum am putea face un analizor logic cu acest PIC. 

Excat acceasi idee. dsPIC retine forma e unda si o rerimite la o viteza mult mai mica. 

Link spre comentariu

 

=================================================

Sa luam in discutie tot aici si cum am putea face un analizor logic cu acest PIC. 

Excat acceasi idee. dsPIC retine forma e unda si o rerimite la o viteza mult mai mica. 

Bun, deci RF6,7,8 sa fie folositi pentru analizorul logic., cele 3 fire care merg la Pickit2.

RA9 un push care da masa 

SI  RB0..5 iinput.

 

 

Daca cineva vrea sa desenez schema o pot incerca pe hartie. 

Link spre comentariu

Sa fiu mai clar, si cred nu e nevoie de desenat o schema.

post-183833-0-94303700-1430228769_thumb.jpg

 

1. Pe 3 pini citeste un semnal

2. Pe alti 3 pini returneaza acelasi semnal dar la o viteza mult mai mica incat sa poata fi vazut pe Pickit2 analizor logic.

 

In imgine am doar  un  test in care incrementez portul F.

 

 

Link spre comentariu

Trebuie sa ii construiesc montajului si un generator de test.

-------------------------------------------

 

Probabil pana aici ce vreau sa construisc nu-i foarte clar pentru cititor, dar pe parcursul discutiei va  fi mai clar.

 

E o ideie, nu e copiata de nicaieri, ceva mai putin uzual.

Daca ma va tine entuziasmul va ajunge la final si voi posta schema in caz ca se va dovedi utila.

Link spre comentariu

Am ajuns la realiarea unui analizor logic.

 

Achizitia semnalului se face pe 3 fire RB 3,4,5.

 

Cum citesc PORTB si depun in RAM 'cat mai repede' val. sa?

 

Am incercat urmatorul in MikroC:

asm{

mov PORTB, W1

mov W1, 0x0800

 

mov PORTB, W1

mov W1, 0x0802

 

.........

}

 

Ceva de genul asta......si sa scriu totul "cu mana'

Nu cred ca ar  merge o altasolutie de incrementare 'automata" a adresei RAM

 

W1 e pe 16biti si posibilitatea de mov pe 8 biti in RAM nu exista.

 

S-ar putea scrie partea cumva si doar pe 8 biti casa folosesc toti cei 512RAM

Dar si jumate cred ca e ok.

Sa fie si mai clar:

Am acest semnal de test:

post-183833-0-49436000-1430286442_thumb.jpg

 

Cele 3 linii intra pe PORTB<3..5>.

 

Acum semnalul vreau sa il esantionez la viteaza maxima si sa il depun in RAM.

PIC-ul merge la 120MHz

 

Astfel fiind nevoie de minim 2 intructiuni de depunere in RAM voi aveam cam 15 M esantione / secunda.

 

 

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări