Petrinis signalgenerator

Berätta om dina pågående projekt.
Användarvisningsbild
f.petrini
EF Sponsor
Inlägg: 248
Blev medlem: 26 maj 2009, 16:59:01
Ort: Växjö

Petrinis signalgenerator

Inlägg av f.petrini »

Jag har funderat ett tag på att skaffa en signalgenerator av nått slag eftersom jag ofta behöver signaler av olika typer. Min lösning tidigare har varit att slänga ihop nått specifikt för projektet jag jobbat med. Antingen en analog krets för sinus etc. eller en MCU för att generera pulståg mm.
Det funkar men det är tråkigt att göra det varje gång man behöver en signal...

Istället för att köpa en färdig apparat som oftast gör jobbet men inte alltid så vill jag bygga något eget där jag kan bygga ut och lägga till mina egna funktioner när jag behöver dem.

Jag har inte tänkt så mycket på exakt vad jag vill ha eftersom tanken är att kunna bygga på med ny funktionalitet när det behövs. Några funktioner som jag kan tänka mig är:
  • Sinus-/fyrkantvåg upp till iaf. 100MHz med hög upplösning. (DDS)
  • Vågformsgenerator, godtycklig (AWG) med upp till 100MSPS.
  • Funktionsgenerator, sinus/fyrkant/såg/tri med svep, modulering, etc.
  • Digital mönstergenerator, minst åtta kanaler och upp till 100MSPS.
  • Kontollerbar via både frontpanel och från dator via WiFi och USB/Ethernet.
En hel del att fundera på men jag kommer att bygga det modulärt och ta en sak i taget...
Användarvisningsbild
f.petrini
EF Sponsor
Inlägg: 248
Blev medlem: 26 maj 2009, 16:59:01
Ort: Växjö

Re: Petrinis signalgenerator

Inlägg av f.petrini »

En del av projektet är iaf. klar, val av låda/chassi.

För ett tag sedan sålde wiklis en del prylar på tradera, bla. en testmojäng för GSM-telefoner. Jag googlade fram en bild från insidan och såg direkt att den skulle passa perfekt till mitt projekt.


Mycket fint chassi med allt jag behöver för frontpanelen. Display, softkeys, numerisk keypad och en skön optisk pulsgivare.
Bild

Display med 640x200 pixlar och några nivåer gråskala.
Bild

Baksidan med div. krafs.
Bild

Modulärt uppbyggd och ett antal RF-kablar/kontakter på köpet som jag säkert kan använda i mitt bygge.
Bild
Bild

Plats för för fem instickskort.
Bild

Insidan av fronten. Styrning av displayen ser lovande ut med få ett fåtal signaler.
Bild

Första kortet är Base Band Processor. Skickar Q/I-modulering via RF-kontakterna till nästa kort.
Bild

Andra kortet är RF-mixer/modulator (TxRx) som får lokaloscillatorsignal från tredje kortet.
Utfräst ram med ett antal rum för skärmning. Dessa ska jag nog återanvända och designa eget mönsterkort till.
Bild
Bild

Utfräst skärmning som sitter på baksidan av kortet.
Bild

Matchande front till skärmramen.
Bild

Programmerbar dämpning 50Ohm, DC till 4GHz, 70dB i steg om 10,20,20,20dB.
Bild
Bild

Tredje kortet är frekvenssyntes som fixar lokaloscillator till TxRx-kortet.
Ytterligare skärmram som går att återanvända.
Bild
Bild

Frekvensreferens till synteskortet.
Bild

Moderkortet i botten av chassit.
Bild

LCD:n, Citizen G6201H-BF. Hittade datablad till den och den är ganska simpel. Inget eget bildminne utan tar bara emot kontinuerlig pixeldata och klockar in i styrkretsarna. Det blir till att bygga en ordentlig kontroller med bildminne till denna.
Bild
Bild

Bör inte vara några problem att driva denna LCD:n. Den tar in FRAME, LOAD (line), CLK och 4 bitar data. Fyra pixlar per klocka.
DF-signalen är jag osäker på. Den växlar mellan hög och låg varannan linje. Databladet säger bara "A.C. signal for LCD driving".
Nån som vet?
Bild

Bild

Övrigt användbart i lådan är en schysst nätdel med 5V 8.8A, 18V 2.5V, 7V 1.8A, 12V 0.65A.
Johan.o
EF Sponsor
Inlägg: 2387
Blev medlem: 18 juni 2003, 01:08:50
Ort: Jönköping

Re: Petrinis signalgenerator

Inlägg av Johan.o »

Det är ett ambitiöst projekt. Jag gillar att du har tänkt dig upp till 100 MHz, stört mig på att dom flesta funktionsgeneratorer inte går högre än 10-15 MHz. Förresten den där dämparen såg spännande ut. Hur fungerar den?
Användarvisningsbild
Klas-Kenny
Inlägg: 11829
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Petrinis signalgenerator

Inlägg av Klas-Kenny »

Det här ser grymt lovande ut! :tumupp:
Användarvisningsbild
f.petrini
EF Sponsor
Inlägg: 248
Blev medlem: 26 maj 2009, 16:59:01
Ort: Växjö

Re: Petrinis signalgenerator

Inlägg av f.petrini »

Eftersom jag vill ha hyffsad prestanda på AWG:n och funktionsgeneratorn (uppåt 100MSPS) så kommer inte någon av de MCU-arkitekturer jag kan att funka. AVR8/MSP430 är helt uteslutet och XMOS XCore klarar inte heller av det. I bästa fall skulle XCore klara 50MSPS men det enda den kan göra då är att strömma data från minnet ut på en port.
Jag har ingen lust just nu att sätta mig in i någon annan MCU-arkitektur då jag tycker de jag kan räcker. Däremot har jag länge velat lära mig FPGA så detta är ett perfekt tillfälle att börja.

Jag köpte ett enkelt FPGA-kit förra veckan och har börjat med lite enkla uppgifter för att lära mig.
Kortet jag köpt är ett Digilent Basys2 med den minsta Xilinx Spartan 3E FPGA:n. (100K grindar).
Bild

Jag började med att läsa lite om de två språken jag hade att välja mellan, VHDL och Verilog. Efter en stunds läsning av tutorials och kod så fick jag för mig att jag tyckte bättre om VHDL så jag började leka med det. Jag kommer nog att testa Verilog också innan jag bestämmer mig...

Först blev det några standardtest med blinkande lysdioder och läsa insignaler, utforska klockgenerering, mm.
Nästa steg var att göra nått mer användbart så jag pluggade in en pulsgivare och skrev kod för att avkoda den och styra en räknare som jag skickade ut på några pinnar.

Att implementera något på en FPGA är helt klart annorlunda jämfört med vanlig sekvensiell programmering men efter en stund kommer all digitalteknik och logikkunskap tillbaka och man börjar tänka parallelt igen.
Användarvisningsbild
f.petrini
EF Sponsor
Inlägg: 248
Blev medlem: 26 maj 2009, 16:59:01
Ort: Växjö

Re: Petrinis signalgenerator

Inlägg av f.petrini »

Johan.o skrev:Förresten den där dämparen såg spännande ut. Hur fungerar den?
Ingen aning... :?


Jag har jobbat lite mer med FPGA:n, läste databladet och ville testa att använda BlockRAM:et i den så jag genererade en liten sinus som jag bakade in i ett av de fyra 16kbit blocken. Byggde sen en väldigt enkel 8-bitars DDS och kopplade pulsgivaren till värdet som ökar fasackumulatorn och vips så har jag en liten variabel sinusgenerator. ;)

Jag hade dock ingen lämplig DAC så jag slängde ihop en simpel R2R DAC som dock gör ett fint jobb på lägre frekvenser. Jag var ju även tvungen att se frekvensen och lyckades få ihop en binär-till-BCD kodare och kopplade till 7-segmentsdisplayen på FPGA-kortet.

Bild

Bild

Jag är överraskad hur snabbt det gått att lära mig så här mycket om FPGA:er redan. :D
Säkert grymt suboptimal använding av FPGA:ns resuser men sånt får man lära sig allt eftersom.

Kod: Markera allt

Device Utilization Summary
Logic Utilization               Used   Available  Utilization
Number of Slice Flip Flops        98        1920           5%                
Number of 4 input LUTs           236        1920          12%                
Number of occupied Slices        141        960           14%                
Total Number of 4 input LUTs     269        1920          14%                
Number of bonded IOBs             24        83            28%                
Number of RAMB16s                  1        4             25%                
Number of BUFGMUXs                 2        24             8%                
Number of MULT18X18SIOs            3        4             75%                
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Petrinis signalgenerator

Inlägg av blueint »

Du kommer nog att lära dig en del om signalintegritet över 5 MHz.. ;)
Användarvisningsbild
f.petrini
EF Sponsor
Inlägg: 248
Blev medlem: 26 maj 2009, 16:59:01
Ort: Växjö

Re: Petrinis signalgenerator

Inlägg av f.petrini »

Jepp, det har jag räknat med men det är ju det man är ute efter. At sätta höga mål så att man är tvungen att lära sig nya saker...
Jag är riktigt nöjd om jag avslutar det här projektet inom 2-3 år. :D
Användarvisningsbild
f.petrini
EF Sponsor
Inlägg: 248
Blev medlem: 26 maj 2009, 16:59:01
Ort: Växjö

Re: Petrinis signalgenerator

Inlägg av f.petrini »

Nu har jag smakat på Verilog också.
Jag implementerade exakt samma design som jag gjorde i VHDL (pulsgivare, 7-segmentsdisplay och en enkel DDS-generator) för att kunna jämföra lite och nu tycker jag Verilog är snäppet lämpligare för mig. Jag tycker Verilog är snabbare att få saker gjorda i och har betydigt smidigare syntax.
VHDL är antagligen lite kraftfullare för mer komplexa konstruktioner men djävlar vad pratigt det är... :? Dvs. mycket att skriva.
Zhorts
Inlägg: 222
Blev medlem: 15 augusti 2011, 14:42:03

Re: Petrinis signalgenerator

Inlägg av Zhorts »

Jo, VHDL (som är baserat på det uråldriga språket ADA) är ett väldigt bra språk om man någon gång haft författarambitioner. Mycket snack :) Verilog är lite mer slimmat.
Funktionalitetsmässigt så är det ingen större skillnad mellan språken, i alla fall inte till en början. Det finns (några få) saker man inte kan göra i Verilog som VHDL klarar, men jag är ganska säker på att du inte ens kommer att stöta på något sånt fall.
Det var ett tag sen man blev itutad VHDL nu (4-5 år), men på "min tid" så var det mycket snack om att SystemC var nästa stora grej - hårdvara i C-syntax. Men det verkar det inte ha blivit så mycket av...

Ska bli intressant att se vad du får fram och hur du löser saker i detta projekt - en programmerbar signalgenerator har jag funderat på att bygga en gång eller tre, men det har aldrig kommit längre än till "det här vore bra att ha"-stadiet.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Petrinis signalgenerator

Inlägg av blueint »

Något som är lite jobbigt är att om man nu råkat fixa signaler med 100 miljoner omslag per sekund. Så blir det inte mer än "10 MHz" eller så i prestanda efter att man använt D/A steget.
Användarvisningsbild
f.petrini
EF Sponsor
Inlägg: 248
Blev medlem: 26 maj 2009, 16:59:01
Ort: Växjö

Re: Petrinis signalgenerator

Inlägg av f.petrini »

Jag har fortsatt att sätta mig i FPGA:er och Verilog. För att ha något mer konkret att labba med så kopplade jag FPGA:n till LCD:n i Racal-chassit. Studerade databladet till LCD:n och fixade en enkel styrning till LCD:n. Timingen är inte ännu riktigt enligt specen än men det funkar fint ändå.

Just nu är det ett XCore-kort som skickar pixeldata till FPGA:n över en synkron serielina. FPGA:n stoppar pixlarna i block-RAM och läser ut bilden och skickar till LCD:n. Min FPGA är dock så liten att inte hela bilden får plats så jag kan bara lagra en halv bild.
IMG_1598.png
Tanken är att bildminne och generering av signaler till LCD:n ska skötas av en FPGA. En XCore CPU sköter GUI, knappar, övrig extern I/O och snackar med andra CPU:er i andra delar av systemet. Jag väljer antagligen 2-bitars XLink för kommunikation mellan FPGA och CPU:er eftersom det är så smidigt. Kommunikationen sker med 2 signaler i varje riktning där en 0:a signaleras med en övergång (H->L eller L->H) på den ena tråden och en 1:a med en övergång på den andra. Stöd för XLink är inbyggt i CPU och språket så att man enkelt kan sätta upp kanaler mellan kärnor/trådar på samma CPU eller mellan olika CPU:er. Hastigheten på 2-bitars XLink ligger uppåt 90Mbit/s.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Re: Petrinis signalgenerator

Inlägg av Korken »

Sjukt coolt projekt! :tumupp: Detta kommer följas med stort intresse!
Hur svårt tyckte du det var att lära dig FPGA/Verilog/VHDL? Det är en av mina drömmar att lära mig det men har inte vågat ta hoppet än. :)
Användarvisningsbild
calmar
Inlägg: 540
Blev medlem: 23 november 2005, 13:14:41
Ort: Göteborg
Kontakt:

Re: Petrinis signalgenerator

Inlägg av calmar »

Är också sugen på att bygga en signalgenerator eftersom det fattas en i instrumentparken. Den kommer dock att ha betydligt blygsammare specifikationer och utgå från ett färdigt DDS-chip styrt av en en AVR. Kommer att följa det här projektet med intresse, ser ut som en rejäl utmaning!
Användarvisningsbild
f.petrini
EF Sponsor
Inlägg: 248
Blev medlem: 26 maj 2009, 16:59:01
Ort: Växjö

Re: Petrinis signalgenerator

Inlägg av f.petrini »

@Korken
Jag kan väl inte säga att jag lärt mig det än riktigt men jag har fått en bra start. Det tog inte speciellt lång tid att komma igång. Ett par timmar att läsa om/testa designflödet och verktygen och ett par timmar att plugga in språksyntaxen. För min del kom sen den tyngre biten att börja tänka parallellt och friska upp digitalteknikkunskaperna. Det var ett tag sen jag höll på med digitalteknik på grindnivå, typ högskolan för 15 år sen...
Man bör kunna titta på sin HDL-kod och istället se grindar, MUXar, LUTs och flip-floppar. ;)
Skriv svar