logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

zapisywanie danych w pamieci atmega32

maly_ZE 03 Kwi 2011 17:47 1637 12
REKLAMA
  • #1 9356229
    maly_ZE
    Poziom 14  
    Witam;
    Posiadam płytke avr z podłaczonym pod nia czujnikiem temperatury ds1820. Czujnik komunikuje sie z atmega32 poprzez magistrale 1-wire, wszystko ładnie chodzi, temperatura wyświetlana jest na wyświetlaczu.
    Chciałbym teraz zapisywać dane(tzn. temperaturę) co jakiś określony czas w pamięci mikrokontrolera, tylko że nie za bardzo wiem jak się w ogóle za to zabrać. Dodam tylko ze wszystko co napisałem do tej pory, pisałem w programie WinAVR w języku C.
    Prosze o pomoc jak sobie poradzić z tym zapisywaniem danych w pamięć atmegi.
    Z góry dziekuje
    Pozdrawiam serdecznie
  • REKLAMA
  • REKLAMA
  • #3 9356391
    tmf
    VIP Zasłużony dla elektroda
    Ze względu na stosunkowo niewielką ilość pamięci EEPROM w tym procesorze, może być sensowne zastosowanie zewnętrznej pamięci EEPROM, np. na I2C.
  • #4 9357783
    maly_ZE
    Poziom 14  
    tmf napisał:
    Ze względu na stosunkowo niewielką ilość pamięci EEPROM w tym procesorze, może być sensowne zastosowanie zewnętrznej pamięci EEPROM, np. na I2C.

    tzn co dokladnie masz na mysli piszac I2C.?? troche więcej szczegółów badź też jakieś przydatne linki.?
    Z góry dzieki
    Pozdrawiam
  • REKLAMA
  • #5 9358134
    pancio
    Poziom 16  
    W przypadku Atmela protokół i magistrala nazywa się TWI - zgodny sprzętowo z I2C, możesz do tej magistrali podłączyć dowolny układ korzystający z magistrali i2c - między innymi zewnętrzną pamięć EEPROM np. 24LC64
    - ta akurat 64Kb ale można i większe.

    Zobacz przykładowo: magistrala I2C i AVR jest tez gotowy - działający kod.
  • #6 9361848
    asembler
    Poziom 32  
    A jeszcze łatwiejsza do obsługi i o wiekszej zdecydowanie pojemnosci bedzie szeregowa pamiec flash np SST010 (128kB) koszt okolo 2 zł czyli niewielki a mozliwosci że zapisac możesz kilka lat próbek.
  • #7 9362355
    tmf
    VIP Zasłużony dla elektroda
    Niekoniecznie będzie łatwiejsza. Pamięcie FLASH programuje się stronami, które są raczej duże. W efekcie symulacja zapisu tak jak do EEPROM może nie jest specjalnie trudna, ale zdecydowanie trudniejsza niż dla EEPROM I2C. Natomiast istotnie, pamięci te mają zdecydowanie większe pojemności.
  • #8 9362363
    maly_ZE
    Poziom 14  
    asembler napisał:
    A jeszcze łatwiejsza do obsługi i o wiekszej zdecydowanie pojemnosci bedzie szeregowa pamiec flash np SST010 (128kB) koszt okolo 2 zł czyli niewielki a mozliwosci że zapisac możesz kilka lat próbek.


    A czy masz moze jakies przykłady jak obsługiwać taka pamieć.?
    Czyli trzeba taka pamiec podlaczyć pod atmege32 i zaprogramować transmisje danych z atmegi na flasha.?? Dobrze rozumuje
    Pozdrawiam
  • #9 9362366
    dondu
    Moderator na urlopie...
    Dobrze rozumiesz, ale pamiętaj że Flasha w porównaniu z EEPROMami mają znacznie ograniczoną ilość zapisów - może Ci wystarczy. No i stronicowanie, o którym wspomniał TMF nieco ogranicza funkcjonalność FLASHa w porównaniu do EEPROM.
  • #10 9362383
    asembler
    Poziom 32  
    Jakie stronicowanie w tym wypadku przy kostce np SST25LF080 1MB i zapisie temperatury co godzinę mamy 500 000 godzin ( ludzie tak długo nie żyją).
    100 000 zapisów gwarantowanych razy ilosc godzin wyzej to juz kosmos.
    A są jeszcze kostki 2,4,8,16MB cenowo mało sie różniace.
    Dla porównania obsługa pamieci SPI i I2C ma sie tak jak 1 do 2 w długosci kodu na dodatek jest wielokrotnie szybsza - co akurat tu nie ma znaczenia aczkolwiek jak sie odpowiednio źle napisze program może mieć znaczenie.
    Zapis jednego bajtu do uS a w przypadku EEPROM to mS. Jak nie w tym projekcie to w następnych taka własciwośc sie może okazać bardzo przydatna.
  • REKLAMA
  • #12 9363957
    maly_ZE
    Poziom 14  
    Jeszcze 2 takie pytania:
    1- ma ktoś może schemat podłaczenia pamieci EEPROM 24C32 do atmegi32.?
    2- czy użycie ds1307 jako zegara czasu rzeczywistego to dobre rozwiazanie(potrzebuje tylko wyłuskiwac date i godzine, żadnych innych rzeczy) czy może lepszy będzie PCF8583. Który łatwiejszy w oprogramowaniu.?
    Z góry dzieki za pomoc.
    Pozdrawiam Adrian
  • #13 9364016
    asembler
    Poziom 32  
    Najłatwiejszy jest PCF8563 (63)
REKLAMA