SlideShare a Scribd company logo
1 of 24
Download to read offline
Using ARM Dev.Board
in physical experimental
instruments
IoT 2015 Bar Montenegro
Andrey Novikov, msc-cg
mass spectrometry
Sector MS (1936)
Time of Flight MS (1948)
Quadrupole (1970)
deflection
Sector Mass-Spectrometer
ToF MS
Quadrupole
What we had before
• static voltages on lenses
• FTDI USB-I2C bus
• 2-20ms per command
• 1-2% of lost commands
• update frequency 5-10Hz
Requested Specification
• Change Voltage 2-4 channels every 10-20us (precision
16bit 0.1mV/10V)
• Measure 1 Voltage (16-24bit) channel on each step.
• measured data samples without time gaps for 1s (100000
samples on that frequency)
• transfer all acquired data less then 10ms to the PC.
• be ready for new cycle.
• should be easily scalable
Interfaces
microcontroller layer digital Interfaces
• GPIO - General Purpose Input Output
• SPI - Serial Peripheral Interface
• I2C(TWI) - two ware interface
PC layer connection data transfer interface
• Ethernet 10/100Mb
• RS-232
• RS-485
Development Boards
• Raspberry Pi
• Arduino
• ST32F
• STM discovery dev board
• Mountaineer
• OLIMEX
Raspberry Pi-2
A 900MHz quad-core ARM Cortex-A7
1GB RAM
4 USB ports
40 GPIO pins
Full HDMI port
Ethernet port 10/100
Combined 3.5mm audio jack and
composite video
Camera interface (CSI)
Display interface (DSI)
Micro SD card slot
VideoCore IV 3D graphics
core
Linux Distros:
• Rasbian (Debian)
• Pidora(Fedora)
• Arch Linux (Pi build)
• Ubuntu 14 (for Pi2)
Raspberry Pi code example
#Python
import RPi.GPIO as GPIO
import time
def main():
# Main program block
GPIO.setmode(GPIO.BCM) #
GPIO.setup(LCD_E, GPIO.OUT) # E
GPIO.setup(LCD_RS, GPIO.OUT) # RS
GPIO.setup(LCD_D4, GPIO.OUT) # DB4
GPIO.setup(LCD_D5, GPIO.OUT) # DB5
GPIO.setup(LCD_D6, GPIO.OUT) # DB6
GPIO.setup(LCD_D7, GPIO.OUT) # DB7
#etc…
def lcd_byte(bits, mode):
# Send byte to data pins
# bits = data
# mode = True for character
# False for command
GPIO.output(LCD_RS, mode) # RS
# High bits
GPIO.output(LCD_D4, False)
GPIO.output(LCD_D5, False)
GPIO.output(LCD_D6, False)
GPIO.output(LCD_D7, False)
#etc…
//C
int mcp3008Spi::spiOpen(std::string devspi){
int statusVal = -1;
this->spifd = open(devspi.c_str(), O_RDWR);
if(this->spifd < 0){
perror("could not open SPI device");
exit(1);
}
statusVal = ioctl (this->spifd, SPI_IOC_WR_MODE,
&(this->mode));
if(statusVal < 0){
perror("Could not set SPIMode (WR)...ioctl fail");
exit(1);
}
//etc…
// Transfer data with SPI: one spi transfer for each byte
for (i = 0 ; i < length ; i++){
spi[i].tx_buf = (unsigned long)(data + i); // transmit from "data"
spi[i].rx_buf = (unsigned long)(data + i) ; // receive into "data"
spi[i].len = sizeof(*(data + i)) ;
spi[i].delay_usecs = 0 ;
spi[i].speed_hz = this->speed ;
spi[i].bits_per_word = this->bitsPerWord ;
spi[i].cs_change = 0;
}
retVal = ioctl (this->spifd, SPI_IOC_MESSAGE(length), &spi) ;
using RPi?
Linux Data Server/Desktop
• Pros
• low power consumption
• small size
• full functional Linux
• Cons
• SD rewrite limit
Linux Dev.Board
• Pros
• self-sufficiency
• scalable
• SPI & I2C present on board
• Cons
• few digital interface ports
• on linux kernel delay 100us
ChibiOs or RTOS Dev.Board
Arduino Arduino Uno
Microcontroller
ATmega328 8-bit AVR RISC-based
20MHz
I2C x1

SPI x2
UART x1

ADC: 8ch 10bit 15kbps
Arduino Uno with Eth shield
ST Microelectronics
STM32F407
STM407 Discovery Board
with Extension Board
ST-Link
Mountaineer
NETMF
.NET BootLoader
OLIMEX
STM32-E407
USB-DFU
Bootloader
IDE
• Keil http://www.keil.com
• CooCox CoIDE http://www.coocox.org
• .NET MicroFramework http://www.netmf.com
• Arduino IDE https://www.arduino.cc/en/Main/
Software
• GNU C Compiler
STM SDK
Open Source SDK includes:
• Easy to use and well documented periphery functions. GPIO, I2C,
SPI
• Very difficult to use(based on callbacks) LwIP library - so sth-stack
in STM is a pain
• RTOS library:
• have tcp-ip socket
• but task scheduler some times freezes all tasks up to 10ms
• it’s “ortodox” Ansi C 99
STM32F4Cube
Resolving Pin Conflict
Generating Pin Report
Template Projects:
• EWARM
• MDK-ARM V4
• MDK-ARM V5
• TrueStudio
• SW4STM32
Prototype 1
based on stm32f407 discovery
DAC: AD5544 4ch 16bit
ADC: TLC4541 1ch 16bit
ETH+Disp:
Discovery Ext.Board
IDE: Keil v4.74
time spent:
programmer:
4 weeks
electronics engineer:
2 weeks
time spent:
programmer:
4 weeks
electronics engineer:
2 weeks
time spent:
programmer:
4 weeks
electronics engineer:
2 weeks
Prototype 2 (failed)
DAC: AD5668 8ch 16bit
ADC: AD7606 8ch 16bit
ETH: LAN8720
acid etched PCB
didn’t worked correctly
because of huge amount of
breakthroughs, but SW
algorithms worked through
time spent:
programmer:
4-6 weeks
electronics engineer:
2-3 weeks
Pre-Release
• 8x Paired ADC-DAC
• 5us update time
• 1ms command
response time
• approved 100MB
transfer speed
• ETH-I2C bus
translator
DAC: AD5668 8ch 16bit
ADC: ADAS3023 8ch 16bit
ETH: LAN8720
two side factory printed PCB
PC-end software
In Plans
• using individual 18-24bit ADC for signal registration
• adding eth-events handler to sync state between
stm units
• combine Real-Time STM units and RaspberryPi2 as
a central control node under Linux
• DDA - Data Dependent Acquisition
• finish “home dark-server” based on RPi-2
Conclusions
Modern Microelectronics is:
• Easy to understand (entrance threshold is very low)
• Easy scale (a lot of standard interfaces that you
can just use)
• easy to buy (cheap and wide choice)
• really fun and interesting

More Related Content

What's hot

Trash Robotic Router Platform - David Melendez - Codemotion Rome 2015
Trash Robotic Router Platform - David Melendez - Codemotion Rome 2015Trash Robotic Router Platform - David Melendez - Codemotion Rome 2015
Trash Robotic Router Platform - David Melendez - Codemotion Rome 2015Codemotion
 
Using Timer2 in Microchip MCUs
Using Timer2 in Microchip MCUsUsing Timer2 in Microchip MCUs
Using Timer2 in Microchip MCUsCorrado Santoro
 
uRock @ Jserv Course Final
uRock @ Jserv Course Final uRock @ Jserv Course Final
uRock @ Jserv Course Final 宗凡 楊
 
Multiplatform JIT Code Generator for NetBSD by Alexander Nasonov
Multiplatform JIT Code Generator for NetBSD by Alexander NasonovMultiplatform JIT Code Generator for NetBSD by Alexander Nasonov
Multiplatform JIT Code Generator for NetBSD by Alexander Nasonoveurobsdcon
 
Online test program generator for RISC-V processors
Online test program generator for RISC-V processorsOnline test program generator for RISC-V processors
Online test program generator for RISC-V processorsRISC-V International
 
FSEC 2014 - I can haz your board with JTAG
FSEC 2014 - I can haz your board with JTAGFSEC 2014 - I can haz your board with JTAG
FSEC 2014 - I can haz your board with JTAGDobrica Pavlinušić
 
Lcd module interface with xilinx software using verilog
Lcd module interface with xilinx software using verilogLcd module interface with xilinx software using verilog
Lcd module interface with xilinx software using verilogsumedh23
 
Make ARM Shellcode Great Again
Make ARM Shellcode Great AgainMake ARM Shellcode Great Again
Make ARM Shellcode Great AgainSaumil Shah
 
Advanced cfg bypass on adobe flash player 18 defcon russia 23
Advanced cfg bypass on adobe flash player 18 defcon russia 23Advanced cfg bypass on adobe flash player 18 defcon russia 23
Advanced cfg bypass on adobe flash player 18 defcon russia 23DefconRussia
 
Jumping into heaven’s gate
Jumping into heaven’s gateJumping into heaven’s gate
Jumping into heaven’s gateYarden Shafir
 
Pipeline stalling in vhdl
Pipeline stalling in vhdlPipeline stalling in vhdl
Pipeline stalling in vhdlSai Malleswar
 
CODING IN ARDUINO
CODING IN ARDUINOCODING IN ARDUINO
CODING IN ARDUINOS Ayub
 

What's hot (20)

W10: Interrupts
W10: InterruptsW10: Interrupts
W10: Interrupts
 
Trash Robotic Router Platform - David Melendez - Codemotion Rome 2015
Trash Robotic Router Platform - David Melendez - Codemotion Rome 2015Trash Robotic Router Platform - David Melendez - Codemotion Rome 2015
Trash Robotic Router Platform - David Melendez - Codemotion Rome 2015
 
Using Timer2 in Microchip MCUs
Using Timer2 in Microchip MCUsUsing Timer2 in Microchip MCUs
Using Timer2 in Microchip MCUs
 
microprocessors
microprocessorsmicroprocessors
microprocessors
 
uRock @ Jserv Course Final
uRock @ Jserv Course Final uRock @ Jserv Course Final
uRock @ Jserv Course Final
 
Multiplatform JIT Code Generator for NetBSD by Alexander Nasonov
Multiplatform JIT Code Generator for NetBSD by Alexander NasonovMultiplatform JIT Code Generator for NetBSD by Alexander Nasonov
Multiplatform JIT Code Generator for NetBSD by Alexander Nasonov
 
Online test program generator for RISC-V processors
Online test program generator for RISC-V processorsOnline test program generator for RISC-V processors
Online test program generator for RISC-V processors
 
Dronecode: software open source em drones
Dronecode: software open source em dronesDronecode: software open source em drones
Dronecode: software open source em drones
 
FSEC 2014 - I can haz your board with JTAG
FSEC 2014 - I can haz your board with JTAGFSEC 2014 - I can haz your board with JTAG
FSEC 2014 - I can haz your board with JTAG
 
Lcd module interface with xilinx software using verilog
Lcd module interface with xilinx software using verilogLcd module interface with xilinx software using verilog
Lcd module interface with xilinx software using verilog
 
Deep hooks
Deep hooksDeep hooks
Deep hooks
 
Make ARM Shellcode Great Again
Make ARM Shellcode Great AgainMake ARM Shellcode Great Again
Make ARM Shellcode Great Again
 
Advanced cfg bypass on adobe flash player 18 defcon russia 23
Advanced cfg bypass on adobe flash player 18 defcon russia 23Advanced cfg bypass on adobe flash player 18 defcon russia 23
Advanced cfg bypass on adobe flash player 18 defcon russia 23
 
REPORT
REPORTREPORT
REPORT
 
FPGA Tutorial - LCD Interface
FPGA Tutorial - LCD InterfaceFPGA Tutorial - LCD Interface
FPGA Tutorial - LCD Interface
 
Jumping into heaven’s gate
Jumping into heaven’s gateJumping into heaven’s gate
Jumping into heaven’s gate
 
Pipeline stalling in vhdl
Pipeline stalling in vhdlPipeline stalling in vhdl
Pipeline stalling in vhdl
 
CODING IN ARDUINO
CODING IN ARDUINOCODING IN ARDUINO
CODING IN ARDUINO
 
Rig nitc [autosaved] (copy)
Rig nitc [autosaved] (copy)Rig nitc [autosaved] (copy)
Rig nitc [autosaved] (copy)
 
Class9
Class9Class9
Class9
 

Similar to Using ARM Dev Boards in Physical Experimental Instruments

Getting Started With Raspberry Pi - UCSD 2013
Getting Started With Raspberry Pi - UCSD 2013Getting Started With Raspberry Pi - UCSD 2013
Getting Started With Raspberry Pi - UCSD 2013Tom Paulus
 
m.tech esd lab manual for record
m.tech esd lab manual for recordm.tech esd lab manual for record
m.tech esd lab manual for recordG Lemuel George
 
Do you know what your digital pins are "really" saying
Do you know what your digital pins are "really" sayingDo you know what your digital pins are "really" saying
Do you know what your digital pins are "really" sayingLeroy Levin
 
Getting Started with Raspberry Pi - DCC 2013.1
Getting Started with Raspberry Pi - DCC 2013.1Getting Started with Raspberry Pi - DCC 2013.1
Getting Started with Raspberry Pi - DCC 2013.1Tom Paulus
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingAnne Nicolas
 
Tft touch screen manufacturers
Tft touch screen manufacturersTft touch screen manufacturers
Tft touch screen manufacturersKeatonParker2
 
One library for all Java encryption
One library for all Java encryptionOne library for all Java encryption
One library for all Java encryptionDan Cvrcek
 
Raspberry Pi I/O控制與感測器讀取
Raspberry Pi I/O控制與感測器讀取Raspberry Pi I/O控制與感測器讀取
Raspberry Pi I/O控制與感測器讀取艾鍗科技
 
Practical file
Practical filePractical file
Practical filerajeevkr35
 
I2C And SPI Part-23
I2C And  SPI Part-23I2C And  SPI Part-23
I2C And SPI Part-23Techvilla
 
Embedded systems design @ defcon 2015
Embedded systems design @ defcon 2015Embedded systems design @ defcon 2015
Embedded systems design @ defcon 2015Rodrigo Almeida
 
Getting Started with Raspberry Pi - USC 2013
Getting Started with Raspberry Pi - USC 2013Getting Started with Raspberry Pi - USC 2013
Getting Started with Raspberry Pi - USC 2013Tom Paulus
 
Digital clock workshop
Digital clock workshopDigital clock workshop
Digital clock workshopKedarv
 
student_pres120202final
student_pres120202finalstudent_pres120202final
student_pres120202finalJohn Marquis
 

Similar to Using ARM Dev Boards in Physical Experimental Instruments (20)

Em s7 plc
Em s7 plcEm s7 plc
Em s7 plc
 
Getting Started With Raspberry Pi - UCSD 2013
Getting Started With Raspberry Pi - UCSD 2013Getting Started With Raspberry Pi - UCSD 2013
Getting Started With Raspberry Pi - UCSD 2013
 
m.tech esd lab manual for record
m.tech esd lab manual for recordm.tech esd lab manual for record
m.tech esd lab manual for record
 
Do you know what your digital pins are "really" saying
Do you know what your digital pins are "really" sayingDo you know what your digital pins are "really" saying
Do you know what your digital pins are "really" saying
 
Iot 101
Iot 101Iot 101
Iot 101
 
Getting Started with Raspberry Pi - DCC 2013.1
Getting Started with Raspberry Pi - DCC 2013.1Getting Started with Raspberry Pi - DCC 2013.1
Getting Started with Raspberry Pi - DCC 2013.1
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debugging
 
Tft touch screen manufacturers
Tft touch screen manufacturersTft touch screen manufacturers
Tft touch screen manufacturers
 
Lab2ppt
Lab2pptLab2ppt
Lab2ppt
 
ESD -DAY 24.pptx
ESD -DAY 24.pptxESD -DAY 24.pptx
ESD -DAY 24.pptx
 
One library for all Java encryption
One library for all Java encryptionOne library for all Java encryption
One library for all Java encryption
 
Raspberry Pi I/O控制與感測器讀取
Raspberry Pi I/O控制與感測器讀取Raspberry Pi I/O控制與感測器讀取
Raspberry Pi I/O控制與感測器讀取
 
Practical file
Practical filePractical file
Practical file
 
I2C And SPI Part-23
I2C And  SPI Part-23I2C And  SPI Part-23
I2C And SPI Part-23
 
Embedded systems design @ defcon 2015
Embedded systems design @ defcon 2015Embedded systems design @ defcon 2015
Embedded systems design @ defcon 2015
 
uElectronics ongoing activities at ESA
uElectronics ongoing activities at ESAuElectronics ongoing activities at ESA
uElectronics ongoing activities at ESA
 
Getting Started with Raspberry Pi - USC 2013
Getting Started with Raspberry Pi - USC 2013Getting Started with Raspberry Pi - USC 2013
Getting Started with Raspberry Pi - USC 2013
 
Digital clock workshop
Digital clock workshopDigital clock workshop
Digital clock workshop
 
student_pres120202final
student_pres120202finalstudent_pres120202final
student_pres120202final
 
arduinoedit.pptx
arduinoedit.pptxarduinoedit.pptx
arduinoedit.pptx
 

Recently uploaded

Gaya Call Girls #9907093804 Contact Number Escorts Service Gaya
Gaya Call Girls #9907093804 Contact Number Escorts Service GayaGaya Call Girls #9907093804 Contact Number Escorts Service Gaya
Gaya Call Girls #9907093804 Contact Number Escorts Service Gayasrsj9000
 
威廉玛丽学院毕业证学位证成绩单-安全学历认证
威廉玛丽学院毕业证学位证成绩单-安全学历认证威廉玛丽学院毕业证学位证成绩单-安全学历认证
威廉玛丽学院毕业证学位证成绩单-安全学历认证kbdhl05e
 
原版1:1复刻斯坦福大学毕业证Stanford毕业证留信学历认证
原版1:1复刻斯坦福大学毕业证Stanford毕业证留信学历认证原版1:1复刻斯坦福大学毕业证Stanford毕业证留信学历认证
原版1:1复刻斯坦福大学毕业证Stanford毕业证留信学历认证gwhohjj
 
NO1 Qualified Best Black Magic Specialist Near Me Spiritual Healer Powerful L...
NO1 Qualified Best Black Magic Specialist Near Me Spiritual Healer Powerful L...NO1 Qualified Best Black Magic Specialist Near Me Spiritual Healer Powerful L...
NO1 Qualified Best Black Magic Specialist Near Me Spiritual Healer Powerful L...Amil baba
 
定制(RHUL学位证)伦敦大学皇家霍洛威学院毕业证成绩单原版一比一
定制(RHUL学位证)伦敦大学皇家霍洛威学院毕业证成绩单原版一比一定制(RHUL学位证)伦敦大学皇家霍洛威学院毕业证成绩单原版一比一
定制(RHUL学位证)伦敦大学皇家霍洛威学院毕业证成绩单原版一比一ss ss
 
5S - House keeping (Seiri, Seiton, Seiso, Seiketsu, Shitsuke)
5S - House keeping (Seiri, Seiton, Seiso, Seiketsu, Shitsuke)5S - House keeping (Seiri, Seiton, Seiso, Seiketsu, Shitsuke)
5S - House keeping (Seiri, Seiton, Seiso, Seiketsu, Shitsuke)861c7ca49a02
 
vip Krishna Nagar Call Girls 9999965857 Call or WhatsApp Now Book
vip Krishna Nagar Call Girls 9999965857 Call or WhatsApp Now Bookvip Krishna Nagar Call Girls 9999965857 Call or WhatsApp Now Book
vip Krishna Nagar Call Girls 9999965857 Call or WhatsApp Now Bookmanojkuma9823
 
Erfurt FH学位证,埃尔福特应用技术大学毕业证书1:1制作
Erfurt FH学位证,埃尔福特应用技术大学毕业证书1:1制作Erfurt FH学位证,埃尔福特应用技术大学毕业证书1:1制作
Erfurt FH学位证,埃尔福特应用技术大学毕业证书1:1制作f3774p8b
 
办理(CSU毕业证书)澳洲查理斯特大学毕业证成绩单原版一比一
办理(CSU毕业证书)澳洲查理斯特大学毕业证成绩单原版一比一办理(CSU毕业证书)澳洲查理斯特大学毕业证成绩单原版一比一
办理(CSU毕业证书)澳洲查理斯特大学毕业证成绩单原版一比一diploma 1
 
Vip Noida Escorts 9873940964 Greater Noida Escorts Service
Vip Noida Escorts 9873940964 Greater Noida Escorts ServiceVip Noida Escorts 9873940964 Greater Noida Escorts Service
Vip Noida Escorts 9873940964 Greater Noida Escorts Serviceankitnayak356677
 
(办理学位证)加州州立大学北岭分校毕业证成绩单原版一比一
(办理学位证)加州州立大学北岭分校毕业证成绩单原版一比一(办理学位证)加州州立大学北岭分校毕业证成绩单原版一比一
(办理学位证)加州州立大学北岭分校毕业证成绩单原版一比一Fi sss
 
RBS学位证,鹿特丹商学院毕业证书1:1制作
RBS学位证,鹿特丹商学院毕业证书1:1制作RBS学位证,鹿特丹商学院毕业证书1:1制作
RBS学位证,鹿特丹商学院毕业证书1:1制作f3774p8b
 
Dubai Call Girls O525547819 Spring Break Fast Call Girls Dubai
Dubai Call Girls O525547819 Spring Break Fast Call Girls DubaiDubai Call Girls O525547819 Spring Break Fast Call Girls Dubai
Dubai Call Girls O525547819 Spring Break Fast Call Girls Dubaikojalkojal131
 
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...nagunakhan
 
Hifi Defence Colony Call Girls Service WhatsApp -> 9999965857 Available 24x7 ...
Hifi Defence Colony Call Girls Service WhatsApp -> 9999965857 Available 24x7 ...Hifi Defence Colony Call Girls Service WhatsApp -> 9999965857 Available 24x7 ...
Hifi Defence Colony Call Girls Service WhatsApp -> 9999965857 Available 24x7 ...srsj9000
 
定制(Salford学位证)索尔福德大学毕业证成绩单原版一比一
定制(Salford学位证)索尔福德大学毕业证成绩单原版一比一定制(Salford学位证)索尔福德大学毕业证成绩单原版一比一
定制(Salford学位证)索尔福德大学毕业证成绩单原版一比一ss ss
 
Beautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsapps
Beautiful Sapna Call Girls CP 9711199012 ☎ Call /WhatsappsBeautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsapps
Beautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsappssapnasaifi408
 
定制(USF学位证)旧金山大学毕业证成绩单原版一比一
定制(USF学位证)旧金山大学毕业证成绩单原版一比一定制(USF学位证)旧金山大学毕业证成绩单原版一比一
定制(USF学位证)旧金山大学毕业证成绩单原版一比一ss ss
 

Recently uploaded (20)

Gaya Call Girls #9907093804 Contact Number Escorts Service Gaya
Gaya Call Girls #9907093804 Contact Number Escorts Service GayaGaya Call Girls #9907093804 Contact Number Escorts Service Gaya
Gaya Call Girls #9907093804 Contact Number Escorts Service Gaya
 
威廉玛丽学院毕业证学位证成绩单-安全学历认证
威廉玛丽学院毕业证学位证成绩单-安全学历认证威廉玛丽学院毕业证学位证成绩单-安全学历认证
威廉玛丽学院毕业证学位证成绩单-安全学历认证
 
原版1:1复刻斯坦福大学毕业证Stanford毕业证留信学历认证
原版1:1复刻斯坦福大学毕业证Stanford毕业证留信学历认证原版1:1复刻斯坦福大学毕业证Stanford毕业证留信学历认证
原版1:1复刻斯坦福大学毕业证Stanford毕业证留信学历认证
 
NO1 Qualified Best Black Magic Specialist Near Me Spiritual Healer Powerful L...
NO1 Qualified Best Black Magic Specialist Near Me Spiritual Healer Powerful L...NO1 Qualified Best Black Magic Specialist Near Me Spiritual Healer Powerful L...
NO1 Qualified Best Black Magic Specialist Near Me Spiritual Healer Powerful L...
 
9953330565 Low Rate Call Girls In Jahangirpuri Delhi NCR
9953330565 Low Rate Call Girls In Jahangirpuri  Delhi NCR9953330565 Low Rate Call Girls In Jahangirpuri  Delhi NCR
9953330565 Low Rate Call Girls In Jahangirpuri Delhi NCR
 
定制(RHUL学位证)伦敦大学皇家霍洛威学院毕业证成绩单原版一比一
定制(RHUL学位证)伦敦大学皇家霍洛威学院毕业证成绩单原版一比一定制(RHUL学位证)伦敦大学皇家霍洛威学院毕业证成绩单原版一比一
定制(RHUL学位证)伦敦大学皇家霍洛威学院毕业证成绩单原版一比一
 
5S - House keeping (Seiri, Seiton, Seiso, Seiketsu, Shitsuke)
5S - House keeping (Seiri, Seiton, Seiso, Seiketsu, Shitsuke)5S - House keeping (Seiri, Seiton, Seiso, Seiketsu, Shitsuke)
5S - House keeping (Seiri, Seiton, Seiso, Seiketsu, Shitsuke)
 
vip Krishna Nagar Call Girls 9999965857 Call or WhatsApp Now Book
vip Krishna Nagar Call Girls 9999965857 Call or WhatsApp Now Bookvip Krishna Nagar Call Girls 9999965857 Call or WhatsApp Now Book
vip Krishna Nagar Call Girls 9999965857 Call or WhatsApp Now Book
 
Low rate Call girls in Delhi Justdial | 9953330565
Low rate Call girls in Delhi Justdial | 9953330565Low rate Call girls in Delhi Justdial | 9953330565
Low rate Call girls in Delhi Justdial | 9953330565
 
Erfurt FH学位证,埃尔福特应用技术大学毕业证书1:1制作
Erfurt FH学位证,埃尔福特应用技术大学毕业证书1:1制作Erfurt FH学位证,埃尔福特应用技术大学毕业证书1:1制作
Erfurt FH学位证,埃尔福特应用技术大学毕业证书1:1制作
 
办理(CSU毕业证书)澳洲查理斯特大学毕业证成绩单原版一比一
办理(CSU毕业证书)澳洲查理斯特大学毕业证成绩单原版一比一办理(CSU毕业证书)澳洲查理斯特大学毕业证成绩单原版一比一
办理(CSU毕业证书)澳洲查理斯特大学毕业证成绩单原版一比一
 
Vip Noida Escorts 9873940964 Greater Noida Escorts Service
Vip Noida Escorts 9873940964 Greater Noida Escorts ServiceVip Noida Escorts 9873940964 Greater Noida Escorts Service
Vip Noida Escorts 9873940964 Greater Noida Escorts Service
 
(办理学位证)加州州立大学北岭分校毕业证成绩单原版一比一
(办理学位证)加州州立大学北岭分校毕业证成绩单原版一比一(办理学位证)加州州立大学北岭分校毕业证成绩单原版一比一
(办理学位证)加州州立大学北岭分校毕业证成绩单原版一比一
 
RBS学位证,鹿特丹商学院毕业证书1:1制作
RBS学位证,鹿特丹商学院毕业证书1:1制作RBS学位证,鹿特丹商学院毕业证书1:1制作
RBS学位证,鹿特丹商学院毕业证书1:1制作
 
Dubai Call Girls O525547819 Spring Break Fast Call Girls Dubai
Dubai Call Girls O525547819 Spring Break Fast Call Girls DubaiDubai Call Girls O525547819 Spring Break Fast Call Girls Dubai
Dubai Call Girls O525547819 Spring Break Fast Call Girls Dubai
 
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...
 
Hifi Defence Colony Call Girls Service WhatsApp -> 9999965857 Available 24x7 ...
Hifi Defence Colony Call Girls Service WhatsApp -> 9999965857 Available 24x7 ...Hifi Defence Colony Call Girls Service WhatsApp -> 9999965857 Available 24x7 ...
Hifi Defence Colony Call Girls Service WhatsApp -> 9999965857 Available 24x7 ...
 
定制(Salford学位证)索尔福德大学毕业证成绩单原版一比一
定制(Salford学位证)索尔福德大学毕业证成绩单原版一比一定制(Salford学位证)索尔福德大学毕业证成绩单原版一比一
定制(Salford学位证)索尔福德大学毕业证成绩单原版一比一
 
Beautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsapps
Beautiful Sapna Call Girls CP 9711199012 ☎ Call /WhatsappsBeautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsapps
Beautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsapps
 
定制(USF学位证)旧金山大学毕业证成绩单原版一比一
定制(USF学位证)旧金山大学毕业证成绩单原版一比一定制(USF学位证)旧金山大学毕业证成绩单原版一比一
定制(USF学位证)旧金山大学毕业证成绩单原版一比一
 

Using ARM Dev Boards in Physical Experimental Instruments

  • 1. Using ARM Dev.Board in physical experimental instruments IoT 2015 Bar Montenegro Andrey Novikov, msc-cg
  • 2. mass spectrometry Sector MS (1936) Time of Flight MS (1948) Quadrupole (1970) deflection
  • 6. What we had before • static voltages on lenses • FTDI USB-I2C bus • 2-20ms per command • 1-2% of lost commands • update frequency 5-10Hz
  • 7. Requested Specification • Change Voltage 2-4 channels every 10-20us (precision 16bit 0.1mV/10V) • Measure 1 Voltage (16-24bit) channel on each step. • measured data samples without time gaps for 1s (100000 samples on that frequency) • transfer all acquired data less then 10ms to the PC. • be ready for new cycle. • should be easily scalable
  • 8. Interfaces microcontroller layer digital Interfaces • GPIO - General Purpose Input Output • SPI - Serial Peripheral Interface • I2C(TWI) - two ware interface PC layer connection data transfer interface • Ethernet 10/100Mb • RS-232 • RS-485
  • 9. Development Boards • Raspberry Pi • Arduino • ST32F • STM discovery dev board • Mountaineer • OLIMEX
  • 10. Raspberry Pi-2 A 900MHz quad-core ARM Cortex-A7 1GB RAM 4 USB ports 40 GPIO pins Full HDMI port Ethernet port 10/100 Combined 3.5mm audio jack and composite video Camera interface (CSI) Display interface (DSI) Micro SD card slot VideoCore IV 3D graphics core Linux Distros: • Rasbian (Debian) • Pidora(Fedora) • Arch Linux (Pi build) • Ubuntu 14 (for Pi2)
  • 11. Raspberry Pi code example #Python import RPi.GPIO as GPIO import time def main(): # Main program block GPIO.setmode(GPIO.BCM) # GPIO.setup(LCD_E, GPIO.OUT) # E GPIO.setup(LCD_RS, GPIO.OUT) # RS GPIO.setup(LCD_D4, GPIO.OUT) # DB4 GPIO.setup(LCD_D5, GPIO.OUT) # DB5 GPIO.setup(LCD_D6, GPIO.OUT) # DB6 GPIO.setup(LCD_D7, GPIO.OUT) # DB7 #etc… def lcd_byte(bits, mode): # Send byte to data pins # bits = data # mode = True for character # False for command GPIO.output(LCD_RS, mode) # RS # High bits GPIO.output(LCD_D4, False) GPIO.output(LCD_D5, False) GPIO.output(LCD_D6, False) GPIO.output(LCD_D7, False) #etc… //C int mcp3008Spi::spiOpen(std::string devspi){ int statusVal = -1; this->spifd = open(devspi.c_str(), O_RDWR); if(this->spifd < 0){ perror("could not open SPI device"); exit(1); } statusVal = ioctl (this->spifd, SPI_IOC_WR_MODE, &(this->mode)); if(statusVal < 0){ perror("Could not set SPIMode (WR)...ioctl fail"); exit(1); } //etc… // Transfer data with SPI: one spi transfer for each byte for (i = 0 ; i < length ; i++){ spi[i].tx_buf = (unsigned long)(data + i); // transmit from "data" spi[i].rx_buf = (unsigned long)(data + i) ; // receive into "data" spi[i].len = sizeof(*(data + i)) ; spi[i].delay_usecs = 0 ; spi[i].speed_hz = this->speed ; spi[i].bits_per_word = this->bitsPerWord ; spi[i].cs_change = 0; } retVal = ioctl (this->spifd, SPI_IOC_MESSAGE(length), &spi) ;
  • 12. using RPi? Linux Data Server/Desktop • Pros • low power consumption • small size • full functional Linux • Cons • SD rewrite limit Linux Dev.Board • Pros • self-sufficiency • scalable • SPI & I2C present on board • Cons • few digital interface ports • on linux kernel delay 100us ChibiOs or RTOS Dev.Board
  • 13. Arduino Arduino Uno Microcontroller ATmega328 8-bit AVR RISC-based 20MHz I2C x1
 SPI x2 UART x1
 ADC: 8ch 10bit 15kbps Arduino Uno with Eth shield
  • 15. STM32F407 STM407 Discovery Board with Extension Board ST-Link Mountaineer NETMF .NET BootLoader OLIMEX STM32-E407 USB-DFU Bootloader
  • 16. IDE • Keil http://www.keil.com • CooCox CoIDE http://www.coocox.org • .NET MicroFramework http://www.netmf.com • Arduino IDE https://www.arduino.cc/en/Main/ Software • GNU C Compiler
  • 17. STM SDK Open Source SDK includes: • Easy to use and well documented periphery functions. GPIO, I2C, SPI • Very difficult to use(based on callbacks) LwIP library - so sth-stack in STM is a pain • RTOS library: • have tcp-ip socket • but task scheduler some times freezes all tasks up to 10ms • it’s “ortodox” Ansi C 99
  • 18. STM32F4Cube Resolving Pin Conflict Generating Pin Report Template Projects: • EWARM • MDK-ARM V4 • MDK-ARM V5 • TrueStudio • SW4STM32
  • 19. Prototype 1 based on stm32f407 discovery DAC: AD5544 4ch 16bit ADC: TLC4541 1ch 16bit ETH+Disp: Discovery Ext.Board IDE: Keil v4.74 time spent: programmer: 4 weeks electronics engineer: 2 weeks time spent: programmer: 4 weeks electronics engineer: 2 weeks time spent: programmer: 4 weeks electronics engineer: 2 weeks
  • 20. Prototype 2 (failed) DAC: AD5668 8ch 16bit ADC: AD7606 8ch 16bit ETH: LAN8720 acid etched PCB didn’t worked correctly because of huge amount of breakthroughs, but SW algorithms worked through time spent: programmer: 4-6 weeks electronics engineer: 2-3 weeks
  • 21. Pre-Release • 8x Paired ADC-DAC • 5us update time • 1ms command response time • approved 100MB transfer speed • ETH-I2C bus translator DAC: AD5668 8ch 16bit ADC: ADAS3023 8ch 16bit ETH: LAN8720 two side factory printed PCB
  • 23. In Plans • using individual 18-24bit ADC for signal registration • adding eth-events handler to sync state between stm units • combine Real-Time STM units and RaspberryPi2 as a central control node under Linux • DDA - Data Dependent Acquisition • finish “home dark-server” based on RPi-2
  • 24. Conclusions Modern Microelectronics is: • Easy to understand (entrance threshold is very low) • Easy scale (a lot of standard interfaces that you can just use) • easy to buy (cheap and wide choice) • really fun and interesting