SlideShare a Scribd company logo
Joe Bungo ARM mbed Workshop
Agenda mbed Introduction to mbed Lab 1 mbed registration and hello world demo Lab 2 Rapid prototyping: Creating a file system
ARM Cortex family Cortex-A8  Architecture v7A MMU AXI VFP & NEON support Cortex-R4 Architecture v7R MPU (optional) AXI  Dual Issue Cortex-M3 Architecture v7M MPU (optional) AHB Lite & APB
Rapid Prototyping for Microcontrollers
Microcontrollers are getting  cheap 32-bit ARM Cortex-M3 Microcontrollers @ $1 Microcontrollers are getting  powerful Lots of processing, memory, I/O in one package Microcontrollers are getting  interactive   Internet connectivity, new sensors and actuators Creates new opportunities for microcontrollers  What’s happening in Microcontrollers?
Opportunities for Microcontrollers Before 1980 computers were used and applied by computer scientists now they are: Applied across all industries Widely used in the home Used by almost anybody Currently microcontroller technology is mainly applied by the embedded professional Microcontrollers interact with “the real world”  Sensors, actuators and communication, define their application Their potential is greater than the home computer
Barriers for Microcontrollers What prevents microcontrollers from being designed in? Conceptually simple things can be hard to prototype I want to send an SMS when my cat comes through the cat flap Repetition of choices to make: Microcontroller Tool chain Dev board Sensors It’s not difficult, but can be tedious and time consuming Overhead for starting a new project Fine for a long complex projects A deterrent for quick experiments and tests
Rapid Prototyping Rapid Prototyping helps industries create new products Control, communication and interaction increasingly define products  Development cycles for microelectronics have not kept pace 3D Moulding 3D Printing 2D/3D Design Web Frameworks
Complete Hardware, Software and Web 2.0 Solution mbed Rapid Prototyping Platform Lightweight Online Compiler Prototyping Form-Factor Dedicated Developer Website High-level Peripheral APIs
mbed.org - Rapid Prototyping for MCUs Fastest way to get started with ARM microcontrollers Plug ‘n’ Play Hardware, Online Compiler Get setup and run “Hello World!” in 60 seconds Removes entry barriers to MCU technology Focused on rapid prototyping for a diverse audience DIP form-factor, High-level APIs, Developer website Technology and tradeoffs to enable fast experiments Creates new applications for MCU technology Launched at ESC Boston in Sept 2009 with live demo Internet-enabled “Twittering Billy” read out tweets An embedded internet device, prototyped in ½ day Over ¼ million video views in first week!
Dedicated Developer Web Platform Custom Web 2.0 tools and environment focused on developers Simple route to get started, comprehensive resources and support  mbed Website http://mbed.org
mbed Compiler Lightweight Online Compiler Web 2.0 browser-based IDE with personal workspace “in the cloud” Nothing to install or configure, login from anywhere Industry leading RVCT 4.0 back end. It is a real tool
mbed Library High-level Peripheral APIs Trading memory and CPU performance for ease of use Abstract software interfaces for controlling microcontroller hardware Intuitive peripheral access, encapsulation of implementation details  Treat hardware and software the same
mbed Microcontroller Cortex-M3 MCU in a Prototyping Form-Factor 0.1” pitch DIP with “USB Disk” interface and support components Nothing to install or configure, practical for breadboard and PCBs
Lab 1  mbed registration and hello world
Registration mbed microcontroller enumerates as a Mass Storage Device (USB disk) double-click the mbed.htm file on the mbed USB disk Log in or sign up for a new account The mbed microcontroller contains your license to the compiler
Getting Started Useful resources linked from the first page, including very clear links to “Hello World” and the Getting Started guide Compiler linked from front page
Getting started Create or open a project in the Program Workspace Develop code in the text editor Save and compile Compiler outputs Errors and warnings -or- A downloadable binary Save to the USB flash disk
Getting started Once the file has saved to the flash disk, it needs to be programmed into the microcontroller Press the button on the mbed module Your code will start running!
Lab 2  Rapid Prototyping: Data Logging
Example : Data Logging Applications often include data logging capabilities, and access to the data often involves custom software and interface cables. This example shows how standard methods and interfaces can be used to display, save and retrieve data from an application For the purposes of the experiment, we will be displaying and logging noise from an unconnected ADC Touching the pin will influence the noise It is a demonstration, imagine it is real data!
Example : See the data The USB connection to mbed can also be used to provide a serial port Windows requires a driver, linux and Mac “just work” http://mbed.org/handbook/SerialPC Standard C functions, printf and scanf This example displays 100 samples to a terminal application
#include “mbed.h” AnalogIn ain(p20); DigitalOut myled(LED1); int main() { for (int i=0; i<300; i++) { printf(“%.2f\n\r”, ain.read()); wait (0.05); } myled=1; }
Example : Data Logging The mbed Flash disk is accessible from user code using the LocalFileSystem object Standard C file handling techniques apply fscanf for runtime configuration fprintf for data logging purposes This example logs 100 samples to a CSV file
#include “mbed.h” AnalogIn ain(p20); DigitalOut myled(LED1); LocalFileSystem fs(“fs”); int main() { FILE *fp = fopen(“/fs/data.csv”,”w”); for (int i=0; i<300; i++) { f printf( fp, “%.2f \n ”, ain.read()); wait (0.05); } fclose(fp); myled=1; }
Data quickly visible to a PC Logging to a CSV file means Excel can open the file and interpret, manipulate or plot the data. While the program executes the flash drive disappears from the PC, and returns when the file is closed
Extend it to store lots of data Perhaps a final system might want to store lots of data SD cards are ideal, ubiquitous and recognisable by everyone Hardware for an SD Card is minimal SPI Port connection using simple breakout As before, mbed keeps it simple GND MISO – p6 SCL  - p7 Vcc MOSI – p5 nCS  - p8
Extend it to store lots of data Import the SDFileSystem Library into the project Include the SDFileSystem header Swap LocalFileSystem for SDFileSystem Everything else remains the same
What about a USB drive? USB Host hardware is minimal; a USB A connector VCC -> VU D-  -> D- D+  -> D+ GND -> GND
What about a USB drive? On your project, right click -> Import the files for MSCFileSystem http://mbed.org/users/chris/programs/MSCUsbHost/5z8fm Add #include for  MSCFileSystem Call it “fs”, as before The change in storage medium is transparent to the application
Other Cortex-M3 Development Platforms
Summary There is huge opportunity for microcontroller applications A major barrier to adoption is simple experimentation mbed helps with getting started and rapid prototyping Fast turnaround of experiments and prototyping new ideas Try out new technology and new ideas Makes the technology very accessible  Demo showed a start to finish prototyping example From getting a user started to enabling an application experiment Use at as a tool when you need to experiment!
Summary A solution focused on prototyping has a broad appeal  Engineers new to embedded applications Enables experimentation and testing product ideas for the first time Create designs where electronics and MCUs are not the focus Experienced engineers Provides a way to be more productive in the proof-of-concept stages Introduce 32 bit microcontroller technology to existing designs Marketing, distributors and application engineers Provides a consistent platform for demonstration, evaluation, support Make promotion of MCUs more effective and efficient
University Resources http://www.arm.com/support/university/ [email_address]
Fin

More Related Content

PDF
Creating IoT application using ARM mbed and NanoService solution
PDF
Developing with mbed and Bluetooth LE - Bluetooth World 2016
PDF
Global Azure Bootcamp 2019 - Bandung - Microsoft Azure as Complete Solutions ...
PPTX
Esp8266 Workshop
PDF
Raspberry Pi - Lecture 1 Introduction
PDF
Home Automation by ESP8266
PPT
XBee and RFID
PPTX
Got Python I/O: IoT Develoment in Python via GPIO
Creating IoT application using ARM mbed and NanoService solution
Developing with mbed and Bluetooth LE - Bluetooth World 2016
Global Azure Bootcamp 2019 - Bandung - Microsoft Azure as Complete Solutions ...
Esp8266 Workshop
Raspberry Pi - Lecture 1 Introduction
Home Automation by ESP8266
XBee and RFID
Got Python I/O: IoT Develoment in Python via GPIO

What's hot (20)

PPTX
Arduino vs Raspberry Pi
PDF
Taking the BeagleBone Cookbook recipes beyond BeagleBone Black
PPTX
Integrated development environment
PDF
Lesson 9- NodeMCU with Arduino UNO (UART)
PPTX
Microsoft Hello World IoT 2017 - Embedded Systems Design - Build vs Buy
PDF
Getting Started with Embedded Python: MicroPython and CircuitPython
PDF
Damien George - Micro Python - CIUUK14
ODP
Internet-of-Things with (Arduino+XBee)
PPTX
LAS16-300K2: Geoff Thorpe - IoT Zephyr
PPTX
Raspbeery Pi : An Introduction
PPTX
Arduino in TinyML with Edge Impulse
PPTX
Build WiFi gadgets using esp8266
PDF
IoT support for .NET (Core/5/6)
PPTX
Firmware analysis 101
PDF
Beginner’s Guide on How to Start Exploring IoT Security 1st Session
PDF
Beginners guide on how to start exploring IoT 2nd session
PDF
IoT support for .NET Core - IoT Saturday 2020
PPTX
Ceis101 final joshua_brown
PDF
Raspberry Pi
PDF
Programando o ESP8266 com Python
Arduino vs Raspberry Pi
Taking the BeagleBone Cookbook recipes beyond BeagleBone Black
Integrated development environment
Lesson 9- NodeMCU with Arduino UNO (UART)
Microsoft Hello World IoT 2017 - Embedded Systems Design - Build vs Buy
Getting Started with Embedded Python: MicroPython and CircuitPython
Damien George - Micro Python - CIUUK14
Internet-of-Things with (Arduino+XBee)
LAS16-300K2: Geoff Thorpe - IoT Zephyr
Raspbeery Pi : An Introduction
Arduino in TinyML with Edge Impulse
Build WiFi gadgets using esp8266
IoT support for .NET (Core/5/6)
Firmware analysis 101
Beginner’s Guide on How to Start Exploring IoT Security 1st Session
Beginners guide on how to start exploring IoT 2nd session
IoT support for .NET Core - IoT Saturday 2020
Ceis101 final joshua_brown
Raspberry Pi
Programando o ESP8266 com Python
Ad

Viewers also liked (20)

PDF
Building IoT devices with ARM mbed - RISE Manchester
PPTX
Presentation
PPTX
Los jaliles pesados
PPTX
4th ARM Developer Day Presentation
PPTX
2013 ARM Student Design Competition @RIT
PPTX
Arm rit design_comp 2014
DOCX
4th ARM Developer Day Presenters info
PPTX
RIT 2nd ARM Developer Day - Texas Instruments Presentation
PDF
Windows Azure – Building & Deploying Cloud Services
PPTX
mbed Connect Asia 2016 David Morning Welcome and Kickoff
PPT
Sistema de monitoreo multipropósito
PPTX
Matthew Bailey IoT Keynote - Future of Wireless, Humanity and our Planet
PPTX
mbed Connect Asia 2016 Developing IoT devices with mbed OS 5
PPTX
Crypto Performance on ARM Cortex-M Processors
PDF
The impact of IOT - exchange cala - 2015
PPTX
Building IoT Solutions using Windows IoT Core
PPTX
mbed Connect Asia 2016 Securing IoT with the ARM mbed ecosystem
PPTX
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
PPTX
DIY IoT: Raspberry PI 2 + Windows 10 for IoT devices + Microsoft Azure
Building IoT devices with ARM mbed - RISE Manchester
Presentation
Los jaliles pesados
4th ARM Developer Day Presentation
2013 ARM Student Design Competition @RIT
Arm rit design_comp 2014
4th ARM Developer Day Presenters info
RIT 2nd ARM Developer Day - Texas Instruments Presentation
Windows Azure – Building & Deploying Cloud Services
mbed Connect Asia 2016 David Morning Welcome and Kickoff
Sistema de monitoreo multipropósito
Matthew Bailey IoT Keynote - Future of Wireless, Humanity and our Planet
mbed Connect Asia 2016 Developing IoT devices with mbed OS 5
Crypto Performance on ARM Cortex-M Processors
The impact of IOT - exchange cala - 2015
Building IoT Solutions using Windows IoT Core
mbed Connect Asia 2016 Securing IoT with the ARM mbed ecosystem
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
DIY IoT: Raspberry PI 2 + Windows 10 for IoT devices + Microsoft Azure
Ad

Similar to 2nd ARM Developer Day - mbed Workshop - ARM (20)

PDF
ARM-ES MANUAL.pdf
PPT
mbed @ Elektor Live! 2010
PDF
JavaScript all the things - JavaScript fwdays 2018
PPTX
NXP FRDM-K64F Platform with ARM mbed Demo - Edinburgh 2016 Workshop
PPTX
mbed Connect Asia 2016 mbed HDK From prototype to production
PDF
Arm cross development_with_eclipse
PPTX
mbed Connect Asia 2016 mbed Enabled
PDF
Basics of Embedded systems presentation - lynxbee.com
PPTX
embedded-systems-for-beginners
PPTX
Embedded Systems Overview
PPTX
Embedded systems basics 8051 - project approach
PDF
Oop 2014 embedded systems with open source hardware v2
PPTX
lecture03_EmbeddedSoftware for Beginners
PPTX
Rtos for system integration
PDF
L2 B Embedded Systems
PPTX
Embedded systems-for-beginners-electro8
PPTX
1334420 634648164164717500
PPT
Embeddedsystem
PPT
Embedded system
PDF
Basics of Embedded System
ARM-ES MANUAL.pdf
mbed @ Elektor Live! 2010
JavaScript all the things - JavaScript fwdays 2018
NXP FRDM-K64F Platform with ARM mbed Demo - Edinburgh 2016 Workshop
mbed Connect Asia 2016 mbed HDK From prototype to production
Arm cross development_with_eclipse
mbed Connect Asia 2016 mbed Enabled
Basics of Embedded systems presentation - lynxbee.com
embedded-systems-for-beginners
Embedded Systems Overview
Embedded systems basics 8051 - project approach
Oop 2014 embedded systems with open source hardware v2
lecture03_EmbeddedSoftware for Beginners
Rtos for system integration
L2 B Embedded Systems
Embedded systems-for-beginners-electro8
1334420 634648164164717500
Embeddedsystem
Embedded system
Basics of Embedded System

More from Antonio Mondragon (20)

PPTX
Presentacion final
PPTX
Kuyashii poster
PPTX
Arc solutions poster
PPTX
Anura poster
PPTX
The up next
PPTX
Nomad presentation
PPTX
PPTX
Coffe eq presentation
PPTX
Umbrella cat
PPTX
Kuyashii p pt
PPTX
Arc solutions powerpoint
PPTX
Ken love presentation
PPTX
E waft presentation
PPTX
PPTX
CAN.do presentation
PPTX
Dragonfruit
Presentacion final
Kuyashii poster
Arc solutions poster
Anura poster
The up next
Nomad presentation
Coffe eq presentation
Umbrella cat
Kuyashii p pt
Arc solutions powerpoint
Ken love presentation
E waft presentation
CAN.do presentation
Dragonfruit

Recently uploaded (20)

PDF
01-Introduction-to-Information-Management.pdf
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
Open folder Downloads.pdf yes yes ges yes
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
BÀI TẬP TEST BỔ TRỢ THEO TỪNG CHỦ ĐỀ CỦA TỪNG UNIT KÈM BÀI TẬP NGHE - TIẾNG A...
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
TR - Agricultural Crops Production NC III.pdf
PPTX
master seminar digital applications in india
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
GDM (1) (1).pptx small presentation for students
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
Pharma ospi slides which help in ospi learning
PDF
Insiders guide to clinical Medicine.pdf
PPTX
Cell Structure & Organelles in detailed.
01-Introduction-to-Information-Management.pdf
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Open folder Downloads.pdf yes yes ges yes
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
O7-L3 Supply Chain Operations - ICLT Program
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
102 student loan defaulters named and shamed – Is someone you know on the list?
BÀI TẬP TEST BỔ TRỢ THEO TỪNG CHỦ ĐỀ CỦA TỪNG UNIT KÈM BÀI TẬP NGHE - TIẾNG A...
Abdominal Access Techniques with Prof. Dr. R K Mishra
TR - Agricultural Crops Production NC III.pdf
master seminar digital applications in india
O5-L3 Freight Transport Ops (International) V1.pdf
Microbial diseases, their pathogenesis and prophylaxis
GDM (1) (1).pptx small presentation for students
Anesthesia in Laparoscopic Surgery in India
Pharma ospi slides which help in ospi learning
Insiders guide to clinical Medicine.pdf
Cell Structure & Organelles in detailed.

2nd ARM Developer Day - mbed Workshop - ARM

  • 1. Joe Bungo ARM mbed Workshop
  • 2. Agenda mbed Introduction to mbed Lab 1 mbed registration and hello world demo Lab 2 Rapid prototyping: Creating a file system
  • 3. ARM Cortex family Cortex-A8 Architecture v7A MMU AXI VFP & NEON support Cortex-R4 Architecture v7R MPU (optional) AXI Dual Issue Cortex-M3 Architecture v7M MPU (optional) AHB Lite & APB
  • 4. Rapid Prototyping for Microcontrollers
  • 5. Microcontrollers are getting cheap 32-bit ARM Cortex-M3 Microcontrollers @ $1 Microcontrollers are getting powerful Lots of processing, memory, I/O in one package Microcontrollers are getting interactive Internet connectivity, new sensors and actuators Creates new opportunities for microcontrollers What’s happening in Microcontrollers?
  • 6. Opportunities for Microcontrollers Before 1980 computers were used and applied by computer scientists now they are: Applied across all industries Widely used in the home Used by almost anybody Currently microcontroller technology is mainly applied by the embedded professional Microcontrollers interact with “the real world” Sensors, actuators and communication, define their application Their potential is greater than the home computer
  • 7. Barriers for Microcontrollers What prevents microcontrollers from being designed in? Conceptually simple things can be hard to prototype I want to send an SMS when my cat comes through the cat flap Repetition of choices to make: Microcontroller Tool chain Dev board Sensors It’s not difficult, but can be tedious and time consuming Overhead for starting a new project Fine for a long complex projects A deterrent for quick experiments and tests
  • 8. Rapid Prototyping Rapid Prototyping helps industries create new products Control, communication and interaction increasingly define products Development cycles for microelectronics have not kept pace 3D Moulding 3D Printing 2D/3D Design Web Frameworks
  • 9. Complete Hardware, Software and Web 2.0 Solution mbed Rapid Prototyping Platform Lightweight Online Compiler Prototyping Form-Factor Dedicated Developer Website High-level Peripheral APIs
  • 10. mbed.org - Rapid Prototyping for MCUs Fastest way to get started with ARM microcontrollers Plug ‘n’ Play Hardware, Online Compiler Get setup and run “Hello World!” in 60 seconds Removes entry barriers to MCU technology Focused on rapid prototyping for a diverse audience DIP form-factor, High-level APIs, Developer website Technology and tradeoffs to enable fast experiments Creates new applications for MCU technology Launched at ESC Boston in Sept 2009 with live demo Internet-enabled “Twittering Billy” read out tweets An embedded internet device, prototyped in ½ day Over ¼ million video views in first week!
  • 11. Dedicated Developer Web Platform Custom Web 2.0 tools and environment focused on developers Simple route to get started, comprehensive resources and support mbed Website http://mbed.org
  • 12. mbed Compiler Lightweight Online Compiler Web 2.0 browser-based IDE with personal workspace “in the cloud” Nothing to install or configure, login from anywhere Industry leading RVCT 4.0 back end. It is a real tool
  • 13. mbed Library High-level Peripheral APIs Trading memory and CPU performance for ease of use Abstract software interfaces for controlling microcontroller hardware Intuitive peripheral access, encapsulation of implementation details Treat hardware and software the same
  • 14. mbed Microcontroller Cortex-M3 MCU in a Prototyping Form-Factor 0.1” pitch DIP with “USB Disk” interface and support components Nothing to install or configure, practical for breadboard and PCBs
  • 15. Lab 1 mbed registration and hello world
  • 16. Registration mbed microcontroller enumerates as a Mass Storage Device (USB disk) double-click the mbed.htm file on the mbed USB disk Log in or sign up for a new account The mbed microcontroller contains your license to the compiler
  • 17. Getting Started Useful resources linked from the first page, including very clear links to “Hello World” and the Getting Started guide Compiler linked from front page
  • 18. Getting started Create or open a project in the Program Workspace Develop code in the text editor Save and compile Compiler outputs Errors and warnings -or- A downloadable binary Save to the USB flash disk
  • 19. Getting started Once the file has saved to the flash disk, it needs to be programmed into the microcontroller Press the button on the mbed module Your code will start running!
  • 20. Lab 2 Rapid Prototyping: Data Logging
  • 21. Example : Data Logging Applications often include data logging capabilities, and access to the data often involves custom software and interface cables. This example shows how standard methods and interfaces can be used to display, save and retrieve data from an application For the purposes of the experiment, we will be displaying and logging noise from an unconnected ADC Touching the pin will influence the noise It is a demonstration, imagine it is real data!
  • 22. Example : See the data The USB connection to mbed can also be used to provide a serial port Windows requires a driver, linux and Mac “just work” http://mbed.org/handbook/SerialPC Standard C functions, printf and scanf This example displays 100 samples to a terminal application
  • 23. #include “mbed.h” AnalogIn ain(p20); DigitalOut myled(LED1); int main() { for (int i=0; i<300; i++) { printf(“%.2f\n\r”, ain.read()); wait (0.05); } myled=1; }
  • 24. Example : Data Logging The mbed Flash disk is accessible from user code using the LocalFileSystem object Standard C file handling techniques apply fscanf for runtime configuration fprintf for data logging purposes This example logs 100 samples to a CSV file
  • 25. #include “mbed.h” AnalogIn ain(p20); DigitalOut myled(LED1); LocalFileSystem fs(“fs”); int main() { FILE *fp = fopen(“/fs/data.csv”,”w”); for (int i=0; i<300; i++) { f printf( fp, “%.2f \n ”, ain.read()); wait (0.05); } fclose(fp); myled=1; }
  • 26. Data quickly visible to a PC Logging to a CSV file means Excel can open the file and interpret, manipulate or plot the data. While the program executes the flash drive disappears from the PC, and returns when the file is closed
  • 27. Extend it to store lots of data Perhaps a final system might want to store lots of data SD cards are ideal, ubiquitous and recognisable by everyone Hardware for an SD Card is minimal SPI Port connection using simple breakout As before, mbed keeps it simple GND MISO – p6 SCL - p7 Vcc MOSI – p5 nCS - p8
  • 28. Extend it to store lots of data Import the SDFileSystem Library into the project Include the SDFileSystem header Swap LocalFileSystem for SDFileSystem Everything else remains the same
  • 29. What about a USB drive? USB Host hardware is minimal; a USB A connector VCC -> VU D- -> D- D+ -> D+ GND -> GND
  • 30. What about a USB drive? On your project, right click -> Import the files for MSCFileSystem http://mbed.org/users/chris/programs/MSCUsbHost/5z8fm Add #include for MSCFileSystem Call it “fs”, as before The change in storage medium is transparent to the application
  • 32. Summary There is huge opportunity for microcontroller applications A major barrier to adoption is simple experimentation mbed helps with getting started and rapid prototyping Fast turnaround of experiments and prototyping new ideas Try out new technology and new ideas Makes the technology very accessible Demo showed a start to finish prototyping example From getting a user started to enabling an application experiment Use at as a tool when you need to experiment!
  • 33. Summary A solution focused on prototyping has a broad appeal Engineers new to embedded applications Enables experimentation and testing product ideas for the first time Create designs where electronics and MCUs are not the focus Experienced engineers Provides a way to be more productive in the proof-of-concept stages Introduce 32 bit microcontroller technology to existing designs Marketing, distributors and application engineers Provides a consistent platform for demonstration, evaluation, support Make promotion of MCUs more effective and efficient
  • 35. Fin

Editor's Notes

  • #6: First let’s talk about what’s happening in microcontrollers these days. Microcontrollers are now getting very cheap. A Cortex M3 MCU can now be bought for around $1, compared to something similar that would cost around $10 in the past. This type of pricing is sure to drop even lower with coming Cortex-M0 MCUs. Compared with previous generations of microcontrollers that performed in the tens of MHz, and with modest Flash/SRAM (32kB/8kB), Cortex-M3 MCUs can be found with 512kB Flash and 64kB SRAM, running around 100MHz. They also contain a rich set of peripherals like USB, Ethernet, SPI, I2C, I2S, UART, CAN, PWM, Analogue I/O, and of course lots of GPIO. With the Ethernet and USB interfaces comes internet connectivity. You also have sensors and actuators for things like RFID readers, touch screen LCD, and MEMS devices. Of course, all of these things create new opportunities for MCUs.
  • #7: - Before the computer revolution of the 1980s computers were really only used by scientists. 25+ years after the revolution, computers are everywhere, in all industries, in almost all homes, accessible and usable by almost anyone. - Much like computers back in the days, microcontrollers are now solutions looking for problems and applications. Traditionally, the people applying them are the embedded engineers, however, we’re seeing that change. Product designers who have no embedded engineering backgrounds are now envisioning and finding ways that MCUs can solve problems and improve applications. One example are the smart shoes Adidas put out a few years ago with the MCUs to intelligently adjust the cushioning depending on the users running style. - MCUs interact with the real world through sensors, actuators and other communication technology, and they often do so invisibly without even being noticed. Their scope of application is potentially far greater than that of the home computer. In fact as I mentioned before, the number of embedded applications and processors already exceeds all other types of applications combined.
  • #8: Now let’s talk about barriers for MCUs. - It’s relatively easy to identify a problem, and come up with a solution that might be implemented with an MCU, but the reality is that it is difficult to experiment and prototype quickly. - When starting an embedded project you have a number of choices you usually have to make. They may not be complex, but they can be tedious, time-consuming, and may feel unnecessary if you just want to quickly experiment. Someone new to MCUs might not understand the choices that they have to make, and may be overwhelmed with options which may not even be relevant to their project. - Along with that is a certain amount of overhead in starting a new project. Setting up the tools, configuring hardware, configuring debug interfaces. This is okay for a long term project, but for quick experiments, the overhead may be the most time consuming part!
  • #9: In general, how do we get products and designs to market quickly? The faster we can prototype a product, the faster it can come to market. If you examine most industries, whether it be making kids toys, automobiles, or software, there’s all sorts of new prototyping methods for speeding time to market. - For example With 3D moulding and printing, you can move from a CAD design to a high quality prototype using machines not much bigger than a copy machine. Universities are actually pretty big on this. I’m sure there’s way that for a modest fee, you can submit CAD designs to online printing houses and get prototypes days later in the mail. - If you look at prototyping microelectronics in the past say, 10 years, not a lot has changed. It’s still time-consuming to design schematics, lay out it out on a PCB, send it for manufacture. And only then can you start to write the software.
  • #10: One ARM-based development platform has been designed specifically to speed up prototyping. The platform is called mbed, and was actually created by some internal R&amp;D engineers at ARM. Mbed helps to speed up prototyping by providing a complete online-developer platform, which allows developers to quickly communicate with each other, share code, and ask questions in a forum, all regarding the same piece of hardware As well, all of the compilation tools are web-based, going along with the idea of cloud computing. There’s a number of advantages to this model, especially in an academic setting, most obvious is the ability to access your tools and code from any machine with an internet connection Additionally, all of the peripherals on the MCU are highly-abstracted, hiding a lot of the nasty assembly-level details and libraries, and allows you to easily program very high-level C++ as we’ll see a few examples of And of course, the board itself comes in a prototyping form-factor with all the peripherals pinned out so you can plug it into a bread-board and wire it up to other devices.
  • #11: Nothing really to add to the slide text
  • #12: So here’s what the website looks like. - There’s active forums for tech support and discussing ideas. - You have something called Cookbooks for publishing projects and code There’s Handbooks which are complete reference for the interfaces, the APIs, and the board specs. There’s Blogs to keep you updated with what is happening in the world of mbed.
  • #13: Again, the compiler is cloud-based, meaning it and all of your code live online and not locally on your machine. Of course this means there’s software tool zero installation overhead, one of the barriers we discussed before. You can think of it like web mail, pick up where you left off, hop from computer to the next. The back end is ARM’s industry standard tools called RVCT 4.0 (or RealView Compilation tools) that has it’s flags and options all defaulted. It is also a full license, not an evaluation licence, so it doesn’t expire, and you can produce images for as large as the memory on the board.
  • #14: Let’s talk a little bit more about the libraries. You have high-level API libraries for all of the peripherals written in C++, which abstract away all of the nasty implementation details.. It makes writing software very quick and easy, as you don’t need to troll through hundreds of pages of the MCU’s User Guide. The pin out cards you have there make it obvious, for instance, where the SPI blocks are and how you wire them. In software, its a similar idea– you have a pre-defined C++ SPI object declared with the pins specified. The idea here is that the representation of an interface is the same in software as it is in hardware. It keeps things clean and simple. You can swap the pins in the software, swap the declaration, and your code will work in the new location.
  • #15: And for the board itself, it has .1” pins in a DIP for easily plugging into breadboards, and has a USB flash Disk where your images will be loaded to over USB and pulled from by the MCU. The important headlines are : 0.1” pitch, ideal for breadboard, and stripboard Powered over USB USB flash disk for programming debug via LEDs and Serial over USB You can access the USB file system from your code, a great feature for data logging or runtime configuration
  • #16: Here is where we do a live demo. Plug in mbed Go to the website, Getting Started Downloading A program Compiling a Program Take the tour Handbook Cookbook Forum Blog
  • #17: When you connect the mbed board, it presents itself as a standard USB Flash disk which the operating system can communicate with. This means that it can be plugged into a PC, Mac or Linux machine with no additional drivers. The flash disk contains an HTML file that, when clicked, will open a web browser and direct you to http://mbed.org, where you can sign up for an account, or log in if you already have one. The mbed Microcontroller contains a license that can be used to create exactly one mbed user account.
  • #18: On the front page of the mbed website are some useful resources. These are aimed at getting the new user up to speed as quickly as possible. The first of these is a pre-built binary which can be saved to the mbed Microcontroller and run. It is a simple LED blinking program that proves that the binary is being downloaded and run correctly. Next is the getting started guide. This is a walkthrough tour leading all the way through to compiling and running your first simple program. It should be possible for a new user to have run through all these steps in a just a few minutes.
  • #19: “ DigitalOut myled(LED1)” creates the object “myled” of class “DigitalOut”, passing it parameter “LED1” which is associated with the LED1 on board. ---------------- The online compiler is a very simple IDE with RVCT installed on the web server back end. All of the options have been preset and are not configurable. All the files are stored on the server, and all the editing is done locally, so the only internet traffic is when loading or saving files, or downloading a completed binary. Being a regular compiler its output is what you’d expect. Errors and warnings with line numbers, and hints as to how your code is wrong, or a completed binary, ready to be saved to your mbed Microcontroller.
  • #20: It is important to understand that the USB interface is a separate entity to the microcontroller running the binary. When you save a binary to the mbed flash drive, you have done just that, stored a file on a flash drive. When you press the reset button on the mbed, the last binary file to have been saved onto the flash drive will be loaded into the microcontrollers memory, and run. You can store other types of file on the USB flash disk, they will be ignored. Keep in mind that the flash drive has just 2Mb capacity.
  • #22: The USB flash drive which you save your binary files to is accessible from your program, using standard C functions fopen, fread, fwrite, fseek, fclose. When your program is using the flash disk, it will temporarily disappear from the PC, and will return when the files are closed. This has proven to be a very useful feature for prototyping features such as run time configuration of a program, reading command files and of course data logging application. The base class “FileSystem” can be derived to work on any storage which can be exposed as block read/write. An SDCard class already exists, and other variants such as discrete SPI flash are easily possible.
  • #23: The USB flash drive which you save your binary files to is accessible from your program, using standard C functions fopen, fread, fwrite, fseek, fclose. When your program is using the flash disk, it will temporarily disappear from the PC, and will return when the files are closed. This has proven to be a very useful feature for prototyping features such as run time configuration of a program, reading command files and of course data logging application. The base class “FileSystem” can be derived to work on any storage which can be exposed as block read/write. An SDCard class already exists, and other variants such as discrete SPI flash are easily possible.
  • #25: To open a file, we need to use the fopen function, which returns a file pointer in this case *fp.
  • #29: The USB flash drive which you save your binary files to is accessible from your program, using standard C functions fopen, fread, fwrite, fseek, fclose. When your program is using the flash disk, it will temporarily disappear from the PC, and will return when the files are closed. This has proven to be a very useful feature for prototyping features such as run time configuration of a program, reading command files and of course data logging application. The base class “FileSystem” can be derived to work on any storage which can be exposed as block read/write. An SDCard class already exists, and other variants such as discrete SPI flash are easily possible.
  • #31: MSC = Mass Storage Class The important point here is similar to when we introduced the LocalFileSystem, that there are very few changes.
  • #36: FIN means “end” in French. It’s a mock of French Indie films who seem to think it’s kind of a “posh” way to end films.