FPGA mittauskortin hankinta

Terve,

Olen tehnyt tietokoneelle säätöjärjestelmän, jonka haluaisin nyt muokata sopimaan FPGA-kortille. Järjestelmä ohjaa sähkömoottoreita anturien antamien tietojen perusteella. Minulla on tietokoneessa mittauskortti, jolla pääsen käsiksi laitteiston analogisiin ja digitaalisiin signaaleihin. Nyt pitäisi siis pienentää järjestelmän kokoa ja ajattelin ostaa tarkoitukseen sopvivan FPGA-kortin. Osaatteko sanoa, mistä tällaista kannattaisi lähteä ostamaan tai esittää sopivia vaihtoehtoja?

FPGA-kortin vaatimukset:

  • 6kpl differentiaalisia 16-bit analogisia sisäänmenoja
  • 6kpl digitaalisia 1MHz ulostuloja
  • 12kpl digitaalisia sisäänmenoja

Olen toistaiseksi löytänyt vain kortteja, joissa on ollut erikseen joko digitaalisia tai analogisia portteja. Onko siis olemassa korttia, jossa olisi tarjolla molempia?

Kiitos jo etukäteen. :slight_smile:

Ei ainakaan suoraan tule mieleen että olis valmis kortti tuollaiseen olemassa.
Ehkä joku FPGA kortti FMC liittimillä ja siihen lisäkortit tai sitte suunnitella suoraan suunnitella jollekki FPGA:lle.

Toi FPGA:n valinta ihmetyttää vai onko nopeaakin tavaraa luvassa AD muuntimilta ja onko kokemusta VHDL:stä tai Verilog kielestä?

Muuten mikä on analogia signaalien nopeus?
Aattelin pystyykö käyttää muxausta ja yhtä muunninta

Vähän epäilinkin, ettei varmaan valmista korttia ole. Mutta kaipa se pitää rakennella osista sitten. Millaista korttia (+muuntimia) tämän kaltaisissa projekteissa on yleensä käytetty?

Kokemusta ei ole FPGA:sta. Ohjelmoinnin ajattelin tehdä töistä saadun Matlab Simulinkin kanssa ja kääntää sen VHDL:ksi. Oliko sulla mielessä joku toinen keino FPGA:n tilalle? Mikroprosessoreja en osaa ohjelmoida, joten sitä en voi käyttää.

Analogisten signaalien nopeutta en ole vielä päättänyt, mutta jotain 500-5000 hertsiä varmaan. Nykyisessä laitteistossa mittaustaajuus on 500 hertsiä. Millaisella taajuudella pystyisi vielä käyttämään muxia?

Mietin että meniskö joku sarjaväyläinen AD muunnin tuohon, jossa on useampi inputti ja muxi valmiina.

Tuossa olis 8 input 16 dit ADC, jossa omat AD muuntimet kanaville.
digikey.fi/product-detail/en … ND/1770168

Eli VHDL:llä pitäs tehä SPI lukeminen.

Terve!

Actel Fusion sarjan FPGA-piireillä on sekä digitaalia että analogiaa mahdollisuus käyttää samalla sirulla. http://www.actel.com/products/fusion/default.aspx En tiedä mistä saa suomesta kehityskittejä tuolle, mutta luulisin digikeystä/arrowilta/mouserilta löytyvän. Tämmöiset projektit yleensä helpoiten menee mikrokontrollerilla ja ulkoisilla ad-muuntimilla (eri mcu + erillinen adc), nopeusvaatimuksesikaan mittaukselle kun ei ole mikään järkyttävä (500 Hz - 5 kHz). MCU:n voi kytkeä sitten vaikka USBiin taikka sarjaporttiin tai CAN-väylään tai whatevö, mitä applikaatio vaatineekaan.

(Vaikka en olekaan sama vastaaja:) Mikäli kokemusta ei ole laisinkaan FPGA:sta, eikä mikrokontrollereista, niin tiesi on sangen kivinen ikävä kyllä. Mutta en nyt halua ampua tekemisen intoasi alas millään lailla joten katsele noita kehitysalustoja ja tutustu niihin ja sitä rataa :slight_smile: Ikävä puoli noissa on että pirun kalliita tuppaavat olemaan. Toisaalta jos ottaa halvan FPGA:n ja kötsää kylkeen SPI-väyläisen AD-muuntimen niin sillä varmaan saisi myöskin tehtyä.

Nyquistin teoreema jos on tuttu, niin muistannet että näytteenottotaajuus on aina vähintään kaksi kertaa nopeampi kuin näytteistettävä signaali, mielellään pari kertaa vielä nopeampikin niin on tarkempi mittaus. Nykyiset AD-muuntimet pystyvät kymmeniin Gigasamppeleihin sekunnissa (tosin näitä käytetään vain kalliissa mittalaitteissa) ja halvatkin helposti 200 000 näytteeseen (200 ksps = kilosamples per second). Miten tämä liittyy MUXiin? No sen muxin on pystyttävä vähintään yhtä nopeaan kanavan vaihtoon :slight_smile: Tässäkin olisi hyvä käyttää vielä vähän nopeampaa koska pinneistä ja piirilevyn vedoista tulee viiveitä hajakapasitanssien ja induktanssien myötä hieman lisää, ei tosin vielä suuri ongelma sinun mainitsemillasi nopeuksilla jos et mittaa nanovoltteja.

Elektroniikasta vielä sen verran, että jos laite tulee olemaan tietokoneeseen liitettävä, niin kannattaa kiinnittää huomiota elektroniikan suojaukseen. Ylijännite lähinnä se mitä pitää varoa ja suojata kytkentä siltä. Myös maadoitukseen ja (jos käytössä) pitkien kaapeleiden suojavaippoihin kiinnittäisin huomiota. Isoloinnit ja virtarajoitukset yms “general electronics stuff”. :slight_smile:

Millä tavalla ajattelit kytkeä FPGA, MCU tai 7400 piirivärkin ( :slight_smile: ) kytkeä ATK:hon? Ja miten ohjata noita karvoja? SPI-AD-muunnin, Arduino, USB-sarjareikä ja modbus siitä läpi. Se miten tuo tehdään en osaa tarkasti sanoa.

Toinen pikku huomio: 0-5V 16-bit askel on 5/50 000 = 0,1 mV ja tuon alle, koska pitää oikeasti jakaa 65535:llä. 10-bittinen olisi 5mV (1024). Ensimainittu virhe tulee helposti liittimen kytkennässä.

Tarviitko oikeasti megan ulostulot? jos ohjaat moottoreita niin pikainen arvaus itselle olisi noin kHz max, jos nyt ei ihan hakkuria nyvitä sillä. Stepperi, triak ja servo-ohjaus nyt lähinnä mielessä.

Tämä on siis selkeästi jokin Arduino ja shieldien käyttötapaus mielestäni. Foorumilla on paljon siihen osaamista ja valmista kirjoitteluakin.