Welcome to IDI Electronica!!!



Welcome!!! IDI Electronica is a blog for my personal projects and articles to help electronics enthusiasts like me.

Bienvenidos!!! IDI Electronica es un blog con mis proyectos personales y artículos con el fin de ayudar a entusiastas de la electrónica como yo.

Saturday, April 18, 2015

Cómo Hacer un Cable de Ethernet Sin Crimpadora o Pinza de Compresión?

ADVERTENCIA: Para armar un cable de red sin una crimpadora se requiere el uso de herramientas y fuerza. Esto podría causar lesiones si se trabaja con poco cuidado. Usa esta guía bajo tu propio riesgo.

Antes que nada, siempre se debe de usar la crimpadora si se quiere garantizar que la conexión eléctrica y física sea segura. Estas instrucciones son para crear un cable de red para uso temporal cuando no hay una crimpadora disponible.


MATERIALES

- Cable de pares trenzados Cat5/5e/6
- Conector RJ-45 (recomiendo comprar más de 2, en caso tengas que rehacer uno)
- Herramienta de bolsillo Swiss Army o destornillador de punta plana
- Un cuchillo pequeño o tijeras


PASOS

Paso 1: Haz un pequeño corte a la manga del cable CAT5e hasta que la cuerda de jalado (pull string) quede expuesta.



Paso 2: Jala la cuerda hasta cortar unos 2cm de la manga.



Paso 3:  Corta el pedazo de manga expuesto y la cuerda de jalado hasta que sólo queden expuestos los cables cruzados.




Paso 4: Ordena los cables en la configuración deseada para hacer un cable estándar o cruzado e insértalos en el conector RJ-45.







En los siguientes pasos, vamos a crimpar dos secciones del conector RJ-45, los cuales son denotados por números en la foto debajo. En la parte #1, vemos una pestaña que al ser presionada hacia abajo asegura los cables cruzados. En la parte #2, vemos lo contactos del conector RJ-45. Los contactos o pines, deben de ser presionados hacia abajo hasta que las puntas de metal atraviesen la manga del cable y hagan contacto físico con el alambre de cobre.



Paso 5: Usando el abridor de botellas de la multiherramienta o un destornillador presiona la pestaña en la parte #1 del conector hasta que los cables estén ajustados.




Paso 7: Usando la misma herramienta, presiona cada pin de metal hasta que las puntas atraviesen la manga y hagan contacto con el alambre de cobre. La mejor forma de sostener la herramienta es de forma horizontal o diagonal (como cortando una torta), ya que haciéndolo verticalmente es más difícil de controlar. También recomiendo colocar el conector sobre un periódico o cuaderno para que no se deslice. Si accidentalmente doblas los bordes de plástico alrededor de los pines, puedes usar un cuchillo para enderezarlos.






Step 8: Tu cable está listo para ser probado. La forma más sencilla de hacerlo es conectando tu computadora a un modem o router. El riesgo es mínimo porque ninguno de los cables lleva voltaje alto.

Friday, April 17, 2015

How to Make an Ethernet Cable Without a Crimping Tool

DISCLAIMER: Making an ethernet cable without a crimping tool will require the use of a sharp-edged tool and the application of force. This could potentially cause injuries. Follow this guide at your own risk.

First of all, you should always use a crimping tool to ensure that the wires make good contact and are physically secured to the connector. You should only make cables without a crimping tool temporary solutions. 

Materials

- Cat5e or Cat6 twisted pair network cable
- RJ-45 connectors (buy more than 2 in case you mess it up)
- Swiss army pocket tool or screw driver with thin edge
- A small blade or scissors

Step 1: Make a small cut to the  CAT5e until the pull string is exposed.




Step 2: Pull the string to cut the sleeve and expose the wires.



Step 3:  Then cut the remaining piece of sleeve and pull string until we are left with the wires only.

Step 4: Arrange the wires in the correct order to create a standard or crossover cable and slide the cables into the RJ-45 connector.







Next, we'll need to press two parts in the RJ-45 connector. In the photo below, #1 is a tab meant to put press and hold on the wires to prevent them from coming off. The metal pins in #2 down must be pressed down until they pierce the wires' sleeves in order to make electric contact.



Step 5: Using the flat edge of our tool, press down the tab in #1 until the wires are secured.




Step 7: Using the same tool, press each of the pins until they go through the sleeves of each wire. Holding the tool in a horizontal position (like cutting a cake) will give you more control than pressing it vertically. I'd also recommend using a soft surface, like a newspaper, to prevent the connector from sliding. If you accidentally bend the plastic edges between pins, you can use a sharp edge to straighten them up.






Step 8: Your cable should be ready to be tested. Connect your PC to your modem or router to test your cable. Enjoy!

Wednesday, April 8, 2015

Microprocesadores vs Microcontroladores vs FPGA

Cuando hablamos de circuitos digitales, oímos de dispositivos lógicos como CPUs, microprocesadores, microcontroladores, PLDs, ASICs, FPGAs, entre otros. Pero, en qué se diferencian?


En este artículo trataré de explicar sus principales diferencias sin entrar en muchos detalles técnicos.


CPU vs Microprocesador

El CPU (Unidad Central de Procesos en inglés) es la parte de un sistema que secuencia y ejecuta instrucciones usando aritmética básica, lógica, control y operaciones de entrada y salida. El CPU es la parte encargada de los procesos, por lo que también se le conoce como procesador.

En sus inicios, los CPUs estaban conformados por varios tubos de vacío interconectados con cables y eran tan grandes que ocupaban salones enteros. Años después, el transistor fue inventado y los CPU se volvieron más pequeños. Sin embargo, estos sistemas aún necesitaban bastante espacio.

Cuando los circuitos integrados fueron inventados, las unidades de proceso pudieron ser construidas en pequeños chips de silicona. Esos chips son lo que conocemos como microprocesadores.

En teoría, el CPU se refiere al procesador principal de un sistema y por lo tanto no todos los microprocesadores son necesariamente CPUs. Un buen ejemplo de esta diferencia sería la consola de videojuegos Sega Genesis. El sistema posee 2 microprocesadores, el Motorola 68K para la ejecución de juegos, video, entradas, etc, y el Zilog H80 para el proceso de sonidos. En este caso, el 68K es el CPU. Sin embargo, en práctica, la gente se refiere a casi todos los microprocesadores como CPUs.


Fig 1. Foto de ENIAC en U de Pennsylvania. El sistema contenía 18,000 tubos de vacío y usaba 174KW de poder


Fig 2. Microprocesador Intel 8086


Microprocesador vs Microcontrolador

Un microprocesador (MPU o µprocesador) no posee pines de entrada y salida (I/O), memoria u otros periféricos. En lugar de eso, sus pines funcionan como un bus para interactuar con componentes externos como I/O, memoria RAM, ROM, puertos seriales, etc.

Un microcontrolador (MCU o µcontrolador) integra el CPU, ROM, RAM, I/O y otros periféricos en un solo circuito integrado. Básicamente, es un sistema entero dentro de un chip.

Los microcontroladores son convenientes porque nos permiten programar la interfaz del CPU con todos los periféricos sin preocuparse por problemas de compatibilidad o diferencia de voltajes. Además, un microcontrolador cuesta menos que un sistema con microprocesador. Su principal desventaja es que están limitados por los periféricos construídos en el chip.

Un microprocesador es capaz de ejecutar cálculos más extensos y al depender de componentes externos, el sistema puede expandirse a diseños bastante complejos.  El ejemplo más común de un sistema con microprocesador sería una computadora de escritorio.


Fig 3. Diagrama comparando un microprocesador y un microcontrolador


ASIC vs PLD vs FPGA

Un Circuito Integrado de Aplicación Específica (ASIC) es un chip diseñado especialmente para ejecutar tareas específicas.

Los Dispositivos Lógicos Programable (PLD) y Matriz de Puertas Programables en Campo (FPGA) son dispositivos que pueden ser reprogramados para crear distintos circuitos digitales.

En pocas palabras, los PLDs y FPGAs son circuitos reprogramables mientras que los ASIC no.

Mientras que los 3 dispositivos pueden ser usados para crear circuitos digitales, los ASICs están optimizados para esas tareas. Además, consumen menos poder y pueden procesar señales más rápidamente. Para algunas aplicaciones, ésta pequeña diferencia puede hacer de los ASIC la única opción viable. No obstante, el ciclo de diseño de un ASIC dura bastante tiempo, es costoso y al no ser reprogramable, no pueden ser modificados por lo que deben pasar por un riguroso ciclo de prueba. Por otro lado, los PLD y FPGA dan bastante flexibilidad pues al ser reprogramables, los ciclos de prueba, validación y rediseño son más cortos.


PLD vs FPGA

La diferencia de estos dos dispositivos están en la arquitectura.

Los PLD están hechos de macroceldas y usan lógica combinatoria (Y, O) y flip-flops para crear sus circuitos. Los PLD originales fueron diseñados para reemplazar decenas de puertas lógicas de la familia 7400 (Y, O, NO).  El tipo más común de PLD es el Dispositivo Lógico Programable Complejo (CPLD) que básicamente contiene múltiples PLD interconectados.

Los FPGA están hechos de bloques lógicos, interconexiones y I/O. Los FPGA son volátiles, por lo que una memoria externa debe almacenar la configuración del dispositivo.

Para crear circuitos, los CPLD usan una combinación de cientos de puertas lógicas (Y, O, NO), por lo que el proceso se llama lógica combinatoria. Por otro lado, los FPGA usan Tablas de Consulta (LUT) para reconfigurar sus matrices de puertas.

Debido a su estructura, los CPLD pueden procesar señales más rapidamente. Sin embargo, debido al tamaño de las macroceldas, los CPLD están limitados a unos 500 flip-flops por dispositivo. Por otro lado, los FPGA pueden ser usados para crear circuitos más complejos ya que pueden contener más de 150,000 flip-flops.


Microcontrolador vs FPGA

Ahora hablaremos de los dos dispositivos más utilizados en la mayoría de proyectos.

Básicamente, un microcontrolador es un procesador con diferentes circuitos (periféricos) construidos dentro de un mismo chip. Todo lo que debemos de hacer para utilizarlo es programar el procesador con un lenguage como ensamblaje (assembly), C o C++.

Un FPGA es como un circuito en blanco con miles de puertas lógicas esperando a ser configuradas para crear otros circuitos. De hecho, podemos usar un FPGA para diseñar un procesador. Para configurarlos, usamos un Lenguaje de Descripción de Hardware (HDL) como Verilog o VHDL.

Para la mayoría de aplicaciones, los microcontroladores son la mejor solución. Son más baratos, fáciles de programar, consumen menos poder y contienen en sus periféricos todo lo que podamos necesitar.

Los microcontroladores usan procesos secuenciales (una tarea a la vez) mientras los FPGA pueden ejecutar procesos en paralelo. Debido a esto, los FPGA son la mejor opción para aplicaciones con señales de alta velocidad o que se procesan en tiempo real.

Tuesday, April 7, 2015

Microprocessor vs Microcontroller vs FPGA

Whenever we talk about digital systems, we hear about logic devices like CPUs, microprocessors, microcontrollers, PLDs, ASICs, FPGAs, among others. But, what is the difference between them?

This article will attempt to explain their main differences without getting too technical.


CPU vs Microprocessor

The CPU (Central Processing Unit) is the part of a system that sequences and executes instructions by performing basic arithmetic, logic, control, as well as input and output operations. It is the part of the system that does all the processing.

Back in the day, the CPU was a combination of vacuum tubes wired together and were housed in multiple cabinets. We are talking about computers that occupied entire rooms. Later on, the transistor made an appearance and the CPUs became much smaller. However, these CPUs still occupied lots of space.

When the integrated circuit was invented, scientists were able to put the entire processing unit in a small silicon chip. This is what we know as the microprocessor.

Technically, a CPU refers to the main processor in the system. Therefore, not all microprocessors are CPUs. A good example of this situation would be the Sega Genesis video-game console. It contains 2 microprocessors, the Motorolla 68K to handle most instructions, video processing, etc. and the Zilog H80 for sound processing. In this case, only the 68K would be the CPU. Nonetheless, for most people, both terms are interchangeable.


Fig 1. Photo of U of Pennsylvania's ENIAC. The system used 18,000 vacuum tubes and dissipated 174KW of power


Fig 2. The Intel 8086 microprocessor


Microprocessor vs Microcontroller

A microprocessor unit (aka MPU or µprocessor) usually won't have I/O pins, memory or other peripherals. Instead, it uses its pins as a bus to interface with external components such as digital and analog I/O, RAM, ROM, serial ports, etc.

A microcontroller unit (aka MCU or µcontroller) integrates a CPU core (microprocessor), ROM and RAM memory, I/O pins, as well as other peripherals like serial ports, counters, clocks, etc. in one chip.

Microcontrollers are convenient because they put a full system in one chip without having to worry about compatibility issues or voltage level differences. They are also cheaper than using a microprocessor system. Their main disadvantage, is that they are limited by the amount of built-in peripherals.

Microprocessors are capable of performing more extensive calculations and because of the use of external components, they can be expanded to very complex systems at the board-level. A good example of a microprocessor system would be a personal computer.

Fig 3. Diagram comparing a microprocessor and a microcontroller


ASIC vs PLD vs FPGA

An Application Specific Integrated Circuit (ASIC) is a chip customized to perform a specific task rather than general-purpose applications.

A Programmable Logic Device (PLD) and a Field Programmable Gate Array (FPGA) are devices that can be reconfigured to create different digital circuits.

Simply put, PLDs and FPGAs are reprogrammable while ASICs aren't.

The 3 devices could potentially perform the same tasks, however ASICs are optimized for them. This means, they use less power and can process signals in less time. In some high speed applications, this difference in efficiency can make an ASIC the only option available. On the downside, ASICs are very expensive, take a long time to be designed and validated, and making any changes requires making a new device. They are only feasible if the chip needs to be mass produced. A good example of ASICs would be the Bitcoin miners.


PLD vs FPGA

The original PLDs were designed to replace a few dozen 7400-series chips (AND, OR, NOT gates). They are made of macrocells with combinatorial logic (AND, OR) and flip-flops. The most common type of PLD is the Complex Programmable Logic Device (CPLD), which is basically multiple PLDs connected in one chip. They are non-volatile, which means you don't need to reconfigure them after turning off the power.

A FPGA is made of logic blocks, interconnects and I/O. To create circuits, FPGAs configures an array of logic gates following Look-up tables (LUTs). They are volatile, so they need to be reconfigured every time they are powered up. The configuration file is usually stored in a EEPROM or NAND memory.

Because of their simple structure, CPLDs can be used to perform faster tasks than FPGAs. However, because of the size of the macrocells, CPLDs are usually limited to have less than 500 flip-flops. FPGAs on the other hand, can be used for larger and more complex designs since they can contain more than 150,000 flip-flops.


Microcontroller vs FPGA

We already described the difference between those two, but when should we pick one over the other?

In simple terms, a microcontroller is a processor with different circuits (peripherals) already built for you. All you need to do is program it and it will be ready to use. They are usually programmed using assembly, C or C++.

A FPGA is a blank chip with a bunch of logic gates for you to build whatever you want. In fact, you could technically build a small microprocessor with a FPGA. To configure them, you need to code them using a Hardware Description Language (HDL) like Verilog or VHDL.

For most applications, a microcontroller will be the simplest solution. They are cheap, easy to program and consume less power.

Microcontrollers do sequential processing (run one task at a time) while FPGAs can run multiple processes in parallel. This makes FPGAs better suited for high-speed or real-time applications like DSP.

Thursday, April 2, 2015

Parpadeando un LED con el Tiva C Series LaunchPad y Keil µVision v4

Una de las mayores dificultades para aquellos que empiezan a usar microcontroladores es crear y configurar un proyecto nuevo desde cero. Esto se debe a que, a diferencia de la plataforma de Arduino, normalmente debemos de instalar y configurar distintos controladores de dispositivos (drivers) y archivos con código específico para cada tipo de microcontrolador. Arduino normalmente incluye todos estos archivos en su propia plataforma, por lo que es un excelente microcontrolador para principiantes y entusiastas.

El objetivo de este artículo es el de introducir la placa Tiva C Series Launchpad y el programa de desarrollo embebido (IDE)  Keil µVision, y utilizarlos para hacer parpadear un LED.

Este artículo muestra los pasos para instalar el IDE, crear un proyecto y cargar el programa al LaunchPad. Debido a que no hay una versión en español de Keil, se necesitará un conocimiento básico del inglés para utilizar el programa.

TIVA C SERIES LAUNCHPAD & KEIL µVISION

Los Tiva C Series LaunchPad son una  familia de microcontroladores de bajo costo desarrollados por Texas Instruments. Para este proyecto, usaremos el LaunchPad TM4C (EK-TM4C123GXL). Esta placa lleva un CPU ARM Cortex-M4 con 32 bits, reloj de 80MHz, punto flotante, 256kB de memoria flash con 100,000 ciclos de escritura y borrado, además de sistemas periféricos como PWM, 1-MSPS ADC, 8 UARTs, 4 SPI, 4 I2C, USB y hasta 27 relojes. La placa también incluye para la interfaz de usuario 2 botones de uso general, un botón de reinicio, un LED de poder y un LED RGB programable.

Para más detalles sobre el Tiva C Launchpad, visita la página de Texas Instruments 


Fig 1.  Tiva C Series Placa de Evaluación

µVision es una plataforma de desarrollo embebido para procesadores ARM creada por Keil. La plataforma provee administración de proyectos, edición de código, compilador, depuración (debugging) y simulación. Para este proyecto usaremos la versión 4 de µVision, ya que es más estable, cuenta con más soporte en línea que la reciente versión 5 y sobretodo, es la versión con la que tengo más experiencia.

Para más información sobre µVision, visita la página de Keil.

Fig 2. Imagen de inicio de Keil µVision 4


2. INSTALACION DEL SOFTWARE (IDE)

a. Primero, necesitamos instalar Keil µVision v4. Visita https://www.keil.com/demo/eval/armv4.htm, ingresa tu información de contacto y descarga el archivo MDK474.exe para instalar el IDE. El tamaño del archivo es de aproximadamente 590MB.

b. Ejecuta el instalador de MDK-ARM v4. En las siguientes ventanas acepta los Términos de Uso, elige donde quieres instalar el programar, ingresa tu información de contacto y espera que el IDE se instale. Después, marca la casilla “Add example projects…” y en la última ventana remueve la marca en la casilla “Launch Driver Installation” y presiona Finalizar.

c. Después de instalar Keil, necesitamos instalar los controladores (drivers) para nuestro microcontrolador. Para este paso, vamos a necesitar el LaunchPad. Primero, visita http://www.ti.com/tool/stellaris_icdi_drivers y descarga el archivo Stellaris ICDI Drivers.
Puedes usar las instrucciones de Texas Instruments siguiendo este vínculo.

3. CREANDO UN PROYECTO NUEVO

Después de instalar Keil y los controladores podremos comenzar nuestro proyecto nuevo.

a. Abre Keil µVision v4, haz click en el menú Project >> New µVision Project y escribe el nombre del proyecto nuevo.

b. En la siguiente ventana, tienes que elegir el microcontrolador que será usado en este proyecto. Para nuestra placa, selecciona de la lista Texas Instruments y el dispositivo TM4C123GH6PM.


Fig 3. Seleccionando microcontrolador para el proyecto

c. Luego acepta te pregunten si deseas copiar el archivo de inicio (startup) del microcontrolador a tu proyecto. 

Fig 4. Pregunta del sistema para copiar archivo de inicio de microcontrolador


d. Tras aceptar, el archivo de inicio debe de aparecer bajo Target1 >> Source Group en la ventana de proyecto.

Fig 5. Vista de Keil con archivo de inicio


e. Para el siguiente paso, tenemos que copiar el archivo system_TM4C123.c a nuestra carpeta de proyecto. Este archivo contiene código para configurar los relojes para nuestro modelo microcontrolador y puede ser encontrado en la carpeta de instalación de Keil. En mi caso, el archivo se encuentra en C:\Keil\ARM\Startup\TI\TM4C123\system_TM4C123.c

f. Después copiar el archivo a tu carpeta de proyecto, haz click con el botón derecho en Source Group 1 en la ventana Project y luego haz click en Add existing files to Group ‘Source Group 1’ y selecciona el archivo system_TM4C123.c. Esto nos permite agregar archivos con código en diferentes formatos a nuestro proyecto.

Fig 6. Agregando archivos a proyecto en Keil 


g. Finalmente, haz click con el botón derecho a Source Group 1 nuevamente y selecciona Add New Item to Group ‘Source Group 1’ para agregar un archivo nuevo al proyecto. Selecciona C File(.c), dale un nombre a tu archivo y haz click en Add para crear el archivo. Este va a ser tu archivo principal para el código de programación.

f. El IDE debe mostrar ahora el archivo startup, system y el archivo en blanco que acabas de crear bajo Source Group 1.

Fig 7. Imagen de Keil después de agregar los archivos necesarios


4. PROGRAMACION

a. Visita https://github.com/sphanlung/TivaC/blob/master/LedBlink.c y copia el código en esa página al archivo en C que creaste. El vínculo te llevará a mi repositorio en Github.

b. Luego, haz click en el menú Project y en Build Target. Este comando hará que Keil compile el código para el microcontrolador. En la parte de abajo también podremos ver el resultado de la compilación, errores y advertencias en la ventana Build Output.

Fig 8. Compilando el código en Keil


c. Ahora, necesitamos configurar Keil para poder cargar el programa en el microcontrolador. Haz click en Project y luego Options for Target ‘Target 1’. Cuando se abra la ventana de opciones, busca la pestaña Utilities y bajo Configure Flash Menu Command, y desmarca la casilla Use Debug Driver. Luego, bajo Use Target Driver for Flash Programming selecciona el controlador Stellaris ICDI y presiona OK.


Fig 9. Configuración del controlador para el LaunchPad


d. Finalmente, haz click en Flash y luego Download para cargar el programa en el microcontrolador 

5. PRUEBA EN LA PLACA

a. Cuando el código termina de cargar, presiona el botón Reset en el LaunchPad para iniciar el programa.

b. Cuando ningún botón es presionado, el LED azul estará encendido. Si presionas el botón SW1, los LEDs azul y verde parpadearán. Si presionas el botón SW2, los LEDs rojo y azul parpadearán.


Fig 10. Prueba del código en el LauchPad 

Wednesday, April 1, 2015

Blinking an LED Using the Tiva C LaunchPad and Keil µVision 4

One of the most frustrating things for people new to microcontrollers is starting a new project from scratch. The main reason being that, unlike the Arduino platform, you have to install and configure different drivers and configuration files before you can even start your project. Arduino already includes all these files and settings in its platform, which is why it is so appealing to hobbyists.

The purpose of this project is to introduce the Tiva C Series LaunchPad and the Keil µVision embedded development tool to make the on-board LED blink.

This article will show you the steps to install the IDE, create a project and load the code to the LaunchPad board. 

TIVA C SERIES LAUNCHPAD AND KEIL µVISION 4

The Tiva C Series LaunchPad is a family of low-cost microcontroller evaluation boards developed by Texas Instruments. For this project, we will be using the TM4C LaunchPad (EK-TM4C123GXL). This board features an 80-MHz, 32-bit ARM Cortex-M4 CPU with floating point, 256 kBytes of 100,000 write-erase cycles of flash memory, and a wide range of peripherals including motion control PWMs, 1-MSPS ADCs, eight UARTs, four SPIs, four I2Cs, USB, and up to 27 timers. The board includes two general purpose switches, a reset switch, a power LED, and user programmable RGB LEDs for user interface.

For more details about the Tiva C Launchpad, you can visit Texas Instruments’ website 


Fig 1.  Tiva C Series Evaluation Board


µVision v4 is an ARM embedded development platform created by Keil that provides project management, code editing, compilation, debugging, and simulation. Even though µVision v5 has recently been released, we’ll be using v4 because it is more stable, you’ll find more online resources to support this version and more importantly, it’s the one I know how to use better.

For more information about Keil µVision 4.0 you can visit Keil’swebsite 

Fig 2. Opening image for Keil µVision 4


2. INSTALLING THE SOFTWARE (IDE)

a. First, we need to install Keil µVision v4. Go to  https://www.keil.com/demo/eval/armv4.htm. Enter your contact information and then download the file MDK474.exe to install the IDE. The download file size is approximately 590MB.

b. Run the MDK-ARM v4 installer, in the next screens accept the License Agreement, select the installation folder, enter your contact information and wait until the IDE installs. Next, check the box to “Add example projects…” and in the last screen, uncheck the “Launch Driver Installation” box.  

c. After installing Keil, we need to install the drivers to be able to interface the microcontroller with our computer. You will need the LaunchPad board for this step. First, go to http://www.ti.com/tool/stellaris_icdi_drivers to download the drivers for the Tiva C LaunchPad. At the bottom of the page you’ll find a PDF file with instructions on how to install the drivers for different operating systems. You can also access the PDF using this link

3. CREATING A NEW PROJECT

After Keil and the drivers are installed, we can start our new project.

a. Open Keil µVision v4. Click on Project >> New µVision Project and enter a name for the project

b. You’ll be asked to select a target microcontroller. For our board, select Texas Instruments and the device number TM4C123GH6PM


Fig 3. Selecting a microcontroller for new project

c. Accept copying the Startup project file when prompted

Fig 4. System prompt to install project startup file


d. Your Project window should now show the startup file under Target1 >> Source Group

Fig 5. Screenshot of Keil with startup file


e. Next, we need to copy the file system_TM4C123.c to our project folder. This file contains microcontroller specific code to enable the system clocks. The file can be found in the Keil installation folder. In my case, I found it in  C:\Keil\ARM\Startup\TI\TM4C123\system_TM4C123.c

f. After the file has been copied to your project folder, right-click on Source Group 1 in the Project window, click on Add existing files to Group ‘Source Group 1’ and select the file system_TM4C123.c

Fig 6. Adding files to Keil project


g. Finally, right-click on Source Group 1 again and click Add New Item to Group ‘Source Group 1’. Then select C File(.c), enter file name at the bottom and click Add. This will be your main program file.

f. The IDE should show the startup, system and main file that you created under Source Group 1

Fig 7. Screenshot of Keil after project files were added


4. PROGRAMMING

a. Go to https://github.com/sphanlung/TivaC/blob/master/LedBlink.c and copy the code to the C file that you created.  The link will take you to my Github repository.

b. Click on Project and Build Target. This command will compile your code and report any errors or warnings in the Build Output window.

Fig 8. Screenshot of Keil with command to compile code


c. Click on Project and Options for Target ‘Target 1’. Find the Utilities tab and under Configure Flash Menu Command, uncheck the Use Debug Driver box. Then, under Use Target Driver for Flash Programming select the Stellaris ICDI driver and hit OK. This will allow us to program the board through USB.

Fig 9. Configuring drivers to load code into LaunchPad


d. Click on Flash and then Download. This will load the compiled code to the microcontroller. The Build Output window will report the status of the process or any errors.

5. BOARD TEST

a. Once the code is loaded, press the reset button in the LaunchPad to start the program.

b. The blue LED should be on. If you hold SW1, the blue and green LEDs will blink. If you hold SW2, the blue and red LEDs will blink.


Fig 10. Testing the code in the LauchPad