100 likes | 269 Views
Update on FPGA/IOC applications and RTEMS developments at the APS. W. Eric Norum 2007-10-13. Coldfire/FPGA systems. Deployed PAR RF AWG “EPICS Appliance” – all code, .dbd, .db, st.cmd in flash Last reboot – 2006-05-25 Monopulse beam-position monitors >500 PVs
E N D
Update on FPGA/IOC applications and RTEMS developments at the APS • W. Eric Norum • 2007-10-13
Coldfire/FPGA systems • Deployed • PAR RF AWG • “EPICS Appliance” – all code, .dbd, .db, st.cmd in flash • Last reboot – 2006-05-25 • Monopulse beam-position monitors • >500 PVs • Multiple 256k-point waveforms • Reboot without affecting fast feedback operation • Bunch purity measurement • Measure arrival time of CFD pulse with ~500ps resolution • Two 7776-bin 32-bit histograms in FPGA (6 bins/RF bucket) • P0 feedback • Testing/development • Booster tune measurement • Smart power supply controls 2
Arcturus μCDIMM ColdFire 5282 module • Motorola/FreeScale ColdFire 5282 processor (64 or 80 MHz) • 16 Megabyte SDRAM (32-bit data path) • 4 Megabyte flash memory (RTEMS/EPICS/IOC) • 1/2 Megabyte on-chip flash (bootstrap) • SO-DIMM form factor • ~$200 in small quantities, $120 each for orders of 500 or more. 3
Arcturus μCDIMM ColdFire 5282 module • 10/100 Mb/s Ethernet (10/100 BaseT) • 3 serial ports (2 RS-232, 1 LVTTL) • I2C and SPI • CAN support • 8-channel, 10-bit ADC • A24/D16 external bus • 5 interrupt request lines • 16 general-purpose I/O lines 4
Arcturus μCDIMM ColdFire 5282 module • Example of other uses – DESY DIN-rail IOC 5
APS μCDIMM ColdFire 5282 EPICS Environment • All APS applications of the ColdFire μCDIMM use it with an FPGA • devLib support make FPGA components look like VME-bus modules • Same driver code works with vxWorks/VME module and with RTEMS/FPGA component. 6
Coldfire/FPGA integration • Altera “System on a Programmable Chip” builder provides drag and drop system configuration • FPGA SOPC blocks appear as VME devices to IOC • Standard devLib support • Existing VME drivers (e.g. event receiver) can be used without any modifications! 7
Example FPGA components • APS Event Receiver • Extended APS Event Receiver (subset of EVR-200) • Analog Devices AD7249 serial DAC • I/Q phase/amplitude detector + CORDIC • 16-channel Proportional+Integral controller • 16-channel, 6th-order, IIR filter • Serial line monitor (remote IOC reset) 8
EPICS support • All ColdFire on-chip devices and FPGA SOPC components are supported in EPICS using ASYN drivers • Why ASYN for register-based devices? • Decouples driver from record • Common routines/displays for producing and controlling diagnostic messages • Common INP/OUT field formats 9
RTEMS updates • Complete iocClock integration – RTEMS matches vxWorks for time synchronization (NTP, soft event client, hard event client) • Proper timezone support (epicsEnvSet TZ "CST6CDT5,M3.2.0,M11.1.0”) • tyGSoctal driver (Greensprings Octal UART Industry Pack Module) • Complete termios support • Complete set of IOC shell commands • Memory pool free space available as PV • “spy” command • Hooks in startup code before/after network configuration • Example – BSP100 module sets network information and path to startup script based on front-panel switch settings. One-spare fits all! • Better support for ‘global environment variables’ on MOTLOAD processors • Available in CVS snapshots. R3.14.10 coming soon? 10