Minne för mellanlagring av ADC data
Minne för mellanlagring av ADC data
Jag har funderat att sampla strömpulser från en röntegngenerator.
Pulserna är 10 - 320 ms. Samplingsfrekvens 100 kHz (borde fungera med lägre sampling också, om man kör 10 kHz så får man ju 100 sampel på 10 ms pulsen)
Om man använder en PIC , 10 bitars ADC och 0.5 s insamlingstid så blir det 50k sampel som skall lagras. Varje sampel tar upp 16 bitar. Så totalt 100 kB.
Data skall visas på en grafisk display och kunna skickas via RS232.
Någon som har någon ide vad man skall använda för minne till detta. Seriella EEPROM är väl för långsamma? Eller finns det snabba varianter?
/Andreas
Pulserna är 10 - 320 ms. Samplingsfrekvens 100 kHz (borde fungera med lägre sampling också, om man kör 10 kHz så får man ju 100 sampel på 10 ms pulsen)
Om man använder en PIC , 10 bitars ADC och 0.5 s insamlingstid så blir det 50k sampel som skall lagras. Varje sampel tar upp 16 bitar. Så totalt 100 kB.
Data skall visas på en grafisk display och kunna skickas via RS232.
Någon som har någon ide vad man skall använda för minne till detta. Seriella EEPROM är väl för långsamma? Eller finns det snabba varianter?
/Andreas
Re: Minne för mellanlagring av ADC data
Kolla på ett SRAM minne, de kan du skriva till bra mycket snabbare än 10ms.
Re: Minne för mellanlagring av ADC data
Det var ju två bra alternativ. Eftersom jag antagligen inte behöver spara data någon längre tid så skulle det fungera med seriella SRAM , men att kunna lagra data permanent är ju också intressant , som med FRAM (37 år enligt databladet
.
Tack för tipsen!

Tack för tipsen!
Re: Minne för mellanlagring av ADC data
Den störstya finessen är att de är snabba (jämför med traditionella
EEPROM), de skrivs i princip lika snabbt som serieöverföringen sker.
Sen är de ju tåliga mot spänningsbortfall som EEPROM. Men visst,
man betalar ju en liten premie för den bättre prestandan.
EEPROM), de skrivs i princip lika snabbt som serieöverföringen sker.
Sen är de ju tåliga mot spänningsbortfall som EEPROM. Men visst,
man betalar ju en liten premie för den bättre prestandan.
Re: Minne för mellanlagring av ADC data
Nu vet jag ju inget om projektet i övrigt, men spontant känns det som ett bra läge för en PC med ett ljudkort (finns de som samplar i 192kHz utan problem). Den fixar samplingen, grafisk display och RS232 utan problem, och blir nog lättare att programmera.
Re: Minne för mellanlagring av ADC data
Seriella flash, kanske, jobbar upp till 80 MHz, och rätt billiga
http://www.microchip.com/ParamChartSear ... d=&lang=en
http://www.microchip.com/ParamChartSear ... d=&lang=en
Re: Minne för mellanlagring av ADC data
Men "80 MHz" är bara hastigheten på serielänken. Det har inte
ett smack med hur snabbt själva minnet är. Man måste kolla upp
tiderna för "erase" och "program" o.s.v.
> Nu vet jag ju inget om projektet i övrigt...
Att det talas om "röntgengenerator" pekar väl lite på att det
inte är ett hobbyprojekt i alla fall.
> en PC med ett ljudkort
Låter spontant lite väl amatörmässigt. Det kanske är så att man istället
ska gå i helt andra riktningen och kolla på mer professionell utrustning.
Vi vet alla för lite om projektet för att kunna säga något om det...
ett smack med hur snabbt själva minnet är. Man måste kolla upp
tiderna för "erase" och "program" o.s.v.
> Nu vet jag ju inget om projektet i övrigt...
Att det talas om "röntgengenerator" pekar väl lite på att det
inte är ett hobbyprojekt i alla fall.
> en PC med ett ljudkort
Låter spontant lite väl amatörmässigt. Det kanske är så att man istället
ska gå i helt andra riktningen och kolla på mer professionell utrustning.
Vi vet alla för lite om projektet för att kunna säga något om det...

Re: Minne för mellanlagring av ADC data
Man kan säga att det är ett hobbyprojekt på jobbet. Vi har professionella mätutrustningar som vi använder. Så det är inget jag kommer att abvända för kvalitetskontroller. Men i och med att man pular lite med elektronik så får man ideer ibland och vill testa.
Det jag tänkt mig är en liten apparat där man kan lagra och/eller se strömkurvan. En PC med ljudkort blir lite skrymmande.
Det man är intresserad av är mA, mAs (arean av strömpulsen) samt tiden.
Röntgenutrustningen sitter på en linjäraccelerator för cancerbehandling för att kunna ta referensbilder av patienten. Det hela finns i en bunker med 2 m tjocka väggar. Så det skulle vara bra om man kunde föra över data till en PC utanför bunkern. Som det är nu (befintlig mätutrustning) så samlar vi in data med RS232 mha kabel. Det finns också en Buetooth plugg , men har aldrig fått den att fungera, krånglar med Win 7 64 bit.
Så att skicka över data trådlöst skulle vara intressant.
Det jag tänkt mig är en liten apparat där man kan lagra och/eller se strömkurvan. En PC med ljudkort blir lite skrymmande.
Det man är intresserad av är mA, mAs (arean av strömpulsen) samt tiden.
Röntgenutrustningen sitter på en linjäraccelerator för cancerbehandling för att kunna ta referensbilder av patienten. Det hela finns i en bunker med 2 m tjocka väggar. Så det skulle vara bra om man kunde föra över data till en PC utanför bunkern. Som det är nu (befintlig mätutrustning) så samlar vi in data med RS232 mha kabel. Det finns också en Buetooth plugg , men har aldrig fått den att fungera, krånglar med Win 7 64 bit.
Så att skicka över data trådlöst skulle vara intressant.
Re: Minne för mellanlagring av ADC data
Låter spännande!
Vad hade du tänkt dig för PIC? 100kB data är ju rätt mycket att behandla för en liten mikrokontroller, för att t.ex. få något som ska visas upp på en display.
Vi har använt en del utvecklingskort för olika uppgifter på jobbet. T.ex. en modifierad variant av denna, ihop med ett egenbyggt försteg, för att mäta snabba DC-förlopp:
http://www.cirrus.com/en/pubs/rdDatasheet/CDB4272-2.pdf
Den kan sampla i 192kHz och skickar ut datat via optisk S/PDIF så man undviker jord-loopar. Superbra!
Vad hade du tänkt dig för PIC? 100kB data är ju rätt mycket att behandla för en liten mikrokontroller, för att t.ex. få något som ska visas upp på en display.
Vi har använt en del utvecklingskort för olika uppgifter på jobbet. T.ex. en modifierad variant av denna, ihop med ett egenbyggt försteg, för att mäta snabba DC-förlopp:
http://www.cirrus.com/en/pubs/rdDatasheet/CDB4272-2.pdf
Den kan sampla i 192kHz och skickar ut datat via optisk S/PDIF så man undviker jord-loopar. Superbra!
Re: Minne för mellanlagring av ADC data
100 kHz sampling var nog att ta i lite. Skulle kunna räcka med 10 kHz. På den kortaste pulsen som är 10 ms blir det ju då 100 sampel. Borde räcka för beräkning av arean (mAs). Srömmen mäter man i mitten av pulsen. Tiden får man mäta mellan flankerna.
Man skulle ju kunna variera samplingstiden eftersom pulserna är mellan 10 till 320 ms.
Man skulle ju kunna variera samplingstiden eftersom pulserna är mellan 10 till 320 ms.
Re: Minne för mellanlagring av ADC data
Microchip har ju statiska RAM för ca 25 kr/st (t.ex. 23LC1024 = 1 Mbit eller 128kB) som kommunicerar med SPI.
Även seriella flashminnen som Tomas var inne på bör klara hastigheter upp emot 100 kHz. 10kHz är en baggis. Men man bör då ha raderat minnet i förväg, för det tar tid.
De använder sig av ett enkelt SPI-interface. Finns flera fabrikat, t.ex. Atmel och Microchip.
Om du vill skyffla in data parallellt kan du t.ex. använda Renesas R1LV0408DSA. Dock har dessa då ganska många ben på kapseln och även adressbussen är parallell. Adressbussen kan med fördel anslutas direkt till ett par räknare så att man alltid läser och skriver data sekventiellt. På så vis kan man komma upp i väldigt höga samplingshastigheter utan att själva PICen behöver göra annat än att trycka på "starknappen". Fungerar utmärkt om man vill sampla 10 MHz eller högre. (Jag har dock inte kollat hur snabba just dessa minnen är som jag länkade till).
(EDIT: lade till lite mer info /fler minnestyper samt länkar)
Även seriella flashminnen som Tomas var inne på bör klara hastigheter upp emot 100 kHz. 10kHz är en baggis. Men man bör då ha raderat minnet i förväg, för det tar tid.
De använder sig av ett enkelt SPI-interface. Finns flera fabrikat, t.ex. Atmel och Microchip.
Om du vill skyffla in data parallellt kan du t.ex. använda Renesas R1LV0408DSA. Dock har dessa då ganska många ben på kapseln och även adressbussen är parallell. Adressbussen kan med fördel anslutas direkt till ett par räknare så att man alltid läser och skriver data sekventiellt. På så vis kan man komma upp i väldigt höga samplingshastigheter utan att själva PICen behöver göra annat än att trycka på "starknappen". Fungerar utmärkt om man vill sampla 10 MHz eller högre. (Jag har dock inte kollat hur snabba just dessa minnen är som jag länkade till).
(EDIT: lade till lite mer info /fler minnestyper samt länkar)
Senast redigerad av jesse 25 november 2012, 09:19:59, redigerad totalt 2 gånger.
Re: Minne för mellanlagring av ADC data
Som exempel har jag kollat PIC18F1xK22 och där har ADC'n en Tad på min. 1µs vilket ger möjlighet nog för snabb omvandling.
Om det rör sig om att mäta en stund och sedan ha god tid att överföra data skulle jag välja att sampla med "maximal" hastighet. En (eller ett par) helt vanlig 16 bit SRAM-krets kan fint hålla data, 320ms ger 640kB vid 1MHz samplingshastighet, går man ner i samplingshastighet är det såklart färre data att överföra.
Ska man överföra 640kB seriellt med 9600 baud kommer det att ta ung. 11 minuter vilket man ju ska tänka på vid val av samplehastighet.
Som grundförutsättning anser jag att så länge man inte vet vilken skillnad som kan finnas är det bättre att samla på sig för mycket data, det är lättare att minska datamängden än att öka den, sampla alltså i hög hastighet fram till det visar sig att det inte behövs.
Om det rör sig om att mäta en stund och sedan ha god tid att överföra data skulle jag välja att sampla med "maximal" hastighet. En (eller ett par) helt vanlig 16 bit SRAM-krets kan fint hålla data, 320ms ger 640kB vid 1MHz samplingshastighet, går man ner i samplingshastighet är det såklart färre data att överföra.
Ska man överföra 640kB seriellt med 9600 baud kommer det att ta ung. 11 minuter vilket man ju ska tänka på vid val av samplehastighet.
Som grundförutsättning anser jag att så länge man inte vet vilken skillnad som kan finnas är det bättre att samla på sig för mycket data, det är lättare att minska datamängden än att öka den, sampla alltså i hög hastighet fram till det visar sig att det inte behövs.
Re: Minne för mellanlagring av ADC data
Jag har några hundra AM29F040B-70JF (512K x 8bit) par flash) liggandes.
Typ programming time är 6 us/byte. Men ett gäng FRAM låter enklare...
Typ programming time är 6 us/byte. Men ett gäng FRAM låter enklare...
Re: Minne för mellanlagring av ADC data
Ja FRAM låter lite smidigare , annars blir det en väldig massa pinnar att ansluta. 19 Adress + 8 data + W/R + CE (om man har två chip) 
