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

Wybór zewnętrznej pamięci EEPROM do ATtiny z odczytem przez STK200

barteq86 13 Kwi 2007 19:16 2589 5
REKLAMA
  • #1 3784428
    barteq86
    Poziom 11  
    Posty: 7
    Ocena: 3
    Chcę skonstruować urządzenie, które kilkanaście razy dziennie (po przerwaniu) zapisze do pamięci EEPROM godzinę i temperaturę, razem 3 bajty. Układ będzie pracował na jakimś ATiny i termometrze 1-wire Dallasa.
    Całość ma być mała (z bateriami wilekość temperówki), lekka i tania, więc planuję wykonać ją w SMD (przeszedłem już przez temat uśpienia i asynchronicznego licznkia). Prototyp już chodzi na Atmega8, ale brakuje pamięci (potrzeba miejsca na około dwadzieścia dni).

    Pogodziłem się z zewnętrzną pamięcią EEPROM, tylko nie wiem jaki model wybrać (na pewno szeregową). Zależy mi na łatywm odczycie danych przez komputer (najlepiej za pomocą STK, bo nie mam ochoty na zabawę z RS-em, słyszałem, że to możliwe, ale nie mam pojęcia jak się do tego zabrać). Zanim utonę w dokumentacjach, potrzebuję przekrojowego opisu typów EEPROM-ów, najlepiej z konkretnymi modelami (wystarczy około 4kB) i listą największych problemów na jakie mogę się natknąć.

    Z góry dziękuję za pomoc.
    Bartłomiej Dudek
  • REKLAMA
  • #2 3784609
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 123
    Karty chip z procesorami AVR mają wbudowaną pamięć EEPROM - programuje się je za pomocą programu w AVRze.

    Myślę że najlepszym rozwiązaniem dla Ciebie byłoby napisanie bootloadera dla uC który umożliwi programowanie samego mikrokontrolera oraz pamięci. Do tego będzie wymagał tylko 3 pinów więc kolejna oszczędność miejsca. Wystarczy wgrać tylko raz bootloader...

    stk200 nie programuje żadnej pamięci eeprom.

    Prosty programator do pamięci EEPROM i2c masz tutaj:
    http://www.lancos.com/prog.html#hardware
    na samym dole.

    Do programowania wymaga jedynie 4 przewodów (SDA SCL i zasilanie)

    4KB ma 24C32 - 32Kbity.
  • REKLAMA
  • #3 3784720
    barteq86
    Poziom 11  
    Posty: 7
    Ocena: 3
    McRancor napisał:

    Myślę że najlepszym rozwiązaniem dla Ciebie byłoby napisanie bootloadera dla uC który umożliwi programowanie samego mikrokontrolera oraz pamięci. Do tego będzie wymagał tylko 3 pinów więc kolejna oszczędność miejsca. Wystarczy wgrać tylko raz bootloader...


    O ile dobrze rozumiem pozwoli mi to wykorzystać pamięć EEPROM mikrokontrolera i nieużywaną pamięć programu do zapisu danych pomiarów. Myślałem nad tym, bo co prawda przy awarii zasilania wyniki zapisane we FLASHu pójdą się kochać, ale rozwali to też zegar, więc i tak cała impreza na nic. Jednak mimo wszystko będę upierał się na zewnętrzny EEPROM ze względu na możliwość jej łatwego powiększenia i ewentualnego zagęszczenia pomiarów.

    Pojawia się nowe pytanie: według mojej wiedzy na I2C urządzenia są adresowane. Wynika z tego, że zewnętrzną pamięć można odczytać bez wyjmowania z układu. Czy mam rację, cy poniosła mnie fantazja i to nie jest takie proste?
  • REKLAMA
  • Pomocny post
    #4 3784789
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 123
    Chodziło mi o wykorzystanie bootloadera jako programu do wgrywania samej pamięci mikrokontrolera (firmware) oraz dodatkowo "pomostu" służącego do programowania zewnętrznej pamięci podłączonej do uC dowolnym interfejsem - eliminuje to potrzebę podpinania kilku programatorów do kilku złącz, oraz w elegancki sposób pozwala na odczyt zawartości EEPROMu (konwerter USB<>RS232 i mamy urządzenie na USB ;) )

    To że pamięć eeprom i2c jest adresowana nie implikuje tego że można ją odczytać w układzie - można to zrobić za pomocą opisanego wyżej sposobu (bootloader mikrokontrolera odczytuje pamięć i wysyła jej zawartość do PC) albo "na bezczelnego" przez podpięcie się pod linie SDA i SCL pamięci. Problem powstanie gdy podłączy się zasilanie gdyż zacznie pracować mikrokontroler i może on nieodpowiednio sterując pinami uniemożliwić odczyt.

    Jest na to prosta metoda - wystarczy zewrzeć pin RESET mikrokontrolera do masy - w stanie resetu jego wejścia są w stanie wysokiej impedancji więc nie będą "przeszkadzać"
  • REKLAMA
  • #5 3784904
    barteq86
    Poziom 11  
    Posty: 7
    Ocena: 3
    Teraz rozumiem. Pisząc "odczytywanie w układzie" miałem na myśli właśnie bezczelne wpięcie się w magistralę między procesor a pamięć.

    Pora wziąć książkę w łapki i poczytać. A jak się zawezmę, użyję karty mini SD :)
  • #6 3784943
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 123
    Wtedy już musisz iść za ciosem i FAT-a jakiegoś zapodać i zapisywać dane w jakimś formacie umożliwiającym prostą obsługę na PC ;)
REKLAMA