University Programs Knowledge Base

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

University Programs Knowledge Base

Discussions

Sort by:
A look at interrupts in a microcontroller from a generic point of view. This will be used to put the other videos relating to interrupts of the ARM core in context.
View full article
How to interrupt the core from a core peripheral.... The Systick Timer.
View full article
How to interrupt the core from a a peripheral outside of the core - TPM overflow
View full article
In this training video we will examine some concepts in approaching a vehicle control system.  This includes the stages in data flow and update rates of the control software.   The concept of differential steering will be introduced.
View full article
Using Header(.h) files provided by Freescale inside CodeWarrior - Blinking an LED
View full article
In this video we will look at the example code provided for the FRDM-TFC for use with Codewarrior.  
View full article
How to create a basic project from scratch in Codewarrior for the the Freedom board. View Video Link : 1459
View full article
El presente proyecto busca solucionar de una manera práctica y divertida actividades de terapia que pueden ser parte de la vida de cada persona con necesidades especiales, especialmente infantes. Por medio de este proyecto se pretende desarrollar la memoria y el orden lógico. Utilizando un sensor óptico para la lectura de pequeños Cubos de colores, el carro donde será transportado el sensor óptico emitirá una nota musical, misma que dependerá del color del cubo. El equipo de trabajo está conformado por cuatro   estudiantes del Tecnologíco de Monterrey de primer semestre de la carrera de mecatronica.
View full article
ARM University Programs Lab-in-a-Box (LiB) Freescale and ARM University Programs have teamed up to provide you the Lab in a Box.  If you are interested in adopting the Lab-in-a-Box (LiB) in your course please contact the ARM University Program to request a donation! Development Boards The FRDM-KL25Z is an ultra-low-cost development platform enabled by Kinetis L Series KL1x and KL2x MCUs families built on ARM® Cortex™-M0+ processor. Features include easy access to MCU I/O, battery-ready, low-power operation, a standard-based form factor with expansion board options and a built-in debug interface for flash programming and run-control. The FRDM-KL25Z is supported by a range of Freescale and third-party development software. Freedom Development Platform Lab Exercise for Freescale Freedom KL25Z Board Software Tools ARM offers the Keil Microcontroller Development Kit (MDK-ARM) for ARM powered microcontrollers. It features the industry-standard compiler from ARM, the Keil µVision IDE, and sophisticated debug and data trace capabilities. MDK-ARM offers tailored support for all Cortex-M processor-based devices, and is the recommended solution for students working with standard ARM-based MCU devices. We suggest that students and universities download the free evaluation version of the tools, which offers all the features of the standard version, but with a 32 KByte object code/data limit. Keil Microcontroller Development Kit (MDK-ARM) Textbooks The Definitive Guide to the ARM Cortex-M0 In English, by Joseph Yiu Published by Newnes ISBN-10: 0123854776 ISBN-978-0123854773 C Programming for Embedded Microcontrollers In English, by Warwick A. Smith Published by Elektor ISBN: 978-0-905705-80-4Other ARM-related Books Teaching Materials Teaching Slides ARM Processors and Architectures Comprehensive Overiew - 2012 ARM Processors and Architectures Fundamentals Lab Manuals and Exercises Lab Exercises for Cortex-M4 Freescale Kinetis using Keil MDK Lab Exercises for Cortex-M0+ Freescale Freedom KL25Z Board Application Notes for Students and Faculty AN234: Migrating from PIC Microcontrollers to Cortex-M Other Projects and Resources Variety of Resources and Middleware from onARM Projects-Lab.com - Ideas for Design Projects Other ARM Projects
View full article
How does a DC Motor work? The DC motor is a machine that transforms electric energy into mechanical energy in form of rotation. Its movement is produced by the physical behavior of electromagnetism. DC motors have inductors inside, which produce the magnetic field used to generate movement. But how does this magnetic field changes if DC current is being used? An electromagnet, which is a piece of iron wrapped with a wire coil that has voltage applied in its terminals. If two fixed magnets are added in both sides of this electromagnet, the repulsive and attractive forces will produce a torque. Then, there are two problems to solve: feeding the current to the rotating electromagnet without the wires getting twisted, and changing the direction of the current at the appropriate time. Both of these problems are solved using two devices: a split-ring commutator, and a pair of brushes. As it can be seen, the commutator has two segments which are connected to each terminal of the electromagnet, besides the two arrows are the brushes which apply electric current to the rotary electromagnet. In real DC motors it can be found three slots instead of two and two brushes. This way, as the electromagnet is moving its polarity is changing and the shaft may keep rotating. Even if it is simple and sounds that it will work great there are some issues which make these motors energy inefficient and mechanically unstable, the principal problem is due to the timing between each polarity inversion. Since polarity in the electromagnet is changed mechanically, at some velocities polarity is changing too soon, which result in reverse impulses and sometimes in changing too late, generating instantaneous “stops” in rotation. Whatever the case, these issues produce current peaks and mechanical instability. How a DC motor can be controlled? DC motors have only two terminals. If you apply a voltage to these terminals the motor will run, if you invert the terminals position the motor will change its direction. If the motor is running and you suddenly disconnect both terminals the motor will keep rotating but slowing down until stopping. Finally if the motor is running and you suddenly short-circuit both terminals the motor will stop. So there is not a third wire to control a DC motor, but knowing the previous behaviors it can be designed a way to control it, and the solution is an H-bridge. Look at the last evolution of the DC Motor above, you can observe that there are four gates and a motor connected between them. This is the simplest H-bridge, where the four gates represent for transistors. By manipulating these gates and connecting the upper and lower terminals to a voltage supply, you can control the motor in all the behaviors as below. Things to Consider When Using Motors With the Motor and Line scan Camera hooked up to the same board there is a significant problem with noise. The higher you turn the PWM on your drive motors the noise produced and the worse the data will appear from the camera. TO significantly reduce this noise you can simply solder an inductor directly across the 2 drive motors. This will allow you to increase the speed of the car without significantly affecting the data you receive back from the camera.
View full article
On September 14-15, 2015, The Freescale Cup Worldwide Finals will be held at the Fraunhofer Institute of Integrated Circuits (Fraunhofer IIS) in Erlangen, Germany You can follow along and see the regional champion teams from South Korea, China, India, Taiwan, Malaysia, Mexico, Brazil, USA and Switzerland train and compete for the World Title. Agenda of the event covered by the LiveCast is (all times are Central Europe Time): September 14th 14:00 - 15:00 Opening Ceremony 15:00 - 17:30 Training Session 17:30 - 18:00 High Schools and Innovation Challenge Demonstrations September 15th 9:00 - 13:00 Training Session 13:00 - 14:30 Technical Inspection and preparation for the Finals Race 14:30 - 15:00 Finals Race 15:00 - 15:45 Preparation for the Awards 15:45 - 17:30 Awards Ceremony Download and print the attached poster with the embedded QR-Code for posting the link of the LiveCast Direct LiveCast URL is http://www2.iis.fraunhofer.de/freescale
View full article
This tutorial covers the details of Blinking an LED on the TRK-MPC5604B: MPC5604B StarterTRAK evaluation board. It will introduce the evaluation board, and some basic CodeWarrior features. Overview Hardware Set up the Software Development Environment A. Download and Install Codewarrior B. Download and Install Drivers Sample Code Serial Debugging: I made the hardware modifications for serial debugging: I did not make the hardware modifications for serial debugging: Download/Debug/Run Learning Step: LED Code Description Functions Blink the LED(s): Other Qorivva Tutorials Useful Links to Technical Data Overview In this exercise students will run sample code and build an application which enables testing of the Qorivva TRK-MPC5604B board. Students will: Configure the Software Development Environment Configure the evaluation board hardware Learn how to open CodeWarrior project example files Build a project Download and run the code on TRK-MPC5604B board Learn how to utilize the GPIO Peripheral to blink a LED   To successfully complete this exercise, students will need the following board and development environment. TRK-MPC5604B evaluation board CWX-MPC-5500P-EX: Evaluation: CodeWarrior for MPC55xx/MPC56xx Microcontrollers V2.8 (Classic) RAppID initialization Tool P&E Micro Driver Software Hardware Read the MCU 101: LEDs article for general information on LED circuits. The LED's are located on the board and visible in the board schematic on page 4 as below: This schematic is found here. Set up the Software Development Environment There are several steps necessary to prepare the evaluation board and PC for microcontroller programming and development. Interfacing the evaluation board with a PC requires downloading and installing the CodeWarrior IDE, as well as the device drivers for programming the microcontroller via USB. A. Download and Install Codewarrior Before completing this example project, download and install CodeWarrior for MPC56xx 2.8 or the latest version. B. Download and Install Drivers In addition to CodeWarrior, it may (needs verified) be necessary to install one or both of the following tools: RAppID initialization tool- RAppID comes on the DVD provided with your evaluation board. In the main directory of the DVD, click on the "TRK_MPC5604B.html" file to open the DVD interface which provides user manuals, software, schematics and documentation for the evaluation board. P&E Microcomputer Systems, Inc drivers- P&E is a a computer driver for the TRK-MPC5604B device, enabling evaluation board programming via USB through the CodeWarrior debug OSJTAG interface. This driver can be downloaded here Because this isn't found on the disk. Sample Code To use the Hyperterminal communications features described in the following sections and in the attached sample code you must populate the U5 on your TRK-MPC5604B board. Qorivva Sample Code Download Serial Debugging: To use hyperterminal style debugging through the Serial port you must populate U5 with a RS232 transceiver and C55. I made the hardware modifications for serial debugging: From the Start menu Run the hyper terminal by using All programs> Accessories> Communications> HyperTerminal and make COMx properties port s ettings as Baud rate 115200, Data bits 8, Parity None, Stop bits 1 and Flow control None. 8. In the project menu select make (or F7) you will get few warning messages. I did not make the hardware modifications for serial debugging: In the project menu select MAKE (or F7) you will get few warning messages and can ignore them. Next select Debug option (or F5) from project menu. The debug window opens with few sub windows such as Code, Status and CPU etc. To run the program, select the Source GO menu button. Note: Much of the code in the sample file is utilized to send and receive messages serially. Some quick, minor changes can be applied as follows: Open main.c within the for loop, remove or comment out all the code. Now, manually call the specific function desired, in this case: for (; ; )      {           LED();      } Download/Debug/Run In sample.mcp project manager window target selection window is set to the default RAM. This means the code runs in the RAM. This target option can be changed using the drop down menu to internal_FLASH. This means the code runs in the flash and this code can run without debugger when the board is powered up. You can select either RAM target or internal_FLASH target for the following test procedure. If you select internal_FLASH target you can test the standalone operation of the board. If you encounter errors, look in the Problems view and resolve them. You can ignore any warnings. If the project builds correctly, it is time to download to the board and watch it work. Ensure that the USB cable that came with the board connects the board to the host computer’s USB port. There are multiple ways to issue the Debug command. Right click the project in the projects view and choose Debug As->CodeWarrior Download. Alternatively, y go to the Run menu and choose Debug (F11). Learning Step: LED Code Description Within the sample code, there is a for loop which calls a switch statement. With working hyper-terminal and proper serial connector interface into a PC, entering the numerical characters "1" - "9" into the hyper-terminal will call each separate function initiating the following actions Blinks Leds & outputs text strings to hyperterminal Calls the Switch function - which sends text strings to hyperterminal indicating which switch has been pressed Calls the Servo function which sweeps the servo back and forth; sends text strings to hyperterminal Calls the motor function which enables and disables the left motor; sends status text strings to hyperterminal Calls the motor function which enables and disables the right motor; sends status text strings to hyperterminal Calls the Camera function which sends the correct signals to the camera and reads the data; sends status text strings to hyperterminal Calls the Left_Motor_Current function; sends status text strings to hyperterminal Calls the Right_Motor_Current function; sends status text strings to hyperterminal   (hyperterminal code documentation needs verified ) TransmitData("\n\r**The Freescale Cup**");         TransmitData("\n\r*********************");         TransmitData("\n\r1.Led\n\r");         TransmitData("2.Switch\n\r");         TransmitData("3.Servo\n\r");         TransmitData("4.Motor Left\n\r");         TransmitData("5.Motor Right\n\r");         TransmitData("6.Camera\n\r");         TransmitData("7.Left Motor Current\n\r");         TransmitData("8.Right Motor Current");         TransmitData("\n\r**********************"); option = ReadData(); option = 1;     switch(option)         {             case '1':                 LED();             break;             case '2':                 SWITCH();             break;             case '3':                 SERVO();             break;             case '4':                 MOTOR_LEFT();             break;             case '5':                 MOTOR_RIGHT();             break;             case '6':                 CAMERA();             break;             case '7':                 LEFT_MOTOR_CURRENT();             break;             case '8':                 RIGHT_MOTOR_CURRENT();             break;             default:             break;          } As visible from the schematic - the LED's are accessed via the following ports. Hardware Chip Port/Pin Comment LED1 PE4 LED2 PE5 LED3 PE6 LED4 PE7 Functions The following function is utilized in the code to blink the LED's This function is located in main.c void LED(void) {    SIU.PCR[68].R = 0x0200;  /* Program the drive enable pin of LED1 (PE4) as output*/    SIU.PCR[69].R = 0x0200;  /* Program the drive enable pin of LED2 (PE5) as output*/    SIU.PCR[70].R = 0x0200;  /* Program the drive enable pin of LED3 (PE6) as output*/    SIU.PCR[71].R = 0x0200;  /* Program the drive enable pin of LED4 (PE7) as output*/    TransmitData("****Led Test****\n\r");    TransmitData("All Led ON\n\r");    Delayled();    SIU.PGPDO[2].R |= 0x0f000000;  /* Disable LEDs*/    SIU.PGPDO[2].R &= 0x07000000;  /* Enable LED1*/    TransmitData("Led 1 ON\n\r");    Delayled();    SIU.PGPDO[2].R |= 0x08000000;  /* Disable LED1*/    SIU.PGPDO[2].R &= 0x0b000000;  /* Enable LED2*/    TransmitData("Led 2 ON\n\r");    Delayled();    SIU.PGPDO[2].R |= 0x04000000;  /* Disable LED2*/    SIU.PGPDO[2].R &= 0x0d000000;  /* Enable LED3*/    TransmitData("Led 3 ON\n\r");    Delayled();    SIU.PGPDO[2].R |= 0x02000000;  /* Disable LED3*/    SIU.PGPDO[2].R &= 0x0e000000;  /* Enable LED4*/    TransmitData("Led 4 ON\n\r");    Delayled();    SIU.PGPDO[2].R |= 0x01000000;  /* Disable LED4*/ } Code Details: SIU - System Integration Unit PCR - Port Configuration Register PGPDO - Parallel GPIO Pad Data Output Registers : definition From viewing the user manual, under Functional port pin descriptions, it is Blink the LED(s): Within the main find the infinite for loop. for ( ; ; )      {      } loop of Main.c, remove all code, and add the LED's with the following function: for(;;) { LED(); } To alter the behavior of the LEDs, change the function itself, or pull specific code from the function and insert it within loops of a program for testing purposes. LED's are often used for testing important parts of an algorithm. By connecting an oscilloscope to a LED, it is possible to test the duration of a key algorithm, or to verify if signal timing is as expected along with the visual cue. Other Qorivva Tutorials Qorivva: Drive DC Motor Tutorial Qorivva: Turning A Servo Qorivva: Line Scan Camera Tutorial Useful Links to Technical Data TRK-MPC5064B Freescale Webpage TRK-MPC5064B Freescale Reference Manual TRK-MPC5064B Freescale Schematic
View full article
Academic Textbooks Collection of textbooks related to or using Freescale processors and/or covering general embedded engineering concepts. Additional resources including lab manuals, sample projects and more are available in the Faculty Portal.  These resources are only available to to verified faculty partners. 32-bit Microprocessor and Microcontrollers Kinetis (ARM Cortex-M) Title: uC/OS-III The Real Time Kernel for the Kinetis Cortex M4 Author: Jean Labrosse ISBN:9780982337523 Publisher: Micrium Press Released: 2011 ColdFire™ (MC51xx, MC52xx, MC53xx, MC54xx) Title: ColdFire Microprocessors and Microcontrollers Author: Munir Bannoura, Rudan Bettelheim, Richard Soja ISBN: 0976297302 Publisher URL: www.amtpublishing.com Released: 2006 Power™ Architectures (MC5xx, MC55xx) Title: MPC5554/MPC5553 Revealed Author: Munir Bannoura, Richard Soja ISBN: 0976297353 Publisher URL: www.amtpublishing.com Released: 2005 Title: eTPU Programming Made Easy  **Now Available in Japanese Author: Munir Bannoura, Margaret Frances ISBN: 0976297310 Publisher URL: www.amtpublishing.com Released: 2004 Title: TPU Microcoding for Beginners Author: Amy Dyson, Munir Bannoura ISBN: Publisher URL: www.amtpublishing.com Released: 1999 Digital Signal Processing Title: DSP for Embedded and Real-Time Systems Author: Robert Oshana ISBN: 9780123865359 Publiser: Elsevier Released: 2012 Title: DSP Filter Cookbook (Electronics Cookbook Series) Author: John Lane, Jayant Datta, Brent Karley, Jay Norwood ISBN: 0790612046 Publisher URL:  No Data Released: 2004 Title: Digital Signal Processing Fundamentals Author: Ashfaq Khan ISBN: 1584502819 Publisher URL: www.oup.com/us/he Released: 2000 Title: Digital Signal Processing Applications with Motorola's DSP56002 Processor Author: Mohammed El-Sharkawy ISBN: 0135694760 Publisher URL:  No Data Available www.oup.com/us/he Released: 1996 Title: Foundations of Digital Signal Processing: Theory, Algorithms and Hardware Design Author: Patrick Gaydecki ISBN-10: 0852964315 ISBN-13: 978-0852964316 Publisher: IEE; General 32-bit topics Title: Modern Micoprocessors 3rd Edition Author: V. Korneev / A.Kiselev ISBN: 1584503688 Publisher URL: www.charlesriver.com Released: 2004 Title: Micrcontrollers and Microcomputers: Principles of Software and Hardware Engineering Author: Fredrick M. Cady ISBN: 0195110080 Publisher URL: www.oup.com/us/he Released: 1997 Title: Programming Microcontrollers in C Author: Ted Van Sickle ISBN: 1878707140 Publisher URL: Released: 1994 Title: Real-Time Programming: A Guide to 32-bit Embedded Development Author: Rick Grehan, Ingo Cyliax, Robert Moote ISBN: 0201485400 Publisher URL:  www.aw.com Released: 1998 Title: Embedded Systems Design: A Unified Hardware/Software Introduction Author: Frank Vahid, Tony D. Givargis ISBN: 0471386782 Publisher URL:  No Data Available Released: 2001 Title: Microcontrollers in Practice Author: Marian Mitescu ISBN: 3540253017 Publisher URL:  No Data Available Released: 2005 Title: Embedded Systems Architecture: A Comprehensive Guide for Engineers and Programmers Author: Tammy Noergaard ISBN: 0750677929 Publisher URL:  books.elsevier.com/newnes/ Released: 2005 Title: MEMS: Applications Author: Mohamed Gad-el-Hak ISBN: 0849391393 Publisher URL:  crcpress.com Released: 2005 Title: High-Performance Embedded Computing: Architectures, Applications, and Methodologies Author: Wayne Wolf ISBN: 012369485X Publisher URL:  No Data Available Released: 2006 Title: Hardware and Computer Organization Author: Arnold S. Berger ISBN: 0750678860 Publisher URL:  www.elsevier.com Released: 2005 8- and 16-bit Microcontrollers HCS12 Title:  Microcontroller Programming For Engineers Author: Harlan Talley ISBN-13: 978-0-557-09570-4 Publisher URL: http://lulu.com Released: 2009 Title:  Learning by Example Using C – Programming the DRAGON12-Plus Author: Richard E. Haskell and Darrin M. Hanna ISBN: Publisher URL: http://www.lbebooks.com Released: Title:  Learning by Example Using C – Programming the mini DRAGON12 Author: Richard E. Haskell and Darrin M. Hanna ISBN: Publisher URL: http://www.lbebooks.com Released: Title:  HCS12 Microcontrollers and Embedded Systems Author: Muhammad Ali Mazidi, Danny Causey, Janice Mazidi ISBN: 978013672294 Publisher URL: http://www.pearsonhighered.com Released: 2008 Title: Assembly and C Programming for the Freescale HCS12 Microcontroller Second Edition Author: Fredrick M. Cady ISBN: 9780195308266 Publisher URL: www.oup.com/us/he Released: 2007 Title: The HCS12/9S12, An Introduction to Hardware and Software Interfacing Author: Han-Way Huang ISBN: 1401898122 Publisher URL: http://www.delmarlearning.com/electronics/ Released: 2006 Title: Embedded Microcomputer Systems: Real Time Interfacing 2nd Edition Author: Jonathan W. Valvano ISBN: 0534551629 Publisher URL: http://engineering.thomsonlearning.com/ Released: 2006 Title: MicroC/OS-II: The Real-Time Kernel Author: Jean J. Labrosse ISBN: 1578201039 Publisher URL: www.cmpbooks.com Released: 2002 HCS08 Title: Microcomputer Architecture - Low Level Programming Methods and Applications of the M68HC908GP32 Author: Dimosthenis E. Bolanakis, Euripidis Glavas, Georgios A. Evangelakis, Konstantinos T. Kotsis, Theodore Laopoulos ISBN: 978-960-93-4536-1 (English version of the book) ISBN: 978-960-357-101-8 (Greek version of the book: delivered with an educational board) Title: HCS08 Unleashed: Designer's Guide To the HCS08 Microcontrollers Author: Fabio Pereira ISBN-10: 1419685929 Publisher URL: http://www.booksurge.com/ Released: March 24, 2008 Title: Using Microprocessors and Microcomputers: The Motorola Family 4th Edition Author: William Wray, Joseph Greenfield, Ross Bannatyne ISBN: 0138404062 Publisher URL:  www.prenhall.com Released: 1998 Title: The Official Robosapien Hacker's Guide Author: Dave Prochnow ISBN: 0071463097 Publisher URL:  /www.mhprofessional.com Released: 2005 Title: Robot Building for Beginners Author: Dave Cook ISBN: 1893115445 Publisher URL:  http://www.robotroom.com Released: 2002 Title: Intermediate Robot Building Author: Dave Cook ISBN: 1590593731 Publisher URL:  http://www.robotroom.com Released: 2004 HC11/HC12 (Legacy Devices) Title: Software and Hardware Engineering Motorola M68HC12 Author: Fredrick M. Cady, James M. Sibigtroth ISBN: 0195110463 Publisher URL: www.oup.com/us/he Released: 2000 Title: Software and Hardware Engineering Motorola M68HC11 Author: Fredrick M. Cady ISBN: 0195110463 Publisher URL: www.oup.com/us/he Released: 1997 Title: MC68HC12 An Introduction: Software and Hardware Interfacing Author: Han-Way Huang ISBN: 0766834484 Publisher URL: http://www.delmarlearning.com/electronics/ Released: 2002 Title: MC68HC11 An Introduction: Software and Hardware Interfacing 2nd Edition Author: Han-Way Huang ISBN: 0766816001 Publisher URL: http://www.delmarlearning.com/electronics/ Released: 2002 Title: Programming the Motorola M68HC12 Family Author: Gordon Doughman ISBN: 0929392671 Publisher URL:  No Data Available Released: 2000 Title: Embedded Systems: Design and Applications with the 68HC12 and HCS12 Author: Steven F. Barrett, Daniel J. Pack ISBN: 0131401416 Publisher URL:  www.prenhall.com Released: 2004 Title: Introduction to Microcontrollers Architecture, Programming, and Interfacing for the Freescale 68HC12 Author: G. Jack Lipovski ISBN: 0124518389 Publisher URL:  books.elsevier.com Released: 2004 Title: Single and Multiple Chip Microcomputer Interfacing Author: G. Jack Lipovski ISBN: 0138105731 Publisher URL:  No Data Available Released:  No Data Available Title: Microcomputer Engineering, Third Edition Author: Gene H. Miller ISBN: 0131428047 Publisher URL: www.prenhall.com Released:  2003
View full article
Este proyecto está siendo desarrollado por alumnos del Tecnológico de Monterrey Campus Guadalajara, el cual está orientado para servir como un tipo de terapia para personas discapacitadas. El proyecto en sí consiste en el control de un vehículo de juguete por medio de pulsaciones que serán realizadas con pelotas anti-estrés, de esta forma la persona podrá realizar un ejercicio de fortalecimiento en sus extremidades superiores de una forma más entretenida y menos tediosa que las clásicas terapias. Es importante mencionar que para poder realizar este proyecto es necesario el uso de dos tarjetas Freedom KL25Z de Freescale®, dos módulos Bluetooth®, dos servomotores de rotación continua y dos sensores de presión, los cuales serán incorporados dentro de las pelotas anti-estrés. El vehículo de juguete estará compuesto por los servomotores, que servirán como llantas; un módulo Bluetooth®, el cual recibirá las señales del otro módulo; y una de las tarjetas Freedom KL25Z. Por otro lado una de las tarjetas Freedom KL25Z estará conectada con los sensores integrados en las pelotas anti-estrés y a un módulo cuya función es mandar la información capturada por los sensores al vehículo de juguete. La mecánica del proyecto depende de la pelota que sea presionada, pues si se presiona solamente una pelota, el vehículo avanzará, por otro lado si se presiona la otra pelota, el vehículo girará sobre su propio eje. Este proyecto tiene como fin la implementación de conocimiento prácticos y teóricos en busca de una aportación en beneficio de la sociedad. También es relevante comentar que las visiones a futuro de este proyecto es que pueda ser implementado como una especie de control para una silla de ruedas, con el fin de facilitar la movilidad y aumentar la comodidad al momento de usar este tipo de vehículo. Original Attachment has been moved to: Codigo-tarjetas-freedom.zip
View full article
Couple of new videos. This time I am running the FRDM-TFC library demo code written by Eli Hughes without any change at all-- successfully on my car. I have had the 0 ohm R24 res replaced with a higher one thanks to the soldering skills of David DiCarlo! The first video highlights demo modes 0 through 3: Car demos - YouTube Demo 0- test buttons and switches Demo 1- test servo Demo 2- test motors Second, I was able to get my little o-scope (xprotolab) to capture the camera analog out-- here: Camera testing - YouTube No major coding done but I understand the library and ports on the boards much better now.   Still haven't resolved the 'whining' apparent when I enable the H-bridge but I will try a few things this week-- it is possible it is harmless. Next steps, buffering camera data then on to control loops! Daniel Oh, I was also able to get the serial port working while code was running so I could get some dynamic feedback. This document was generated from the following discussion: Videos testing out Freescale Cup kit
View full article
Check the Freedom Zumo Robot designed with the Freedom Kinetis FRDM-KL25Z. Check the full development at The Freedom Zumo Robot | MCU on Eclipse
View full article
"What's the difference between all these Freedom boards?" First, let's talk about the givens.  All Freedom boards will have the following: -OpenSDA Debug Interface -Pin layout to accept any Arduino(R3) shield -Multiple Power Options (USB, Battery or External) -The Cortex-M0+ family excels at low-power operation!! Now for the bells and whistles: FRDM-K20D50M FRDM-KL25Z FRDM-KL26Z FRDM-KL05Z FRDM-KL02Z FRDM-KE027Z FRDM-KL46Z Core MHz Flash/RAM/FlexMem Cortex-M4 50 128K/16K/32K Cortex-M0+ 48 128K/16K Cortex-M0+ 48 128K/16K Cortex-M0+ 48 32K/4K Cortex-M0+ 48 32K/4K Cortex-M0+ 20 64K/4K Cortex-M0+ 48 256K/32K Typ. Operating Voltage 3.3V 3.3V 3.3V 3.3V 3.3V 5V 3.3V Capacitive Touch Slider :smileycheck: :smileycheck: :smileycheck: :smileycheck: :smileycheck: :smileycheck: :smileycheck: RGB Led :smileycheck: :smileycheck: :smileycheck: :smileycheck: :smileycheck: :smileycheck: :smileycheck: Light Sensor :smileycheck: 3-Axis Acceleromter :smileycheck: :smileycheck: :smileycheck: :smileycheck: :smileycheck: :smileycheck: :smileycheck: Magnometer :smileycheck: IrDA :smileycheck: Thermistor :smileycheck: LCD Display :smileycheck: Switches 2 mbed Enabled :smileycheck: :smileycheck: List Price (USD) $18.00 $12.95 $15.00 $12.95 $12.95 $12.95 $15.00 Link to Product Page :smileyinfo: :smileyinfo: :smileyinfo: :smileyinfo: :smileyinfo: :smileyinfo: :smileyinfo: If you would like me to add anything to the matrix, post to the comments section below!
View full article
Hi,     I will present to you my first personal initiated project named Spectrum analyzer. This spectrum is based on sampling signal and calculating his spectrum using FFT algorithm. Attached here presentation, documentation (french), electrical scheme of amplification circuit and source code of both programs (Computer and PXS20)   Picture of the spectrum analyzer with TWR-PXS20, TWR-SER and TWR-PROTO :   Picture of amplification circuit :   Picture of signal collected by the ADC :   And here we have the spectrum :   Thank you, and I hope you like it
View full article
This tutorial covers the details of Blinking an LED on the Kinetis K40 using the TWR-K40X256-KIT evaluation board. It will introduce the evaluation board, and some basic CodeWarrior features. Overview 1. Hardware 2. Set up the Software Development Environment A. Download and Install Codewarrior B. Download and Install Drivers 3. Set up the Hardware: Twr K40x256 Hardware Setup 4. Import the LED Project 5. Build the Code 6. Download/Debug/Run 7. Learning Step: LED Code Description Read/Write Functions Variables Header File Definitions Initialize the GPIO Blink the LED: Other K40 Tutorials: K40 Related Pages Credits / References Overview   In this exercise students will explore a Freescale Cup Car application which targets a Freescale K40 board attached to the Tower System.   Students will: Configure the Software Development Environment Configure the evaluation board hardware Learn how to import example files into a CodeWarrior project Build a project Download and run the code on a Kinetis K40 Tower System board Learn how to utilize the GPIO Peripheral to blink a LED     To successfully complete this exercise, students will need the following board and development environment. The K40 Tower card, TWR-K40x256 CodeWarrior for Microcontrollers USB Cord 1. Hardware     Read the Blink LED overview article for general information on LED circuits, GPIO pins and reference manuals.   2. Set up the Software Development Environment   There are several steps necessary to prepare the evaluation board and PC for microcontroller programming and development. Interfacing the evaluation board with a PC requires downloading and Install the CodeWarrior IDE, as well as the device drivers for programming the microcontroller via USB. A. Download and Install Codewarrior   Before completing this example project, download-and-install-codewarrior-10-1 or the latest version compatible with the twr-k40x256-kit.   B. Download and Install Drivers   In addition to CodeWarrior, it may(needs verified) be necessary to install one or both of the following tools: RAppID initialization tool- RAppID comes on the DVD provided with your evaluation board. In the main directory of the DVD, click on the "TRK_MPC5604B.html" file to open the DVD interface which provides user manuals, software, schematics and documentation for the evaluation board. P&E Microcomputer Systems, Inc drivers- P&E is a a computer driver for the TRK-MPC5604B and Kinetis Tower system device, enabling evaluation board programming via USB through the CodeWarrior debug OSJTAG interface. This driver can be downloaded here in case this isn't found on the disk.   3. Set up the Hardware: Twr K40x256 Hardware Setup   There are several Twr K40x256 hardware configuration steps. Follow the twr-k40x256-hardware-setup instructions before importing the LED Project. 4. Import the LED Project   After the software is successfully downloaded and installed, the next step is to import an existing project into your Workspace. in this case, the LED_BLINK_96MHZ Project. Follow the instructions on the codewarrior-project-import page to import the LED_BLINK_96MHZ project into CodeWarrior. If errors are encountered, look in the Problems view and resolve them. Ignore any warnings. 5. Build the Code   If there is more than one project in your project view, make sure the proper project is the focus. The most reliable way to do this is to right click the project and choose Build Project as shown below. You can also go to the Project menu and choose the same command. By default, the application is set to link to RAM. If you want your program in FLASH, make sure that you have that build configuration enabled:     Make sure you do a "Clean" operation (under the project menu) after you make the configuration change. If you encounter errors, look in the problems view and resolve them. You can ignore any warnings. 6. Download/Debug/Run   If the project builds correctly, it is time to download to the board and watch it work. Ensure that the USB cable that came with the board connects the board to the host computer’s USB port. There are multiple ways to issue the Debug command. Right click the project in the projects view and choose Debug As->CodeWarrior Download. Alternatively, y go to the Run menu and choose Debug (F11). Click the Resume button and your should see the LED blinking! Click the Pause button to stop execution. Click the Terminate button to end debugging. 7. Learning Step: LED Code Description Read/Write   If the LED was on Port C, Bit 7 we might have code like: #define LED_E1_Location(1<<7)   For example, to toggle a pin the following code might be used: GPIOC_PSOR=LED_E1_LOC     "Sets" the LED located at "E1" high.   the syntax means the following GPIOC refers to Port C   "Set" is one of three commonly utilized commands for GPIO control. There are also commands for "Clear" and "Toggle."   Command: "GPIOC_PSOR" literally means PORT SET OUTPUT REGISTER which SETS a pin high Command: "GPIOC_PCOR" clears a pin, PORT CLEAR OUTPUT REGISTER which CLEARS a pin to the "low" state Command: "GPIOC_PTOR" toggles a pin opposite of the current state   the « is a "shift" command which is discussed in the c-programming-for-embedded-systems. You can alter the raw register as well using a MASK but the dedicated set/clear/toggle registers are more straightforward.   **NEEDS UPDATED ** Hardware Chip Port/Pin Comment SW3 PT cell-content SW4 cell-content cell-content Functions   The following functions can access the LED; //Where n is the LED number LED_En_TOGGLE;  //will toggle a LED to a different state LED_En_ON; // turns the LED ON LED_En_OFF // turns the LED OFF Variables   Locations of the LED's LED_E1_LOC LED_E2_LOC LED_E3_LOC LED_E4_LOC Header File Definitions   from k40_TOWER_BOARD_SUPPORT.h //The E1 LED is on Port C, Bit 7 #define LED_E1_LOC (1<<7) #define LED_E2_LOC (1<<8) #define LED_E3_LOC (1<<9) #define LED_E4_LOC (1<<11)    //There are dedicated set and clear registers.    //Write a one to PSOR Sets the Bits, Writing to PCOR clears bits.    //Toggling a bit can be done with the PTOR register    //You can access the raw register as well -> PDOR |= My Bit    //but the dedicated bit set/clear/toggle registers are easier!    //Also, The cathode of the LEDs are towards the port pin! This means    //you have to turn the port off to get the LED to turn the pin on. #define LED_E1_OFF   GPIOC_PSOR=LED_E1_LOC #define LED_E1_ON   GPIOC_PCOR=LED_E1_LOC #define LED_E1_TOGGLE   GPIOC_PTOR=LED_E1_LOC #define LED_E2_OFF   GPIOC_PSOR=LED_E2_LOC #define LED_E2_ON   GPIOC_PCOR=LED_E2_LOC #define LED_E2_TOGGLE   GPIOC_PTOR=LED_E2_LOC #define LED_E3_OFF   GPIOC_PSOR=LED_E3_LOC #define LED_E3_ON   GPIOC_PCOR=LED_E3_LOC #define LED_E3_TOGGLE   GPIOC_PTOR=LED_E3_LOC #define LED_E4_OFF   GPIOB_PSOR=LED_E4_LOC #define LED_E4_ON   GPIOB_PCOR=LED_E4_LOC #define LED_E4_TOGGLE   GPIOB_PTOR=LED_E4_LOC Initialize the GPIO   From K40_TOWER_BOARD_SUPPORT.c void InitK40GPIO() {    SIM_SCGC5 = SIM_SCGC5_PORTA_MASK | SIM_SCGC5_PORTB_MASK | SIM_SCGC5_PORTC_MASK | SIM_SCGC5_PORTD_MASK | SIM_SCGC5_PORTE_MASK;    //To use a Port, its Clock must be enabled!!    //Lets just enable the clocks for ALL of the ports    //Important! Each IO pin has a dedicated 32-bit Register to set it up (Selection GPIO vs peripheral, IRQ, Etc.)    //Setup port C7,C8,C9 and B11 as GPIO and enable High Drive Strength    PORTC_PCR7 = PORT_PCR_MUX(1) | PORT_PCR_DSE_MASK;  //Enable GPIO on on the pin    PORTC_PCR8 = PORT_PCR_MUX(1) | PORT_PCR_DSE_MASK;  //Enable GPIO on on the pin    PORTC_PCR9 = PORT_PCR_MUX(1) | PORT_PCR_DSE_MASK;  //Enable GPIO on on the pin    PORTB_PCR11 = PORT_PCR_MUX(1) | PORT_PCR_DSE_MASK;  //Enable GPIO on on the pin    PORTC_PCR18 = PORT_PCR_MUX(1) | PORT_PCR_DSE_MASK;    PORTE_PCR28 = PORT_PCR_MUX(1) | PORT_PCR_DSE_MASK;    //Make Sure the GPIO is setup to be an output    GPIOC_PDDR |= LED_E1_LOC | LED_E2_LOC | LED_E3_LOC;    GPIOB_PDDR |= LED_E4_LOC;    LED_E1_OFF;    LED_E2_OFF;    LED_E3_OFF;    LED_E4_OFF; } Blink the LED:   Within Main.c or any other C file created, Blink the LED's using the following functions: LED_E1_TOGGLE; LED_E1_ON; LED_E2_OFF; Other K40 Tutorials:   K40 Related Pages   K40: Turning A Servo Tutorial   K40: Drive DC Motor Tutorial Kinetis K40 TWR-K40X256 K40: Blinking LED Credits / References   Some of the content from this tutorial originated from:   Shawn Moffit: Electrical Engineering, Penn State University for - K40 Code   Processor Expert Hands-On Lab Rev. 1.0, 05/2011 by Jim Trudeau, Freescale Semiconductor, Inc. for - some text descriptions of steps Original Attachment has been moved to: LED_BLINK_96MHZ.zip
View full article
Continue discussion on the line scan camera. A completely interrupt driven approach to the interface will be illustrated.
View full article