Számítógép-vezérelt potenciosztát építése speciális és rutinszerű elektrokémiai mérésekhez Taróczy-Tóth Zsigmond Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Témavezető: Tihanyi Attila Külső konzulens: Vesztergom Soma 1 / 17
Az elektrokémiai mérésekről dióhéjban Az elektrokémiai mérésekről dióhéjban A célkitűzés: potenciosztát építése Háromelektródos cella és a hozzákapcsolt potenciosztát elvi vázlata. Az elektrokémiai cella alkotói: M munkaelektród; R referencia-elektród; S segédelektród; A potenciosztát alapkapcsolásában: U PR a beálĺıtani kívánt elektródpotenciál; δ műveleti erősítő; A áramerősségmérő; I a munka- és a segédelektród között folyó áram; U a munka- és a referenciaelektród között mért feszültség. Az elektrokémiai mérés lehet DC jellegű AC jellegű ilyenkor a mért adatokat az időtartományon értékeljük, a perturbálójel rendszerint nagy; illetve ilyenkor a fekvenciatartományon értelmezzük a mért adatokat, a perturbálójel pedig rendszerint kis amplitudójú. 2 / 17
Elektrokémiai mérőrendszer (ELTE) Az elektrokémiai mérésekről dióhéjban A célkitűzés: potenciosztát építése 3 / 17
A célkitűzés: potenciosztát építése Az elektrokémiai mérésekről dióhéjban A célkitűzés: potenciosztát építése Az építeni kívánt műszer elvárt paraméterei: az átfolyó áram maximuma ±2 A; mérés a legkisebb méréshatáron legalább 0,1 na pontossággal; a beálĺıtható feszültség értékek maximuma legyen legalább ±4 V (a referenciaelektróddal szemben mérve); az erősítési tényező az 1 mhz 100 khz tartományon ne essen 10 5 nagyságrend alá; az egységnyi erősítés határfrekvenciája legyen nagyobb, mint 10 MHz; slew rate legyen legalább 50 V µs ; a beállási idő legyen 5 µs -nál alacsonyabb. 4 / 17
A feladatok megosztása Az elektrokémiai mérésekről dióhéjban A célkitűzés: potenciosztát építése 5 / 17
Bevezete s A fejleszte s re szletei Konklu zio k A ltala nos mu szaki parame terek USB kommunika cio Analo g jelgenera la s A jelenlegi konfigura cio A PIC32MX795F512L mikrokontroller fo bb parame terei: Terme kcsala d Architektu ra O rajel Ta pfeszu ltse g DMA csatorna k SPI vonalak USB Digita lis ido zı to k PIC32MX7xx 32 bit 80 MHz 2,3 3,6 V 8 db 4 db v2.0 (host e s OTG is) 5 db (16 bit) Az LTC2642 AIMS D/A konverter fo bb adatai: Felbonta s Csatorna k sza ma Bea lla si ido Ta pfeszu ltse g (VDD ) Digita lis kommunika cio 16 bit 1 1µs 2,7 5,5 V SPI 6 / 17
USB kapcsolat a számítógéppel Az eszközzel USB Bulk módban kommunikálunk (amely tartalmaz CRC ellenőrzést), a kimenő végpontok száma 3, a bemenőké 1; ezek mindegyike két pufferre (páros-páratlan) osztódik. Az eszköz natívan kezelhető az NI-VISA architektúrán belül, ehhez drivert készítettünk az NI Driver Development Toolkit használatával. Minden jel a PC-ről érkezik, illetve oda továbbítandó: a műszer elsődleges feladata (és egyben a sebességet leginkább meghatározó kérdés) az eszköz és a gép közötti kommunikáció kezelése. A jelalak-előálĺıtása, és a mért jelek utófeldolgozása a PC-n történik! 7 / 17
Egyedi jelalakok előálĺıtása a számítógépen LabVIEW szoftverrel 8 / 17
Egyedi jelalakok előnézete a számítógépen 9 / 17
A visszamért, generált jelalak 10 / 17
A vezérlés a PC oldalán egyszerű 11 / 17
Üres NAN értékek (A korábban itt álló értékeket az olvasófej már kiolvasta, majd ezeket üres értékekkel helyettesítette) Itt jár most az olvasófej } 0x0004 D/A konverterre kerülő értékek 0x0005 (Az állapotgép AOGen módban van) 0xFFFF } 0x0003 0x0001 0xFFFF } 0x0009 0x000A 0x000B 0x000C EXCLAMARK, az állapotgép,,parancsra vár állapotba kerül InputStateMachine = ControlMode Parancs értékek (Az állapotgép ControlMode üzemben van) EXCLAMARK, az állapotgép visszakerül,,d/a konvertálandó értéket vár állapotba InputStateMachine = AOGen Újra a D/A konverterre kerülő értékek (Az állapotgép AOGen módban van) 12 / 17
0x0000 0x0001 0x0003 0x0004 0x0005 0xFFFF 0x0001 0xFFFF 0x0006 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C D/A konvertálandó érték.
0x0001 0x0003 0x0004 0x0005 0xFFFF 0x0001 0xFFFF 0x0006 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C D/A konvertálandó érték.
0x0003 0x0004 0x0005 0xFFFF 0x0001 0xFFFF 0x0006 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C D/A konvertálandó érték.
0x0003 0x0004 0x0005 0xFFFF 0x0001 0xFFFF 0x0006 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C D/A konvertálandó érték.
0x0004 0x0005 0xFFFF 0x0001 0xFFFF 0x0006 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C D/A konvertálandó érték.
0x0005 0xFFFF 0x0001 0xFFFF 0x0006 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C D/A konvertálandó érték.
0xFFFF 0x0001 0xFFFF 0x0006 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C EXCLAMARK érték, állapotváltás parancsértelmező módba.
0x0001 0xFFFF 0x0006 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C Parancsszó (LED értékváltását jelenti).
0x0001 0xFFFF 0x0006 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C Parancsszó (LED kijelölő).
0x0001 0xFFFF 0x0006 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C Parancsszó (LED értéke).
0xFFFF 0x0006 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C EXCLAMARK érték, állapotváltás vissza D/A generáló módba, egyben a 2-es LED kigyújtása.
0x0006 0x0007 0x0008 0x0009 0x000A 0x000B 0x000C D/A konvertálandó érték.
0x0007 0x0008 0x0009 0x000A 0x000B 0x000C D/A konvertálandó érték.
0x0008 0x0009 0x000A 0x000B 0x000C D/A konvertálandó érték.
0x0009 0x000A 0x000B 0x000C D/A konvertálandó érték.
0x000A 0x000B 0x000C D/A konvertálandó érték.
0x000B 0x000C D/A konvertálandó érték.
0x000C D/A konvertálandó érték.
D/A konvertálandó érték.
A jelenlegi vezérlőpanel Összefoglalás 14 / 17
Összefoglalás Bevezetés Összefoglalás A fejlesztést a legkritikusabb pontnál kezdtük: a gép és az eszköz közötti nagy sebességű kommunikáció kialakításánál. Ezt a problémát sikerrel meg is oldottuk. Sikerült továbbá megoldanunk azt is, hogy eszközünk használatával tetszőleges (esetleg ciklusba rendezett), zárt alakú formulák segítségével egyedi jelalakok valós idejű, gyors generálása legyen lehetséges. Eddigi eredményeink: a TDK második, illetve National Instruments pályázaton elért ötödik helyezés. Az analóg jelek mérésének megoldásáról Vinis Ádám számol be. 15 / 17
Összefoglalás Nem lenne-e célszerűbb a DAC működtetésére olyan protokollt kialakítani, aminél adatpárosok (pl: feszültség, időtartam) szabják meg a kiadandó feszültségjel pontjait? Megoldható futamkódolással (RLL) vagy delta kódolással, viszont: Érdemes végiggondolni, hogy erre tényleg szükség van-e. Ha nem küldünk adatot a D/A konverternek az megtartja a legutóbbi értékét! Több erőforrást von el a mikrokontrollertől: +1 időzítő szükséges. Jelen megoldás nem végleges: később majd DMA. 16 / 17
Összefoglalás Mennyire biztonságos az adatátvitel? Van-e olyan adatátviteli protokoll alkalmazva, amivel egy bithiba kiszűrhető? Az USB 2.0 dokumentációja alapján: The protocol includes separate CRCs for control and data fields of each packet. The protocol overhead for each transaction includes: In a token packet, the endpoint number, device address, and CRC5 fields (16 bits total) In a data packet, CRC16 fields (16 bits total)... Az eszközön belül: SPI-nél elméletileg előfordulhat bithiba, de gyakorlatilag nagyon ritka. Nincs jelentősége a vezeték rövidsége miatt. 17 / 17