Wednesday, October 22, 2008

Real schematik to interface a SD/MMC card to atmega microcontrollers

Because many sites operate a scheme to connect an SD/MMC card to a ATmega microcontroller that is non functional, I mean scheme with dividing resistive to the ground, I decided to post an overall scheme real functional and will post and parameters operation of a card at different voltages, everything after more probe:

We know that most cards SD/MMC operates in a voltage between 2.7 and 3.6 V, I will recommend one to use the minimum operating voltage.
However such a card works at 5V supply voltage without any risk of failure, but a voltage across the card manufacturer's specifications will work only read data and read CID etc. Write delete functions will not work

SD/MMC card and ATmega at diferent voltages:





SD/MMC card and ATmega at same voltages:


Sunday, October 12, 2008

Spi Software for all atmega microcontrollers

This is a simple library for software SPI compatible with all ATmega microcontrollers according to specifications 45DB SPI interface

( is not tested yet )

Download ASM Library

Friday, October 10, 2008

Driver for Nand Flash memory chip for normal port operation

This is one driver for interfacing programs to Nand Flash Chip Memory as those used in Stik USB or SD / MMC cards

It is known that a page of a nand Flash memory is 2048 +16 Bytes

Nand flash memories allow delete only a block of data or the entire chip, writing a whole page, reading a whole page, or rewriting a page keeps unchanged, but you can not edit a byte already written a page.

This example is for 1GByte nand flash chip memory K9K8G08U0A

Download ASM code driver




























































Download .Max Orcad Project

PPC terminal for Com ports

This is one COM terminal for pocket PC for Windows Mobile 2003 or later

For running this terminal is necessary .Net Framework 2.0























Download .Exe Program

Smartphone terminal for Com ports

This is one sample com terminal for Windows mobile Smartphone edition 5.0 or later

For running this terminal is necessary .Net Framework 2.0























Download .Exe program

I2C library for 24C.... external EEprom memory for ATmega microcontrollers

This is a driver for control one 24c... EEProm memory on Byte level for read / write and page level for complete format

This driver is compatible with EEProm i2c memory between 512 and 65536 Bytes capacity.

This library is made for ATmega8 but with some modifications is working on all ATmega microcontrollers

Download this library

Wednesday, October 8, 2008

New explorer for max displays resolution 244x244

An explorer full display Samsung E700.
This driver will include:

  • 1) Draw a text:
- The default color set to initiate the page or run Explorer
- With a pre-color description in the order of drawing text

  • 2) Draws a link:
- Link will default colors to select and clear preset to initiate or start page Explorer, calling routines click on this link will call on the name and number to order the program.
- Link will set the colors in the description Linc to select and deselect preset to initiate or start page Explorer, calling routines click on this link will call on the name and number to order the program.
- Link will default to select colors and clear preset to initiate or start page Explorer, calling routines click on this link will call at the number and order of the program.
- Link will set the colors in the description Linc to select and deselect preset to initiate or start page Explorer, calling routines click on this link will call at the number and order of the program.

  • 3) text editor:
- During the translation page and display them when there is a text editor library will call the name of the program that is attached to the text and edit the command, the program can read the contents edited text of a buffer separate text content publisher to create page will be "FF", this program has to return the same string buffer that will be displayed in text editor.
- During the translation page and display them when there is a text editor library will be made by calling the program that is attached to the text and edit the command, the program can read the contents edited text of a buffer separate text content publisher to create page will be "FF", this program has to return the same string buffer that will be displayed in text editor.
(Color color text will be declared the creation of the page or initiate Explorer, the color of the border will be declared the creation of the color page or entering into Explorer, background color of text edit initially will be white)

  • 4) Chek box:
- During the translation page and display them when there is a check box library will call the name of the program that is attached in check box and the command, the program can read 2 = Neinitializat, 0 = We checked, 1 = ticked in the register R16 Thus creating the page will be read will be 2, this program has to return in the same register 0 = us option 1 = check, as will happen every call of that program and the routine question
- During the translation page and display them when there is a check box library will be made by calling the program that is attached in chek box and the command, the program can read 2 = Neinitializat, 0 = We checked, 1 = ticked in the register R16 Thus creating the page will be read will be 2, this program has to return in the same register 0 = us option 1 = check, as will happen every call of that program and the routine question

The format of description page in buffer is:

  • SetBacgroundColor:
- 4 | 0 | Color(Low),Color(High)

  • SetInkColor:
- 4 | 1 | Color(Low),Color(High)

  • SetBarColor:
- 4 | 2 | Color(Low),Color(High)

  • SetPointerAdress:
- 4 | 3 | X AdressForPointer,Y AdressForPointer

  • PrintStaticText:
- 4 + String length | 4 | 0 | LengthOfString | StringText
- 6 + String length | 4 | 1 | Low(InkColor),High(InkColor) | LengthOfString | StringText

  • PrintLinkText:
- 8 + String length Link+ String Length name of program | 5 | 0=Unselected,1=Selected | 0 | 0 | Number of char in Link | String in Link | Number of function in program | LengthOfStringNameProgram | StringNameOfProgram

- 12 + String length Link+ String Length name of program | 5 | 0=Unselected,1=Selected | 0 | 1 | Low(InkColorForUnSelected),High(InkColorForUnSelected) | Low(InkColorForSelected),High(InkColorForSelected) | Number of char in Link | String in Link | Number of function in program | LengthOfStringNameProgram | StringNameOfProgram

- 9 + String length Link | 5 | 0=Unselected,1=Selected | 1 | 0 | Number of char in Link | String in Link | Number of function in program | Low(AdressOfProgramToCall),High(AdressOfProgramToCall)

- 13 + String length Link | 5 | 0=Unselected,1=Selected | 1 | 1 | Low(InkColorForUnSelected),High(InkColorForUnSelected) | Low(InkColorForSelected),High(InkColorForSelected) Number of char in Link | String in Link | Number of function in program | Low(AdressOfProgramToCall),High(AdressOfProgramToCall)

  • PrintTextEdit:
- 8 + Max string length Text+ String Length name of program | 6 | 0=Unselected,1=Selected | 0 | Number of char in TextEdit | Max length of textEdit | String in TextEdit | NumberOfFunctionInProgram | LengthOfStringNameProgram |StringNameOfProgram

- 9 + Max string length Text | 6 | 0=Unselected,1=Selected | 1 | Number of char in TextEdit | Max length of textEdit | String in TextEdit | NumberOfFunctionInProgram | Low(AdressOfProgramToCall),High(AdressOfProgramToCall)

  • PrintKeckBox:
- 7 + String Length name of program | 7 | 0=Unselected,1=Selected | 0=UnCheked,1=Cheked | 0 | NumberOfFunctionInProgram | LengthOfStringNameProgram | StringNameOfProgram

- 8 | 7 | 0=Unselected,1=Selected | 0=UnCheked,1=Cheked | 1 | Low(Program name),High(Program name),Number | NumberOfFunctionInProgram

  • SetLinkColor:
- 6 | 8 | UnSelectedLinkColor(Low),UnSelectedLinkColor(High)| SelectedLinkColor(Low),SelectedLinkColor(High)

  • SetPointer:
- 4 | 9 | X Coordonate | Y Coordonate

  • PaintVerticalLine:
- 6 | 10 | 0 | X Coordonate | Y Coordonate | Y Length

- 8 | 10 | 1 | Low(Color),High(Color) | X Coordonate | Y Coordonate | Y Length

  • PaintHorizontalLine:
- 6 | 11 | 0 | X Coordonate | Y Coordonate | X Length

- 8 | 11 | 1 | Low(Color),High(Color) | X Coordonate | Y Coordonate | X Length

  • PaintSquare:
- 7 | 12 | 0 | X Coordonate | Y Coordonate | X Length | Y Length

- 9 | 12 | 1 | Low(Color),High(Color) | X Coordonate | Y Coordonate | X Length | Y
Length

  • SetPlotColor:
- 4 | 13 | Color(Low),Color(High)


Status = coming up soon

Topics toll programs by name and was implemented for the explorer to be compatible with Kernel V0.3 learned here

The stage of this explorer is:

For example for paint One label ,3 links , 1 versical bar, one horizontal bar, one rectangle , one check box ( uncheked) and one chek box (cheked) load in buffer memory this data code:

.Equ CodeForSetBacgroundColor = 0
.Equ CodeForSetInkColor = 1
.Equ CodeForSetBarColor = 2
.Equ CodeForSetPointerAdress = 3
.Equ CodeForPrintStaticText = 4
.Equ CodeForPrintLinkText = 5
.Equ CodeForPrintTextEdit = 6
.Equ CodeForPrintKeckBox = 7
.Equ CodeForSetLinkColor = 8
.Equ CodeForSetPointer = 9
.Equ CodeToPaintVerticalLine =10
.Equ CodeToPaintHorizontalLine =11
.Equ CodeToPaintSquare =12
.Equ CodeForSetPlotColor =13

.db 4,CodeForSetBacgroundColor,Low(BLUE),High(BLUE),
4,CodeForSetInkColor,Low(WHITE),High(WHITE),
6,CodeForSetLinkColor,Low(YELLOW),High(YELLOW),Low(RED),High(RED),
12,CodeForPrintStaticText,0,8,"Hello!!!",
4,CodeForSetPointer,0,8,
14,CodeForPrintStaticText,1,Low(RED),High(RED),8,"Hello!!!",
4,CodeForSetPointer,0,16,
24,CodeForPrintLinkText,0,0,0,8,"Hello!!!",1,8,"Hello!!!",
4,CodeForSetPointer,0,24,
24,CodeForPrintLinkText,1,0,0,8,"Hello!!!",1,8,"Hello!!!",
4,CodeForSetPointer,0,32,
24,CodeForPrintLinkText,0,0,0,8,"Hello!!!",1,8,"Hello!!!",
14,CodeForPrintKeckBox,0,0,0,8,"Hello!!!",
14,CodeForPrintKeckBox,0,1,0,8,"Hello!!!",
6,CodeToPaintVerticalLine,0,50,50,30,
6,CodeToPaintHorizontalLine,0,50,50,30,
7,CodeToPaintSquare,0,2,60,40,10,255

And result this for samsung e700 display:
























Text edit implemented
























This is the complete schematic for one atmega64 and one samsung e700 display( the ram memory is not necessarily )



























Monday, October 6, 2008

My third development board for ATmega640-1280-2560

There are modules and connectors to come on this development board.
Point out that I did not even cable.

Here is described the top face:





















Here is described Bottom face:






















Download .MAX project for orcad

Sunday, October 5, 2008

Manage page from SD/MMC/HDD memory with page bufer

This is one driver for accessing SD/MMC/HDD drive on byte level with auto replacement page selection

This driver support drives until up to the amount 2^41 in 512Bytes on page and 2^48 bytes in 65536Bytes per page

This library is ready to serves pages from 256 to 65536Bytes

Download ASM driver file


And this driver is interface to up driver and SD card memory


Download ASM driver file

With this drivers on ATmega640 at 19,5Mhz the transfer rate betwen Controller and SD card is :
-63167Bytes/s Linear write
-111550Bytes/s Linear read

Saturday, October 4, 2008

Most tiny AVR Dopper programator for atmega microcontrollers




Download .MAX board project for orcad
Download schematick.
Link to download AVR Doper firmware and driver

DiY: Development board 2 for ATmega640

Download .MAX project for this development board

Download Gerber files for this development board

DiY: Development board 1 for ATmega640

Download .MAX Project for this development board

DiY: Development board for ATmega64

Download .MAX Board project for orcad

Simple RPM Auto

Download Firmware and ASM code

A small remote controll for 8 digital channels

This is one remote control wih ATmega8 and Rx-Tx Modules
The fuse bits will be set-up to work with internal RC oscillator at 1Mhz

Download Tx Firmware and ASM code
Download Rx Firmware and ASM code

Mini Led Cross

One sample led cross





Download entire project

Extended driver in comand line for Nokia6100 Display Philips chip

This driver is designed to work with a display of Nokia6100 with the Philips chip and is provided with additional features from the base:

This driver is double buffered to refrash's on display only characters that are modified in this way speed refrash being much improved given that SPI interface 9Biti display is done with software

Positions included declared constants in the driver are:

1) DisplayIdle = Idle
2) DisplaySetup = Interface Setup
3) DisplayWriteChar = WriteOneChar (auto increment, R16 = character writing)
4) DisplayUpCursor Moving the cursor from the menu at a superior position
5) DisplayDnCursor = The move cursor on the menu at a lower position
6) DisplayGetCursor = Read position the cursor on the menu (R16 = Position)
7) DisplayClear = Clear display
8) DisplayWriteTxt = enter a default text from flash memory
9) DisplayCreateProgress = Create a Progress bar
10)DisplayProgressRfsh = Update the progress bar (yl = value between 0 and 111)
11) DisplayCreateMenu = Create a Menu (x is adress of menu in Flash)
12) DisplayInkColor = Set the color character (R16-R17 = color)
13) DisplayBekgroundColor = Set the becground color (R16-R17 = color)
14) InteruptDriverLCD = Interupt priority

To access this subrutinelor driver just called routine selection functions.

EX:
Ldi R25,(Commanda)
Mov R15,R25
Rcall PrimireComenziDriverLcd6100

Resurse consumate:
- Flash ...
- EEprom ...
- Ram = (2x256)+20Bytes

Rfsh display is made to order InteruptPriorrity therefore it should be called the most possible and loops of delay and Idle because every call of this is rfsh a character on display, so to make everything rfsh display is need to call this with 256 times.
I chose this method because rfsh entire rfsh display controller take quite a long time about 0.2 seconds and if it stays in a loop of 5-second delay for example in those 5 seconds is no longer able to refrash, so may resort to a contrivance: to make delay-ROMs and much shorter and every delay to send the command to rfsh such display is being updated and if the display is ADD characters and commands of interruptions


Download this driver

Minidriver for Nokia3310 Display

This is a general driver

EX:
Ldi R25,(Command)
Mov R15,R25
Rcall PrimireComenziDriverLcd3310

1) Idle
2) Setup Interface
3) No Comand
4) WriteOneChar(auto increment, R16 = The aracter)
5) WriteOneCharWithAdress(R16 = The caracterul,R17 = Vertical adress (0 to 13),R18 = Horizontal adress (0 to 4)
6) Clear display(Black Color)
7) Clear display(White Color)
8) Print Logo (x = The adress of logo in flash memory,R17 = Orizontal adress in char (0 to 13),R18 = Vertical adress in char (0 to 4))
The logo is in this format:
; ------------------------------------------------------------------------------------------------------------------------------
|Low(LogoDimension)|High(LogoDimension)|0=NonInvertingColor,1=InvertingColor|......Logo.................|
------------------------------------------------------------------------------------------------------------------------------

Download driver

Minidriver for 2x16 to 4x40 Char display

Driver for Hd44780 8bit data bus

This driver is designed for 2x16 to 4x40 Char

Include:
Char Write
Text write from Flash
Clear Display

Function included:
DisplayIdle44780
DisplaySetup44780
DisplayWriteChar44780
DisplayClear44780
DisplayWriteTxt44780

Download driver

Minidriver for Sharp displays 320x240

This is a driver for 320x240 3,5 inch Sharp display in command line mode 2,5 FPS atmega64 16 mhz

To display the characters on the screen uses a buffer for ASCII characters to be displayed with the size of 1200Bytes (Xresolution / XCaracterDimension) * (Yresolution / YCaracterDimension)

Download entire project

RPM & Temperature & Gass Monitor

One simply project for ATmega Microcontrollers

Function = RPM & Temperature & Gass Monitor in Graphic mode

Contain:
One module for measurament of pulse and convert in RPM
One module for measurament of Temperature in analogic mode
One module for measurament of Fuel Gass in analogic mode
One driver for LCD display Nokia 3310 including char inserting and logo paint
This program is compiled in ASM AVRStudio 4

Target core = Posted for Atmega8
Modified = All ATmega Core

Resources :
Data Flash = 2114 Bytes
Code Flash = 1256 Bytes
Total Flash = 3370 Bytes
Data Ram = 7 Bytes

Download entire project

3 in 1 bipolar motor steper controller with only one controller

This project is designed for control 3 motors stepper independently with only one ATmega8 mocrocontroller
The interface is Serial 19200b/s





Dovnload entire project