Pulse Burst Generator Handleiding Peter Wiersma, maart 20, 2008, Faculteit der Exacte Wetenschappen Vrije Universiteit Amsterdam Telefoon : +31-20-5987432 Fax : +31-20-4447899 Project ID : 20089101 Bestandsnaam : Document1 Pagina s : 6 Laatst bewerkt : (december 14, 2009) Email Web : pg.wiersma @beta.vu.nl : http://www.few.vu.nl/~elec
Burst Generator User Manual.doc Pagina i van 6 Inhoudsopgave 1 Inleiding...1 2 Hardware referentie...2 3 Software...2 4 Commando s om de Burstgenerator in te stellen...3
Burst Generator User Manual.doc Pagina 1 van 6 1 Inleiding Een triggerpuls initieert een pulsburst aan de uitgang burst_out. Er zijn twee extra uitgangen: burst_start en burst_end. De instellingen worden via een USB-line gegeven. De instelmogelijkheden zijn: o triggerflank: positief, negatief o triggerdelay: 0 t/m 100 us in stappen van 1 us o frequentie: 1MHz; 500kHz; 200kHz; 100kHz; 50kHz o aantal pulsen per burst: max 1024 in stappen van 1 De pulsen hebben een duty cycle van 10 % De hardware (met firmware) is een VUSB print (projectnummer: 20054008) waaraan specifieke software is toegevoegd. Om via de USB de Burstgenerator aan te kunnen sturen, moet er een DLL geïnstalleerd worden: VUSBkernell.dll. P:\Projects\2005\20054008.VUSB\software\Installer\VUSB kernel driver installer 1.0 is de link naar de installer. Blokschema USB VUSB print Power supply I/O print Burst_Out Burst_start Burst_stop trigger
Burst Generator User Manual.doc Pagina 2 van 6 2 Hardware referentie 3 Software De VUSB heeft 8 registers van 8 bits. In register 0 moet het commando type geplaatst worden. In de overige registers de commando s zelf. In register 1 moet de delay staan en in register 2 de overige instellingen. De waardes moeten in in hex formaat gestuurd worden. Bijvoorbeeld delay is 1 us: 0x01; 50 us: 0x32 en 100 us: 0x64 in Reg1 en 0x42 in Reg0 Voorde frequentie zijn 3 bits gereserveerd: 1MHz: 0x01; 500kHz: 0x02; 200kHz: 0x03; 100kHz: 0x04; 50kHz: 0x05 in Reg2 en 0x40 in Reg0 De burstcount is: 512: 0x00; 1024: 0x10 in Reg2 en 0x40 in Reg0 De triggerflank: Pos: 0x08; neg: 0x00 in Reg2 en 0x40 in Reg0 Bijvoorbeeld: Freq = 200 khz; burstcount = 1024; flank =pos dan wordt Reg2 0x1B (00011011)
Burst Generator User Manual.doc Pagina 3 van 6 4 Commando s om de Burstgenerator in te stellen. De communicatie gebeurt via USB. Het commando wordt verstuurd met de call: USB_SET_FPGA_REGS. 8 bytes (Registers) worden meegestuurd met dit commando. Het eerste byte bevat het commando, de overige bytes (registers) kunnen parameterwaarden zijn. Alle waarden zijn hexadecimaal Commando Reg0 LOAD_FREQ 0x40 (keuze uit 5) LOAD_BURST 0x41 (16 bits) DELAY_CNT 0x42 (8 bits in stappen van 1us) START 0x45 (start een nieuwe burst) STOP 0x46 (stopt de burst (reset mode)) TRIG_EN 0x47 (hervat de generatie van de pulsen in de burst) TRIG_DISA 0x48 (onderbreekt de generatie van de pulsen in de burst) EDGE_POS 0x43 (burst start op opgaande flank v/d trigger) EDGE_NEG 0x44 (burst start op de neergaande flank v/d trigger) Parameters18-2-2009 Er kan gekozen worden uit 5 frequenties: Reg2 1MHZ 0x01 500kHz 0x02 200kHz 0x03 100kHz 0x04 50kHz 0x05 Het aantal pulsen in een burst kan in stappen van 1 ingesteld worden. Hiervoor zijn 10 bit s beschikbaar. Enige voorbeelden: Reg3 Reg4 BURST_256L 0x00 BURST_256H 0x01 BURST_512L 0x00 BURST_512H 0x10 Het triggermoment kan liggen op de opgaande of neergaande flank van de triggerpuls. Resetten burst generatie gebeurt door eerst een stop te sturen en daarna een start. De burst kan onderbroken worden door een trig_disa te sturen hervatting vindt plaats door trig_en te sturen De delay tot het triggermoment kan in stappen van 1 us ingesteld worden. Enige voorbeelden: Reg1 DELAY_10US 0x0A DELAY_20US 0x14 DELAY_50US 0x32 DELAY_100US 0x64 Als alle parameters verstuurd zijn kan de instructie Trig_En gestuurd worden.
Burst Generator User Manual.doc Pagina 4 van 6 Bijvoorbeeld: het apparaat moet op een neergaande flank getriggerd worden, de delay moet 23 us zijn, de frequentie 200kHz en het aantal pulsen in de burst 534 Stuur dan achtereenvolgens met : USB_SET_FPGA_REGS mee : (0x43) trigger op negatieve flank (0x42, 0x18, 1) delay = 23 us (0x40, 0x03, 2) freq = 200kHz (0x41, 0x12, 6) lsb burst (0x41, 0x02, 4) msb burst (0x44, 0x20, 2) trigger enable Hieronder staat een labwindows fragment: err=sendmycommand(delay_cnt,delay_50us,1); err=sendmycommand(load_freq,freq_200khz,2); err=sendmycommand(load_burst,burst_256l,3); err=sendmycommand(load_burst,burst_256h,4); err=sendmycommand(edge_pos); err=sendmycommand(trig_en); int SendMyCommand(char command, char value,int reg) { int regerr; Regs.Reg0=command; Regs.Reg1=0; Regs.Reg2=0; Regs.Reg3=0; Regs.Reg4=0; Regs.Reg5=0; Regs.Reg6=0; Regs.Reg7=0; switch (reg) { case 1:Regs.Reg1=value; case 2:Regs.Reg2=value; case 3:Regs.Reg3=value; case 4:Regs.Reg4=value; case 5:Regs.Reg5=value; case 6:Regs.Reg6=value; case 7:Regs.Reg7=value; } regerr=usb_set_fpga_regs(®s); return regerr;