WEEK 8

EMBEDDED PROGRAMMING

WEEK ASSIGNMENT

Read a microcontroller data sheet

Program your board to do something

For my hello-world board I used an ATtiny84

ATtiny 84 Datasheet DOWNLOAD

You can download the files HERE

Before this assignment I had no previous experience with programming, so I started searching about Arduino IDE and atmel microcontrollers.

I have to be honest I wasn't really sure about what microcontrollers do, but after reading about them and reading the ATtiny 84 data sheet I now understand the capacities of these little elements. The datasheet showed me its features, peripherial features, special features of the ATTiny 84, memory, etc. In the datasheet many technical information is displayed, even though I wasn't able to understand it at all, it pushed me to look for some information so I could understand it better.

 

I still have some doubts, for instance,

 

-how micro-controllers are designed and produced?

-What materials are used to make microcontrollers?

-

 

To complete this assignment I followed this steps:

 

- Programming my board with and Arduino in ISP mode

-Example program trial

-Designing my own program

-Programming the board with an Arduino

 

Unfortunately my ISP board never worked,  so I used an Arduino Mega to program my hello-world board, to do this you have to set an special configuration into your arduino is very easy just follow the following steps:

 

 

1.- Download the ATtiny library and install it into the arduino libraries (DOWNLOAD)

 

 

 

In the Arduino folder open the hardware sub-folder

Then go to the folder named "arduino"

Open avr folder

replace the files boards and platform and then open the folder variants

inside this folder drag and drop the folder tiny8 and tiny14

2.- Set the configuration in Arduino IDE

Open tools and choose an ATtiny as your board (this option will only be available after the previous process)

Choose your ATtiny model

choose the clock you will be using and be sure you have selected the option "programmer arduino as ISP"

Now your arduino works as an ISP board, now connect you hello-world board to the arduino. In my case I installed a LED to show if the board is receiving voltage.

2.- Example program trial

 

Now I recommend you to upload an example program to your board for example "Blink" with this program your led connected to the microcontroller should shine.

 

It is very important to change in the program the pins used in you ATtiny that information comes into the ATtiny library. (download link at the beginning of this page)

3.- My program

If everything worked well your board is able to run any other program, in my case despite I putted a 20 MHz crystal on my board  it didn't worked, so I had to tell the program that I wanted to use the internal ATtiny 1MHz crystal, I based my program on the blink and button example programs and it worked!! I'm so happy about that.

 

How does it work?

It works exactly as blink do, but instead of just turning on the LED when the button is pressed it will run a sequence of blinks.

The digital read will detect if the button is "high or low", when the button is "high" it will run a sequence, this sequence has digitalWrites to turn on the led and delays to turn it off, each  delay correspond to the pause needed in morse code to understand which letter is being shown.

I added some comments to indicate the letter and its sequence.

 

DOWNLOAD CODE

What my program does is to show my name in Morse code with LED blinks, the program will run every time the button in pressed.

 

This is an example of how it works.