Samplingssystem

Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Samplingssystem

Inlägg av Spisblinkaren »

Hej!

Jag har tänkt mig bygga ett samplingssystem med hjälp av Arduino UNO.

Jag behöver generera en sinus digitalt, sen jämföra den med den sinus systemet tar emot mha ett ingågssteg och A/D-omvandling.

På så sätt har jag koll på både fas och amplitud vilket gör att jag kan mäta vad som helst inklusive förstärkare och högtalare.

I fallet högtalare så kommer den naturligtvis mätas med en mikrofon (och jag har designat två mikrofonförstärkare) där signalen sen eventuellt bara blir till en peak-signal ty då är det lätt att mäta SPL samtidigt som fasinformationen dock försvinner.

Men jag kommer ha en brytare där man väljer PEAK/RAW (där RAW är sinus) så man kan göra som man vill med detta.

Jag har preliminärt tänkt mig ha en tids-ratt (TIME) där man ställer hur lång tid man vill sampla, tänker mig 0-5min men samtidigt skulle man kanske kunna fixera den tiden till säg 10s så man slipper den ratten.

Jag har också en REC-knapp, denna är tänkt att starta inspelningen med den tid som TIME är inställd på.

Systemet är tänkt att nyttja en Arduino UNO, speciellt är detta bra för lagringen på SD-kort.

Jag är emellertid mycket sugen på att hitta på nåt eget, det går nämligen att skriva data till ett batteriuppbackat RAM också, dock får man problem med hur man ska föra över datat till datorn, men det problemet är mer intressant än tråkigt.

MVH/Roger
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
rvl
Inlägg: 5721
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Samplingssystem

Inlägg av rvl »

Är du säker på att 10 bit AD omvandling ger GoodEnough™ precision för det du vill åstadkomma?
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Samplingssystem

Inlägg av Spisblinkaren »

:D

TM...

MVH/Roger
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Samplingssystem

Inlägg av Spisblinkaren »

Kom precis på en liten finess jag vill ha.

Jag vill att sinus-generatorn sveper från 20Hz till 20kHz med en periodtid om 1s.

Periodtiden för 20Hz är ju 50ms så det blir gott om tid över.

Svepet skall sedan ligga på konstant, inget skall kunna ändra sinus-generatorn.

Men sinus-generatorn ska hela tiden tala om fasen på utsignalen och jämföra den med inkommande signal, vet inte riktigt hur jag ska realisera det.

Dessutom är jag tveksam till parallella processer här för samtidigt som sinus ska generereras så ska det samplas (i topparna).

Måste jag ha två Arduino UNO då, eller?

Jag menar, det är ju inte Windows vi direkt snackar om här :D

MVH/Roger
Användarvisningsbild
YD1150
Inlägg: 1943
Blev medlem: 29 oktober 2010, 22:41:10

Re: Samplingssystem

Inlägg av YD1150 »

En DDS AD9850 löser problemet snabbt och den har 10-bit D/A omvandlare. :)
Användarvisningsbild
YD1150
Inlägg: 1943
Blev medlem: 29 oktober 2010, 22:41:10

Re: Samplingssystem

Inlägg av YD1150 »

Fasmätning går bra med en Gilbert cell eller en digital variant med en XOR-grind (74XX86).
(Där XX är LS, HC, HCT m.fl.)

https://en.wikipedia.org/wiki/Gilbert_cell
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Samplingssystem

Inlägg av Spisblinkaren »

:D , det var rätt avancerade grejer det här.

Men jag ska köra AF så detta är inte aktuellt för mig.

Tack ändå!

MVH/Roger
PS
Läste inledningen i databladet för AD-kretsen, man kan generera ända upp till 63MHz av jitter-fri sinus (och fyrkant) och det är faktiskt väldigt intressant.
Användarvisningsbild
YD1150
Inlägg: 1943
Blev medlem: 29 oktober 2010, 22:41:10

Re: Samplingssystem

Inlägg av YD1150 »

Fast Gilbert cell fungerar fint för AF också... :wink:
Felsökning av Gilbert cell går bra att göra med oscilloskop.

DDS:en kan du klocka med lägre frekvens om du inte behöver
ha så höga frekvenser. Med 125MHz klocka så blir minsta
stegstorleken typ 29mHz (milliHertz!). Formeln är: (f_clock/2^32).
Med 10MHz klocka till DDS så blir det försumbara steg.

Men du gör givetvis som du vill!
Användarvisningsbild
HUGGBÄVERN
Tidigare soundbrigade
Inlägg: 32629
Blev medlem: 23 augusti 2006, 22:44:11
Ort: Lilla Paris
Kontakt:

Re: Samplingssystem

Inlägg av HUGGBÄVERN »

På RIFA gjorde vi fasmätningar med en LM1495, fyrkvadrant multiplikator. Fast då körde vi med en mätsignal på 1kHz.

Jag skulle nog inte låta en Arduino göra analoga mätning hur som helst.


Edit: smärre kruelurfel och en notering: Gilbertcellen är väl min LM1495 typ.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Samplingssystem

Inlägg av Spisblinkaren »

Idag har jag funderat lite mer.

Jag har infört en DC-Restorer för IN_B då jag misstänker att Arduino har ett strängt positivt omvandlingsområde, med min krets fås ganska precis halva omvanddlingsområdet (2000h@2,5V) när ingen signal finns, jag har också lite onödigt (för alla CMOS har denna typen av ingångsskydd) applicerat ett par externa dioder för överstyrningsbegränsning).

Sen har jag infört en SYNC-utgång som egentligen inte behövs ty den genereras internt mha mjukvara men den är bra att ha om man vill kunna svepa upp t.ex en högtalares SPL och grovt se hur den beter sig över frekvens, en rolig finess som jag vill ha.

Slutligen börjar det kännas som om inget av reglagen i botten på ritningen behövs, det räcker med en SINE_REC (20Hz-20kHz i ett enda 10s svep) för det är allt jag vill kunna spela in.

MVH/Roger
PS
Kommer förresten på nu att man borde ha dubbla ingångar, för säg att man vill mäta upp en högtalares fas- och frekvensgång, då kommer jag ha utgående signal som Ae^{j(wt+phi1)} där phi1 är fasen precis vid KSS's utgång (eller tom internt innan bufferkretsen/OP) men om jag stoppar in en förstärkare emellan för att driva högtalaren då får jag Be^{j(wt+phi2)} där phi2 nästan garanterat är skild från phi1 även om det nog är väldigt lite i dom flesta sammanhang, kanske tom så lite tom att man inte behöver bry sig om det? Det är ju trots allt relativ amplitud och fasvridning som är (mest) intressant.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Samplingssystem

Inlägg av Spisblinkaren »

Jag kom på en sak, OUT_A kommer normalt, utan särskild ansträngning, vara av typen 0-5V (2,5V amplitud)

En potentiometer kan inte ge en stabil spänning med mindre än 1/100 av dess värde, dvs absolut minamplitud är 25mV.

Eftersom jag vill testa RIAA-steg också så är det för mycket varför jag lagt in en 1:10 dämpare.

Det som egentligen kommer ut från "burken" i min bild är annars en OP-buffrad R2R-stege, den ska jag lyfta ut så att den blir synlig vid tillfälle men detta gör att 1:10-belastningen kan göras ganska hög.

MVH/Roger
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Samplingssystem

Inlägg av Spisblinkaren »

YD1150 skrev:Fast Gilbert cell fungerar fint för AF också... :wink:
Felsökning av Gilbert cell går bra att göra med oscilloskop.

DDS:en kan du klocka med lägre frekvens om du inte behöver
ha så höga frekvenser. Med 125MHz klocka så blir minsta
stegstorleken typ 29mHz (milliHertz!). Formeln är: (f_clock/2^32).
Med 10MHz klocka till DDS så blir det försumbara steg.

Men du gör givetvis som du vill!
Tack för att jag får göra som jag vill ;)

Jag vet faktiskt inte riktigt hur jag ska bygga det här projektet men tanken med en Arduino underlättar abstraktionen och därmed planeringen.

Ett tag tänkte jag nyttja en Xilinx CPLD för jag älskar att cadda mha grindar :)

Så man vet inte riktigt vart det hamnar men nån slags fungerande lösning kommer jag komma fram till, såpass mycket självförtroende har jag trots allt.

MVH/Roger
Användarvisningsbild
HUGGBÄVERN
Tidigare soundbrigade
Inlägg: 32629
Blev medlem: 23 augusti 2006, 22:44:11
Ort: Lilla Paris
Kontakt:

Re: Samplingssystem

Inlägg av HUGGBÄVERN »

Medborgarpanelen är dock lite roat intresserade. Hur ska du fixa det här nu? Du hatar ju att programmera. :wink:
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Samplingssystem

Inlägg av Spisblinkaren »

:D

Ja, det är sant men jag har redan programmerat fram ett litet system i C på en annan Arduino UNO så jag räknar med att jag kan plocka en hel del kod därifrån (speciellt med avseende på SD-shielden med dito realtidsklocka).

Men som sagt, användandet av Arduino är mycket preliminär.

MVH/Roger
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Samplingssystem

Inlägg av Spisblinkaren »

Jag har beslutat ta bort SYNC-delen, detta för att jag bara kommer ha ett svep som varar i 10s, sen kommer systemet vänta på nytt tryck på SINE_REC dvs det finns inget att repetitivt trigga på.

Kanske man dock kan trigga på Norm och se själva svepet medans det sveper, jag vet inte det men det är heller inte så intressant för vill man se svepet kan man lika gärna göra det manuellt mha funktionsgeneratorn, dessutom kommer man kunna se svepresultatet på datorskärmen...

Jag har beslutat utöka svepfrekvenserna lite detta för att svepresultatet många gånger blir direkt tråkigt (rakt streck) om man t.ex sveper en hyfsad förstärkare mellan 20Hz och 20kHz så jag har utökat till 6Hz/60kHz för då kan mer spännande saker hända samtidigt som större svep genast blir svårare för Arduino att fixa.

Jag har också infört en lysdiod som kommer drivas av en port på Arduino där den indikerar "ON" när den bara lyser och "REC" när den blinkar, lite onödigt att indikera REC kan tyckas men det är också intressant att faktiskt se att processorn går in i REC mod (och hur länge den är där).

Jag har också kikat lite på antal digitala I/O-pinnar på UNO, man har minst 6 tillgodo, kanske tom så många som 10 vad det verkar, så 8-bitars parallell D/A mha R2R-stege verkar kunna gå! En teoretisk variant är en enda port och seriell D/A men då kommer det att gå långsamt...

MVH/Roger
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Skriv svar