FRC FPGA Architecture Kickoff 2009. Agenda FRC Robot Controller Architecture FPGA Features and Use Cases Break WPILib for LabVIEW Break WPILib for C /

Slides:



Advertisements
Similar presentations
Jordan Barry Victor Brzeski
Advertisements

Dr A Sahu Dept of Comp Sc & Engg. IIT Guwahati I/O + Timer 8155 I/O + Timer 8255 I/O 8255 I/O 8253/54 Timer 8253/54 Timer 2 Port (A,B), No Bidirectional.
MC68HC11 System Overview. System block diagram (A8 version)
MICROPROCESSORS TWO TYPES OF MODELS ARE USED :  PROGRAMMER’S MODEL :- THIS MODEL SHOWS FEATURES, SUCH AS INTERNAL REGISTERS, ADDRESS,DATA & CONTROL BUSES.
Programmable Interval Timer
Programmable Keyboard/ Display Interface: 8279
Sensors Interfacing.
Unit 4 Sensors and Actuators
Introduction of Holtek HT-46 series MCU
Part 1: Introduction FRC Introduction  FRC 2907 since 2008  Each area of the robot has a team assigned  The Electronics team is headed this year.
FRC LabVIEW Software Overview Joe Hershberger Staff Software Engineer National Instruments.
7-1 Digital Serial Input/Output Two basic approaches  Synchronous shared common clock signal all devices synchronised with the shared clock signal data.
Timers and Interrupts Shivendu Bhushan Summer Camp ‘13.
GURSHARAN SINGH TATLA PIN DIAGRAM OF 8085 GURSHARAN SINGH TATLA
NS Training Hardware. System Controller Module.
Engineering 1040: Mechanisms & Electric Circuits Fall 2011 Introduction to Embedded Systems.
1. A guide to wiring your robot. Jerry Skene Past mentor – Chantilly Robotics
INPUT-OUTPUT ORGANIZATION
Serial Peripheral Interface Module MTT M SERIAL PERIPHERAL INTERFACE (SPI)
Lecture 111 Lecture 11: Lab 3 Overview, the ADV7183B Video Decoder and the I 2 C Bus ECE 412: Microcomputer Laboratory.
DATA ACQUISITION Today’s Topics Define DAQ and DAQ systems Signals (digital and analogue types) Transducers Signal Conditioning - Importance of grounding.
3/7/05A. Semenov Batch-by-Batch Intensity Monitor 1 Two-Channel Batch by Batch Intensity Monitor for Main Injector BBI.
DARPA Digital Audio Receiver, Processor and Amplifier Group Z James Cotton Bobak Nazer Ryan Verret.
SC200x Peripherals Broadband Entertainment Division DTV Source Applications July 2001.
ARM Timers.
System Clocks.
Data Acquisition Data acquisition (DAQ) basics Connecting Signals Simple DAQ application Computer DAQ Device Terminal Block Cable Sensors.
PH4705 & ET4305: Digital Sensors
16F877A. Timer 0 The Timer0 module timer/counter has the following features: –8-bit timer/counter –Readable and writable –8-bit software programmable.
Unit 10.2 Timer Examples. Example – Music Generation Channel 6 – Set up as a timer Output to Generate Square Waves Channel 4 – Set up as a timer Output.
AT91 Embedded Peripherals
Typical Microcontroller Purposes
Analog to Digital conversion. Introduction  The process of converting an analog signal into an equivalent digital signal is known as Analog to Digital.
ELN5622 Embedded Systems Class 7 Spring, 2003 Aaron Itskovich
GPS based time synchronization of PC hardware Antti Gröhn
Universal Asynchronous Receiver/Transmitter (UART)
(More) Interfacing concepts. Introduction Overview of I/O operations Programmed I/O – Standard I/O – Memory Mapped I/O Device synchronization Readings:
Other Chapters From the text by Valvano: Introduction to Embedded Systems: Interfacing to the Freescale 9S12.
Advanced Microprocessor1 I/O Interface Programmable Interval Timer: 8254 Three independent 16-bit programmable counters (timers). Each capable in counting.
Microprocessor-based Systems
8279 KEYBOARD AND DISPLAY INTERFACING
Atmel Atmega128 Overview ALU Particulars RISC Architecture 133, Mostly single cycle instructions 2 Address instructions (opcode, Rs, Rd, offset) 32x8 Register.
ENG3640 Review and Exam Question1 ENG3640 Microcomputer Interfacing Review & Final Exam Structure.
Features of the new Alibava firmware: 1. Universal for laboratory use (readout of stand-alone detector via USB interface) and for the telescope readout.
MCS51 - lecture 6. Lecture 6 1/32 Extending MCS51 system Built-in peripherals MCS51 family.
ATtiny23131 A SEMINAR ON AVR MICROCONTROLLER ATtiny2313.
© 2009, Renesas Technology America, Inc., All Rights Reserved 1 Course Introduction  Purpose:  This course provides an overview of the serial communication.
8279 KEYBOARD AND DISPLAY INTERFACING
Inside the dsPIC33FJ256GP710. Let’s call it a dsPIC33 PIC uC series made by Microchip Compiler, simulator, other goodies are free Programmable in C Can.
Lecture 4 General-Purpose Input/Output NCHUEE 720A Lab Prof. Jichiang Tsai.
Components of a typical full-featured microcontroller.
Sensors Joe Ross Team What is a Sensor A sensor measures a physical quantity and converts it into a signal which can be read by an instrument.
Memory Interface EEE 365 [FALL 2014] LECTURER 12 ATANU K SAHA BRAC UNIVERSITY.
FRC Robot Electronics.
Application Case Study Security Camera Controller
Timers and Event Counters
EI205 Lecture 8 Dianguang Ma Fall 2008.
Microcontroller Applications
DesignDRIVE Position Manager SIN/COS
Chapter 11: Inter-Integrated Circuit (I2C) Interface
Introduction to Microprocessors and Microcontrollers
Chapter 7 Features and Interfacing of Programmable Devices for 8085 based systems.
הודעות ריענון מהיר והרחבות Charts & Graphs גרף XY בניית מחולל אותות
FPro Bus Protocol and MMIO Slot Specification
Programmable Interval timer 8253 / 8254
asyn Driver Tutorial Measurement Computing 1608GX-2A0
Programmable Interval timer 8253 / 8254
AVR – ATmega103(ATMEL) Architecture & Summary
8253 – PROGRAMMABLE INTERVAL TIMER (PIT). What is a Timer? Timer is a specialized type of device that is used to measure timing intervals. Timers can.
Presentation transcript:

FRC FPGA Architecture Kickoff 2009

Agenda FRC Robot Controller Architecture FPGA Features and Use Cases Break WPILib for LabVIEW Break WPILib for C / C++

cRIO Architecture Freescale PowerPC Ethernet RS232PCIXilinx FPGASlot 1Slot2…Slot 8

NI 9201 Architecture 8 Channel Analog Input Module FPGAADCMUXChannel 1Channel 2… Channel 8 / Battery NI 9201

NI 9403 Architecture 32-Channel Bidirectional Digital I/O Module FPGANI Lightning Bug Pull-up Resistors Digital I/O (14) Tristate Buffer Hobby PWM Output (10) Shift RegisterRelay (8 x 2) Robot Signal Light I2C Header Outputs (4) Grounding FETs I 2 C Bus NI 9403 Digital Breakout

Digital Breakout Architecture NI 9403 Pull-up Resistors Digital I/O (14)

Digital Breakout Architecture NI 9403Tristate Buffer Hobby PWM Output (10)

Digital Breakout Architecture NI 9403SPI Shift Register Relay (8 x 2) Robot Signal Light I2C Header Outputs (4)

Digital Breakout Architecture NI 9403 Grounding FETs I 2 C Bus

NI 9472 Architecture FPGABuffer Solenoid Channel 1 Solenoid Channel 2 … Solenoid Channel 8 NI 9472

FRC FPGA Subsystems Analog Input Oversample / Average Accumulator Analog Trigger Digital Input / Output Slow Digital Output Hobby PWM Output I 2 C Bus Digital Input Filtering Solenoid Output Watchdog Counter / Timer SPI Engine Time / Alarm Routable Interrupt Direct Memory Access

Analog Input Use Case Angle of a Potentiometer Distance of a Maxbotics Ultrasonic Sensor Acceleration of an Accelerometer Axis Any other Very Low Frequency Analog Signal

Analog Input 12-bit ADC with +/-10V Range Access Factory Calibration Variable-Length Scan List – 8 maximum – Repeat entries allowed Scan Rate – Per module basis (one ADC) – 2us per Conversion Minimum i.e. 500kS/s with single entry scan list

Analog Input Sources Raw Samples – 16-bit – Updated After Each Conversion Oversample / Average Engine Output – 32-bit Windowed Register Access – Most recent sample

Analog Input Library API

FRC FPGA Subsystems Analog Input Oversample / Average Accumulator Analog Trigger Digital Input / Output Slow Digital Output Hobby PWM Output I 2 C Bus Digital Input Filtering Solenoid Output Watchdog Counter / Timer SPI Engine Time / Alarm Routable Interrupt Direct Memory Access

Oversample / Average Engine (OAE) Use Case Oversample – Higher Resolution Samples – Lower Sample Rate Average – Same Resolution Samples – Lower Sample Rate – More Stable Sample Values

Oversample / Average Engine (OAE) Specified in bits – B bits: 2 B == N Samples – 15 bits Each Maximum Oversample – Sums N O samples Average – Sums N A samples – Divide by N A Output changes after N O x N A Samples

FRC FPGA Subsystems Analog Input Oversample / Average Accumulator Analog Trigger Digital Input / Output Slow Digital Output Hobby PWM Output I 2 C Bus Digital Input Filtering Solenoid Output Watchdog Counter / Timer SPI Engine Time / Alarm Routable Interrupt Direct Memory Access

Accumulator Use case Hardware Numerical Integration Gyro – Integrate: Angular Rate  Angle

Accumulator 64-bit Value / 32-bit Count 2 available – Hardwired to Slot 1, AI 1 and AI 2 OAE Output Center Value Deadband Value Reset to Zero

FRC FPGA Subsystems Analog Input Oversample / Average Accumulator Analog Trigger Digital Input / Output Slow Digital Output Hobby PWM Output I 2 C Bus Digital Input Filtering Solenoid Output Watchdog Counter / Timer SPI Engine Time / Alarm Routable Interrupt Direct Memory Access

Analog Trigger Use case Reflective Sensor Encoder Interrupt at Pot Value Sin-Cos Signal to Quadrature Variable Reluctance Sensor Any Analog Signal to Digital

Analog Trigger Trigger Events From Analog Signal Specify Upper and Lower Limit Source Raw or OAE Trigger State – High when Above Upper Limit – Low when Below Lower Limit – Unchanged when Between Limits (Hysteresis) In Window – Voltage between Upper and Lower Limit

Analog Trigger

Analog Trigger – Hysteresis

Analog Trigger – Hysteresis (Too Noisy)

Analog Trigger - Rollover Detection Use case Count Rollovers (Rotations) – Continuous-Turn Potentiometers – Magnetic Absolute Encoder – Any Signal that Rolls Over

Analog Trigger - Rollover Detection Jump Over Window Floating – Large Change in Value Average-Rejection Filter – 3 Point Filter Pulse Output – Rising and Falling Pulses – Cannot Read via Register; Routable Only

Analog Trigger – Rollover Detection Rising Trigger

Analog Trigger – Rollover Detection Rising Trigger, Low-Pass Filtered

Average Rejection Filter Use case Averaging Inherent in Sampling Process Perform More Averaging After Sampling – Changes the Effective Sample Rate – Increases the Effect of the Filter Balance Effective Sample Rate – Too Fast, the Filter Has Too Little Effect – Too Slow, Trigger False Positives True Slope Needs at least One Sample In Window

Average Rejection Filter

Analog Trigger – Rollover Detection Rising Trigger, Average Rejection

FRC FPGA Subsystems Analog Input Oversample / Average Accumulator Analog Trigger Digital Input / Output Slow Digital Output Hobby PWM Output I 2 C Bus Digital Input Filtering Solenoid Output Watchdog Counter / Timer SPI Engine Time / Alarm Routable Interrupt Direct Memory Access

Digital Input / Output Use case Digital Input – Limit Switches Digital Output – Jaguar Coast / Brake Control Pulse Generator – Ping Signal for Ultrasonic Sensors

Digital Input / Output 6.525us Per Sample Output Enable (Change) – 17us Delay for I/O on Both NI 9403 Modules Output Latch Configurable Before OE Output Pulse Generator – Invert Bits For Some Time Then Reset – 1.6ms Maximum

FRC FPGA Subsystems Analog Input Oversample / Average Accumulator Analog Trigger Digital Input / Output Slow Digital Output Hobby PWM Output I 2 C Bus Digital Input Filtering Solenoid Output Watchdog Counter / Timer SPI Engine Time / Alarm Routable Interrupt Direct Memory Access

Slow Digital Output Use case Spike Relay Control Robot Signal Light – Controlled by Network Status Code – Not Available 4 Outputs on I 2 C Header – Any Custom Circuits that need More Outputs

Slow Digital Output SPI Output to Sidecar Shift Registers 320us Per Update Spike Relay Control – Gated by Watchdog Robot Signal Light 4 Outputs on I 2 C Header

FRC FPGA Subsystems Analog Input Oversample / Average Accumulator Analog Trigger Digital Input / Output Slow Digital Output Hobby PWM Output I 2 C Bus Digital Input Filtering Solenoid Output Watchdog Counter / Timer SPI Engine Time / Alarm Routable Interrupt Direct Memory Access

Hobby PWM Output Use case Jaguar Motor Controller – 1x Period Multiplier – 5ms Update Victor Motor Controller – 2x Period Multiplier – 10ms Update Hobby Servo – 4x Period Multiplier – 20ms Update

Hobby PWM Output 8-bit Generator 0 == Disable Output 1 == 0.65ms High 128 == 1.5ms High 255 == 2.35ms High Period Multiplier – 1x, 2x, or 4x Gated by Watchdog

FRC FPGA Subsystems Analog Input Oversample / Average Accumulator Analog Trigger Digital Input / Output Slow Digital Output Hobby PWM Output I 2 C Bus Digital Input Filtering Solenoid Output Watchdog Counter / Timer SPI Engine Time / Alarm Routable Interrupt Direct Memory Access

I 2 C Bus Use case Hitechnic NXT Compatible Sensors – Compass – 3 Axis Accelerometer – Gyro (No Hardware Integration) Devantech Sensors – SRF08 Ultrasonic Range Finder – Compass Any Other I 2 C Compliant Sensors

I 2 C Bus Address / Register / Data Transaction Format Independent Bus Per Module 7-Bit Addresses Only Write 1 Byte Per Transaction Read 1, 2, 3, or 4 Bytes Per Transaction Clock Skewing Only On Read Between Data Bytes Slave Acknowledge Ignored Interrupt on Done

FRC FPGA Subsystems Analog Input Oversample / Average Accumulator Analog Trigger Digital Input / Output Slow Digital Output Hobby PWM Output I 2 C Bus Digital Input Filtering Solenoid Output Watchdog Counter / Timer SPI Engine Time / Alarm Routable Interrupt Direct Memory Access

Digital Input Filtering Use case Debounce Buttons Synchronize Digital Input Signals Filter Out High Frequency Noise

Digital Input Filtering 3 Filters Per Module Filter Assigned Per Channel Correlation Between Channels – Updates at End of Correlation Period – Unchanged if Input Changed During Period All Routed Digital Inputs Can Be Filtered

FRC FPGA Subsystems Analog Input Oversample / Average Accumulator Analog Trigger Digital Input / Output Slow Digital Output Hobby PWM Output I 2 C Bus Digital Input Filtering Solenoid Output Watchdog Counter / Timer SPI Engine Time / Alarm Routable Interrupt Direct Memory Access

Solenoid Output Use case Control Pneumatic Solenoids Less Space Than 4 Spikes

Solenoid Output Pass-through Gated by Watchdog

FRC FPGA Subsystems Analog Input Oversample / Average Accumulator Analog Trigger Digital Input / Output Slow Digital Output Hobby PWM Output I 2 C Bus Digital Input Filtering Solenoid Output Watchdog Counter / Timer SPI Engine Time / Alarm Routable Interrupt Direct Memory Access

Watchdog Use case Ensure That Critical Code Keeps Running Added Safety if Used Correctly Not Mandatory; Strongly Recommended Disable to Keep Motors Running At Breakpoint

Watchdog Disables Actuator Outputs Configurable Timeout Feed To Keep Alive Manual Kill – Disable Outputs Now Immortal Mode – Timeout and Manual Kill Ignored – Outputs Enabled

FRC FPGA Subsystems Analog Input Oversample / Average Accumulator Analog Trigger Digital Input / Output Slow Digital Output Hobby PWM Output I 2 C Bus Digital Input Filtering Solenoid Output Watchdog Counter / Timer SPI Engine Time / Alarm Routable Interrupt Direct Memory Access

Counter / Timer 2 Types of Counters – Dedicated 4x Quadrature Decoders 4 Available – General Purpose Counters 8 Available Signed 31-bit Value Most Recent Direction Timer On Each Counter Output

Counter / Timer (cont) Routable Input Sources – Digital Input Filter – Analog Trigger Disable (Ignore Inputs) Software Reset Value to Zero External Reset Value to Zero Routable Input

Dedicated 4x Quadrature Decoder Use case Highest Resolution Dedicated Hardware Absolute Angle – External Reset as Index Input

Dedicated 4x Quadrature Decoder A and B Channel Routable Inputs Count for Each Transition of A or B Signal 4x More Precise

1x, 2x Quadrature Decoding Counter Use case Used Up All 4x Decoding Counters Less Resolution Needed More Averaging of Encoder Speed – Fewer Timer Events Per Rotation

Up / Down Counter Use case Count Full Rotations of Rollover Sensors – Route Analog Trigger Rising and Falling Pulses Simple Counter – Disable the “Count Down” Channel

External Direction Counter Use case BaneBots Encoder Divider Kit Other Encoder Types

General Purpose Counter Counting Modes – 1x or 2x Quadrature Decoding “A” and “B” Inputs – Up / Down Counter “Count Up” and “Count Down” Inputs – External Direction “Count” and “Direction” Inputs Rising, Falling, or Both Edge Sensitivity

Semi-Period Timer Use case Echo Signal from Ultrasonic Range Sensor Duty-Cycle Measurement – If Period is Fixed, Measure High or Low Pulse – If Not, Hard to Get Consistent Sample

Pulse-Length Direction Counter Use case Allegro ATS651 Gear Tooth Sensor – Direction Information Encoded in Pulse Length – Provided in Kit in 2005 Black PCB RevNC

General Purpose Counter (cont) Special Modes – Semi-Period Primary Output is Timer Odd Counter Value Means Measurement In Progress Select High or Low Semi-Period Single Input Channel – Pulse-Length Direction Direction to Count Determined From Pulse-Length Select Pulse-Length Threshold Single Input Channel

Timer Use case Measure Speed Detect Motor Stall Time Events

Timer Time Between Counter Events – Event == Value Change Stall Detection Sample Averaging – Sliding Window – Up to 128 Samples

FRC FPGA Subsystems Analog Input Oversample / Average Accumulator Analog Trigger Digital Input / Output Slow Digital Output Hobby PWM Output I 2 C Bus Digital Input Filtering Solenoid Output Watchdog Counter / Timer SPI Engine Time / Alarm Routable Interrupt Direct Memory Access

SPI Engine Use case Interface Custom Circuits Some Sensors

SPI Engine Serial Peripheral Interface / Synchronous Serial Input and Output FIFOs – 512 Words Each Highly Configurable – Chip Select / Pre- or Post-Latch – Clock Polarity – Word Size (1-bit to 32-bit) – MSb or LSb First Streaming Interrupts – Receive Buffer Not Empty; Half Full – Transmit Buffer Half Empty; Empty and Idle

FRC FPGA Subsystems Analog Input Oversample / Average Accumulator Analog Trigger Digital Input / Output Slow Digital Output Hobby PWM Output I 2 C Bus Digital Input Filtering Solenoid Output Watchdog Counter / Timer SPI Engine Time / Alarm Routable Interrupt Direct Memory Access

Time / Alarm Use case Time – Consistent us Value Across Subsystems – Fast, Precise Benchmark Source Alarm – Interrupt Based Task Scheduling (for C++)

Time / Alarm Time – 1us Resolution – 32-bit range (71.5 Minutes) Alarm – Schedule for a Specific Time – Generate an Interrupt – Interrupt Immediately if Scheduled Time In Past

FRC FPGA Subsystems Analog Input Oversample / Average Accumulator Analog Trigger Digital Input / Output Slow Digital Output Hobby PWM Output I 2 C Bus Digital Input Filtering Solenoid Output Watchdog Counter / Timer SPI Engine Time / Alarm Routable Interrupt Direct Memory Access

Routable Interrupt Use case Interrupt on Button Timestamp An Event Some Crazy Interface We Didn’t Foresee If All Else Fails

Routable Interrupt Input Sources Routable – Digital Input Filter – Analog Trigger Latch Timestamp Wait for Acknowledge – Timestamp Will Not Change Until Acknowledge – Can be Disabled

FRC FPGA Subsystems Analog Input Oversample / Average Accumulator Analog Trigger Digital Input / Output Slow Digital Output Hobby PWM Output I 2 C Bus Digital Input Filtering Solenoid Output Watchdog Counter / Timer SPI Engine Time / Alarm Routable Interrupt Direct Memory Access

Direct Memory Access (DMA) Use case Data Streaming – FIR Filtering – Fourier Transform (Frequency Content) Snapshot of Sensor On Event – Position Observer

Direct Memory Access (DMA) Stream Data Directly to PPC Memory Sample Clock – Correlated Samples of Unrelated Data – Internally timed FPGA Clock Domain – Externally timed Routable Input Configurable Data Sources Sample Includes Timestamp Overrun Indication

Questions?