6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva



Samankaltaiset tiedostot
5.6. C-kielen perusteet, osa 6/8, Taulukko , pva, kuvat jma

6.2. AVR_rauta. Analogia-komparaattori-ohjelmointia , pva

7.3. Oheisrautaa. DS

MUISTIPIIRIT H. Honkanen

6.1. AVR_rauta. ADC-ohjelmointi pva, kuvat jma

Arduino ohjelmistokehitys

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

6.6. Ajastin/laskuri - Timer/Counter pva, kuvat jma

ASCII-taidetta. Intro: Python

5.4. Sulautetun järjestelmän C-kielen perusteet. 4/8. Ohjausrakenteet pva

Mikrokontrollerit. Mikrokontrolleri

7.10. Oheisrautaa. sms Kooste vanhoista, kaipaa vielä fixsaamista,se tulee seuraavaan painokseen.

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Yleinen arkkitehtuuri

Choose Finland-Helsinki Valitse Finland-Helsinki

812336A C++ -kielen perusteet,

Esimerkkinä - ilmainen blogi-julkaisujärjestelmä. WordPress:stä on myös palvelimelle asennettava versio (WordPress.

C++11 seminaari, kevät Johannes Koskinen

Arto Salminen,

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

5.2. Sulautetun järjestelmän C-kielen perusteet 2/8, käsitteet pva

Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä.

ROSSI-AVR Versio 1.1, päivitetty

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

////// VENETIETO.FI \\\\\\ //// Autopilotti 2014 \\\\ //-PID säätimellä. #include <EEPROM.h> #include <SoftwareSerial.h>

Loppukurssin järjestelyt C:n edistyneet piirteet

Tietorakenteet ja algoritmit

Aloita oman blogisi luominen (järjestelmä lupaa sen tapahtuvan sekunneissa ;-))

Moduli 5: Kehittyneitä piirteitä

KILPAILIJAN TEHTÄVÄT ARVIOINTIOSA 5

Taitaja2005/Elektroniikka. 1) Resistanssien sarjakytkentä kuormittaa a) enemmän b) vähemmän c) yhtä paljon sähkölähdettä kuin niiden rinnankytkentä

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

5. HelloWorld-ohjelma 5.1

Loppukurssin järjestelyt

SATAKUNNAN AMMATTIKORKEAKOULU Sähkötekniikan koulutusohjelma. M-koodit Omron servojen ohjauksessa. Luovutettu. Hyväksytty

Tietorakenteet ja algoritmit

////// VENETIETO.FI \\\\\\ //// Autopilotti 2014 \\\\ #include <EEPROM.h> #include <SoftwareSerial.h> SoftwareSerial gps(10, 0); // RX, TX -pinnit

Ohjelmointiharjoituksia Arduino-ympäristössä

EVALUATION FOR THE ERASMUS+-PROJECT, STUDENTSE

Arduino. Kimmo Silvonen (X)

Ohjelmoinnin peruskurssi Y1

Salasanan vaihto uuteen / How to change password

TAITAJA 2007 ELEKTRONIIKKAFINAALI KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Laiteläheinen C-kieli osa 1 pva

Tietueet. Tietueiden määrittely

Curriculum. Gym card

IFAGG WORLD CUP I, CHALLENGE CUP I and GIRLS OPEN INTERNATIONAL COMPETITION 1 st 2 nd April 2011, Vantaa Finland

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle

NiMH Laturi. Suunnittelu Olli Haikarainen

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Intel Pentium Pro -prosessori. tietokonearkkitehtuurit, syksy -96 Ari Rantanen

Hammastankohissin modernisointi. Heikki Laitasalmi

Business Opening. Arvoisa Herra Presidentti Very formal, recipient has a special title that must be used in place of their name

Tietorakenteet ja algoritmit

Käyttöohje Mekuwin V1.9.0 MekuUI V MekuWin II. Konfigurointiohjelma

Ohjelmoinnin perusteet Y Python

ITKP102 Ohjelmointi 1 (6 op)

2. Sulautettu järjestelmä ja mikro-ohjain , pva

HARJOITUSTYÖ: LabVIEW, Kiihtyvyysanturi

Ohjelmoinnin perusteet Y Python

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Information on preparing Presentation

Tässä ohjeessa käydään läpi sosiaalisen median verkkopalveluiden lisätoimintojen lisääminen verkkosivuillesi.

RINNAKKAINEN OHJELMOINTI A,

Ohjelmoinnin perusteet Y Python

VUOSI 2015 / YEAR 2015

Nopeuden mittaaminen

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

1. Yleistä. 2. Ominaisuudet. 3. Liitännät

Luento 5. Timo Savola. 28. huhtikuuta 2006

1. NetBeans-ohjelman asennus ja käyttöönotto pva

KÄYTTÖOHJE PEL 1000 / PEL 1000-M

LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet, syksy 2006

Rotarypiiri 1420 Piiriapurahoista myönnettävät stipendit

Capacity Utilization

TW-LTE 4G/3G. USB-modeemi (USB 2.0)

Kirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä.

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

Tietotyypit ja operaattorit

Älykännykät ovat pieneen tilaan paketoituja, mutta suuret ominaisuudet omaavia tietokoneita.

Ohjelmoinnin peruskurssi Y1

Näin saat 365 päivän ajalta Freshest Data sisältöä NavionicsWeb Store nettikaupasta

Kääntäjän virheilmoituksia

SENAATTILA uudistuu keväällä 2015

Harjoitustyö: virtuaalikone

Security server v6 installation requirements

Transkriptio:

6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva Experience is what causes people to make new mistakes instead of old ones... - Unknown Sisältö Yleistä EEPROM-rekisterit Protoilu-ohje EEPROMmista ja Fuse-biteistä Yleistä EEPROM-muisti, Electrical Erasible Programmable ROM, on muistia, jossa tieto säilyy sähkökatkosten yli ja silti siihen voidaan kirjoittaa kesken ohjelman ajon yksi tai useampi datatavu (toisin kuin flash-muistiin). EEPROMmiin tallennetaan tietoja, joita muutetaan harvoin ja joiden halutaan säilyvän siellä sähkökatkoksen yli. Se on siis eräänlainen iki-data-muisti. avr-gcc-kääntimestä löytyy valmiita funktioita EEPROM-muistin käyttöön. Ne on määritetty eeprom.h-tiedostossa. EEPROM-muistin käytöstä on tiedettävä: The Chip Erase will erase the Flash and EEPROM(1) memories plus Lock bits. The Lock bits are not reset until the program memory has been completely erased. The Fuse bits are not changed. A Chip Erase must be performed before the Flash and/or the EEPROM are reprogrammed. Eli ATmega32 dokumentti kertoo, että siirrettäessä koodia flash-muistiin, ensin erasoidaan = tyhjennetään flash-muistin lisäksi samantien myös EEPROM-muisti. Tämä merkitsee iki-data -muistin tietojen häviämistä, ellei sitä estetä EESAVElukkobitillä. Käytöstä on tiedettävä myös se, että EEPROMin käyttö ei ole yhtä yksinkertaista kuin SRAM-muistin. Se selviää tämän dokumentin harjoituksesta. 1

AVR ATmega32, EEPROM, Electrical Erasible Programmable ROM 25.04.2006 www.microsalo.com EEAR, EEPROM Address Register Bitti H/L 15/7 14/6 13/5 12/4 11/3 10/2 9/1 8/0 Nimi - - - - - - EEAR9 EEAR8 Nimi EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0 1024 Bytes erillinen muistiavaruus, 10 bittiä. Ylimmät bitit luetaan aina nollaksi. Initial-arvo on määrittelemätön. Oikea osoite määritettävä ennen käyttöönottoa. EEDR, EEPROM Data Register Bitti 7 6 5 4 3 2 1 0 Nimi MSB LSB Sisältää EEPROM-muistiin kirjoitettavan datan. Kirjoitetaan osoitteeseen, joka on EEAR-rekisterissä. Luettaessa EEPROM-muistia data talletetaan tänne. EECR, EEPROM Control Register Bitti 7 6 5 4 3 2 1 0 Nimi - - - - EERIE EEMWE EEWE EERE Bitti Nimi Merkitys Toiminto 3 EERIE EEPROM Ready Interrupt Enable 1: enables EEPROM Ready Interrupt. 0: disables. Keskeytys nollaa EEWEn. 2 EEMWE EEPROM Master Write Enable 1: setting EEWE within 4 clock cycles will write data to the EEPROM. Jos asetettu 1 softalla, HW clears to bit after 4 clk. 0: EEWE will have no effect 1 EEWE EEPROM Write Enable 1: EEWE is the write strobe to the EEPROM EEMWE bit must be written to one before a logical one is written to EEWE. 0 EERE EEPROM Read Enable 1: is the read strobe to the EEPROM Pollaa EEWEä ennen lukemista, ei voi lukea ennen kuin on lupa. Voidaan kirjoittaa ja erasoida vähintään 100 000 kertaa. 2

Protoilu-ohje EEPROMmista ja Fuse-biteistä 29.11.06 muutettu toimimaan PV-M32-kortilla Toimii Atmega32 1. The Chip Erase will erase the Flash and EEPROM(1) memories plus Lock bits. The Lock bits are not reset until the program memory has been completely erased. The Fuse bits are not changed. A Chip Erase must be performed before the Flash and/or the EEPROM are reprogrammed. Note: 1. The EEPRPOM memory is preserved during chip erase if the EESAVE Fuse is programmed. EEPROM-muistin sisältö tuhotaan samalla kun flash-muisti erasoidaan (ohjelmoidaan), ellei sitä ole EESAVE-bitillä estetty. 2. Tutustu koodiin eep_write.c. Käännä ja siirrä AVR:n flash-muistiin ja aja se. 3. Tutustu koodiin eep_read.c. Käännä ja siirrä AVR:n flash-muistiin ja aja se. - huomaat, että tulostaa toiselle riville sutturaa - tämä siksi, että ohjelmoitaessa EEPROM-muisti on nollattu, eli kirjoitettu täyteen 1 4. tee kohta 2. uudelleen 5. Avaa ohjelmointiohjelma JTAG ICE. Valitse Fuses-välilehti. Paina Read-nappia. Seuraavan kuvan mukainen ikkuna aukeaa. 3

Varmistu että Preserve EEPROM memory through the Chip Erase cycle on ohjelmoimatta, eli se on kruksaamatta, mikä tarkoittaa erasoinnin jäljiltä se on 1. Muutetaan ko. eli EEPROM-fuse-bitti nollaksi, eli ohjelmoidaan se. Joka merkitsee, että flash-muistia ohjelmoitaessa EEPROM-muisti jätetään entiselleen (sitä ei erasoida). Kruksaa EEPROM-fuse-bitti. Paina Program-nappia. OLE HUOLELLINEN, muihin bitteihin ei saa koskea! Tarkista, Read, että homma onnistui. 6. Tee kohta 3 uudelleen. Nyt tulostaa HELLO AVR lcd-näytölle, jos kaikki on mennyt kuten piti. 4

Käytettävät koodit /**************************************************************** Project : eep_write.c, Hardware: PV-M32 (4 MHz) + PV-LCD1602 Software: WinAVR 20060421 Date : 29.11.2006 Author : pva Comments: kirjoittaa EEPROM-muistiin ****************************************************************/ #include <avr/io.h> #include <avr/eeprom.h> #include "lcd_tat.h" #define ROW 0 #define PLACE 0 // prototyypit void Write_to_eeprom(void); int main(void) LCD_init(1, 0, 0); LCD_writeString("WR_to_EEPROM"); Write_to_eeprom(); LCD_setCursorXY(PLACE, ROW+1); LCD_writeString("Valmis!"); return 0; void Write_to_eeprom(void) uint8_t i; uint8_t EEPROM_addr = 0x00; uint8_t jono[12] = "HELLO WORLD!"; //talletetaan EEPROMmiin for(i=0; i<12; i++) eeprom_write_byte(eeprom_addr + i, jono[i]); /*************************************************************** Project : eep_read.c Hardware: PV-M32 (4 MHz) + PV-LCD1602 Software: WinAVR 20060421 Date : 29.11.2006 Author : pva Comments: lukee EEPROMmia ja tulostaa ==>lcd ****************************************************************/ #include <avr/io.h> #include <avr/eeprom.h> #include <util/delay.h> #include "lcd_tat.h" #define ROW 0 #define PLACE 0 // prototyypit void Lue_eeprom(void); void wait(uint16_t time); // globaali muuttuja 5

uint8_t EEPROM_addr = 0x00; int main(void) LCD_init(1, 0, 0); while(1) LCD_setCursorXY(PLACE, ROW ); LCD_writeString("From EEPROM"); Lue_eeprom(); wait(1000); LCD_clear(); wait(500); void Lue_eeprom(void) uint8_t i; LCD_setCursorXY(PLACE, ROW+1); for(i=0; i<12;i++) wait(100); LCD_writeChar(eeprom_read_byte(EEPROM_addr + i)); // luetaan merkit yksitellen EEPROMmista // ja tulostetaan ->LCD // *** Primitive wait() *** void wait(uint16_t time) uint16_t i; for(i=0;i<2000;i++) _delay_loop_2(time); 6