Close
Free HTML5 Bootstrap Template

About Me

SARATH.SM

I am an Electronics engineer, who love to explore, experiment and learn new technologies and processes in my pursuit to give life to the Ideas I dream about..

Prev Next

EMBEDDED PROGRMMING


This week is specially meant for one of my most favourite topic, embedded programming :) Ill be updating with as much as embedded architectures I can experiment and learn.

  • Atmel ATTINY 44 --> Using FAB FTDI hello world Board
  • Microchip PIC 12F675 --> Using my custom made SM_FAB PIC12F Board
  • Microchip PIC 16F877A --> Using my custom made SM_FAB PIC16F Board
  • If time permits I'll also play around and document the following, I have got all of them ready in hand for this weeks Fab learning,

  • NXP'S ARM Controller --> LPC2148
  • Texas Instruments --> MSP430
  • Single Board Computer --> Raspberry Pi
  • Waspmote Platform --> Ill be using it for my Final project atleast if time doesnt permit now!!
  • And something very special to me,

  • Microchip PIC10F322 --> The cutest & tiniest ;) controller I have in my personal Inventory :-)

  • 1. FIRST PREFERENCE TO THE FAB STORIES!!..


    My EXPERIMENTS WITH - Atmel ATTINY 44


    I have already made FTDI hello world module during MY PRE FAB , So I am not repeating the same here. The learning experiane I had is documented as such for reference. The first process I did was downloading few examples from the archive and start experimenting with it using the Kokopelli CAD tool to make my own board, the process I followed are as follows..

    KOKOPELLI

    kokopelli is an open-source tool for computer-aided design and manufacturing (CAD/CAM).It uses Pethon as a hardware description language for solid models. A set of core libraries define common shapes and transforms, but users are free to extend their designs with their own definitions.

     

    Franscisco introduced us Kokopelli. We started playing aroung it by downloading the FTDI hello world examples shown in the following screen..

     

    We added a button and LED the exiting board and learned how to tinker with kokopelli

     

    In kokopelli we never draw a circuit, instead we write codes for that as shown below. The graphical reasult is shown to the right.

     

    Once the initial starting trouble was overcome, playing around kokopeilli was fairly straight forward and easy to understand. We should understand how each component is added as classes and how to place them in the borad refereing to another component already exixting in the board.

     

    I completed the board with out much difficulty and it is ready to be exported for miling, while exporting we can mention the resolution of pixels. Initially I gave 10, but it was not sufficient and then I repeated the same with a resolution setting of 40.

     

    Inorder to export the traces and board outline seperately, we have to comment or uncomment the desired output settings available in the initial part of the code as shown below.

     

    The image files are ready to be milled and the screen shots of the same are attached for reference. I am not givng a detailed description about how to mill PCBs as it is already explained in the Modella PCB Milling section.

     

    Milling the traces..

     

    Cutting the board edges..

     

    The completed PCB.

     

    Now it is time to assemple the PCB, I had some confusion while trying to find the Anode and Cathode of the SMD LED, The following diagrams are for reference.

     

    The completly assembled PCB.

     

    These are screenshots of few programs I tried..

     

    All the design files used for the programming can be downloaded from here

     

    MOVING ON TO OTHER ARCHITECTURES


    Microchip PIC 12F675

    PIC12F675 is a powerful (200 nanosecond instruction execution) yet easy-to-program CMOS Flash-based 8-bit microcontroller.This Microchip’s powerful PIC MCU architecture is packed into an 8-pin package and features 4 channels for the10-bit Analog-to-Digital (A/D) converter, 1 channel comparator and 128 bytes of EEPROM data memory. This device is easily adapted for automotive, industrial, appliances and consumer entry-level product applications that require field re-programmability.

    Most important features of it are,

  • Program Memory Type --> Flash
  • Program Memory (KB) --> 1.75
  • CPU Speed (MIPS) --> 5
  • RAM Bytes-->64
  • Data EEPROM (bytes)-->128
  • Timers--> 1 x 8-bit, 1 x 16-bit
  • ADC-->4 ch, 10-bit
  • Comparators-->1
  • Temperature Range (C)-->-40 to 125
  • Operating Voltage Range (V) --> 2 to 5.5
  • Pin Count--> 8
  • Cap Touch Channels--> 4

  • This is just a summary of its features going through its data sheet, you can reach the same from here to know more about it..


    SM_FAB PIC12F IN THE MAKING

    I started by making my custom PCB keeping in mind to make a generic development board so that I can use it for different purposes.

    Main features I wanted this Board to have are,

  • Incircuit programming capability
  • 3.3V and 5V Power supply compatibility as per interface requirements
  • Power good indicator
  • USB Powerup or external powerup options
  • ICSP Debugging option
  • Onboard Test Leds
  • Individual GPIO hardware connectivity for flexible external custom circuit interface

  • Here is how it evolved. I am not going to explain every step of PCB fabrication in detail as this weeks learning assignemnt is to concentrate using as many Microcontrollers, IDEs and platforms as possible..

     

    milling the PCB using modella.

     

    milling completed and the edges being cut.

     

    The completed PCB, you can see that I had to manually remove the shorting of tracks I found while verification on two places..

     

    Stuffing the components.

     

    The completed PCB

     

    Connecting the board with the programmer, well to my good fortune I didnt had any trouble and the board got detected without any problem.

     

    EXAMPLE-1 PROGRAM - USING ADC using PICC COMPILER


    This is to demonstrate programming the microcontroller to read LM35 temperature sensor.

     

    I developed the software using PICC Compiler.

     

    I also tried simulatig the circuit using Proteus, here is a screenshot for the same.

     


    FINAL SENSOR READING


    Here is how it I received the serial data from the microcontroller after processing.I used the Terminal Program to read from the serial port.

     

    EXAMPLE-2 PROGRAMMING USING MP LAB IDE


    This is another example program for the PIC12F675 using MP LAP IDE.This is just a simple LED Binking Program for demonstration of this IDE.

     

    Building the program..

     

    Simulating the program using proteus.

     

    EXAMPLE-3 PROGRAMMING PIC16F677A USING MIKROC IDE


    Before we dive deeper into the programming aspects, let me introduce my SM_FAB PIC16F Board designed for generic purpose, mainly thniking of the final project.

    Main features I wanted this Board to have are,

  • Compatible with PIC16F and PIC18F family of microcontrollers
  • Incircuit programming capability
  • 3.3V and 5V Power supply compatibility as per interface requirements
  • RS232 Debugging capability
  • 3.3V or 5V serial Connectivity to Interface with another microcontroller
  • Power good indicator
  • USB Powerup or external powerup options
  • ICSP Debugging option
  • Onboard Test Leds
  • Individual GPIO hardware connectivity for flexible external custom circuit interface

  • I am not going to explain every step of PCB fabrication in detail as this weeks learning assignemnt is to concentrate using as many Microcontrollers, IDEs and platforms as possible.Detailed explanation of making this board will be documented in my Output Week Assignment documentation page.


    CIRCUIT & PCB DESIGN - USING EAGLE

    Schematic Design and PCB was developed using EAGLE CAD, The following shows screenshots shows the various stages of development.

     

    MODELLA - PCB MILLING

    The finished milled PCB, ready to be cut and removed,

     

    Adapter PCB with the microcontroller soldered to it, ready to be fixed to the motherboard.

     

    Though I felt it simple, it wasnt that easy to solder all the wires. it took a while for me to get them soldered. Well no giving up!!

     

    It was time to check one of the critical things, the ICSP connectivity. well to my goodfortune that worked the very first time I plugged in, My programmer could detect the PIC16F877A.. finally a great relief to the hectic soldering :)

     

    MIKRO C Example proram.

     

    The LED next to the Power LED is the test LED on PORTE, I have now powered on the board using external USB connector as you can see..

     

    All the design files used for the programming can be downloaded from here


    As mentioned in the begining,

  • NXP'S ARM Controller --> LPC2148
  • Texas Instruments --> MSP430
  • Single Board Computer --> Raspberry Pi
  • Waspmote Platform --> for my Final project

  • These boards will be documented later as time permits..

    Well, but before I close this page, let me show you the PIC10F I was talking about experimenting in the begining, once I finish designing its PCB, Ill update it here :-)