Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
TespolTespol
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Programowanie EEprom, ATmega, Płynny ruch.

12 Aug 2009 16:16 4731 9
  • Level 15  
    Mam pytanie dotyczące pamięci EEPROM i mikrokontrolerów ATmega

    Projektuje maszynę, coś w rodzaju CNC tylko mam tam 4 silniki krokowe. I obecnie jestem na etapie sterownika. W skrócie wygląda to tak że Atmega pobiera sobie współrzędne XYZ punktu trasy, następnie obliczana jest ilość potrzebnych impulsów na silniki, następuje ruch i znowu program sięga do pamięci po współrzędne i tak dalej aż do ostatniego punktu.
    Problem w tym że Atmega32 którą chce zastosować ma 1k pamięci a to wystarczy mi tylko na ok 220 punktów (licze po 4 bajty na jeden punkt + zapas na dane stałe) Chciałbym zapamiętać ok 1000 punktów.
    Więc chciałem się Was poradzić jaką pamięć zewnętrzną zastosować i czy nie będzie ona zbyt wolna ponieważ zależy mi aby ruch między punktami odbywać się w sposób płynny.
    Jak się programuje EEpromy (te wewnątrz Atmegi i te oddzielne) przez mikrokontroler czy bezpośrednio?

    Pozdrawiam :)
  • TespolTespol
  • Level 21  
    Witaj Kolego.

    Ja na Twoim miejscu zastosował bym pamiątkę SPI np. at45db321d i masz problem z głowy jest dużo szybsza niż I2C oraz dużo bardziej pojemniejsza. Jedyny mankament to trochę bardziej skomplikowana obsługa ale zrobisz raz i będziesz miał. Pozdrawiam
  • TespolTespol
  • Level 22  
    W jakim języku będziesz pisał program :?: Jeżeli w BASCOM, to tam znajdziesz wbudowane instrukcje obsługi wewnętrznej pamięci EEPROM. A co do zewnętrznych, to istnieje seria 24CXX (np.: 24C64). A może lepiej zastosować jako nośnik danych karty SD/MMC :?: Wtedy można szybko przenosić dane z komputera :idea:
  • Level 15  
    Dziękuje za odpowiedzi.
    Muszę przyznać że zainteresował mnie temat kart SD/MMC. Trochę już sobie poczytałem i mam pytania:
    Wiem że nie da się zapisać pojedynczego bajtu tylko paczkę 512. W moim przypadku będę tylko odczytywał dane więc czy musze odczytać całe 512 czy mogę tylko jeden wybrany z paczki.
    Jak z czasem odczytu? Nie będzie to wolno działać w przypadku np pamięci 64MB?
    Znalazłem taki schemat: Link
    Karta jest podłączona przez ISP. Nie będzie to kolidowało z programowaniem mikrokontrolera?
    Jeżeli chodzi o zapis danych na karcie z PC to ATmega nie odczyta mi pliku zapisanego w notatniku bo musiał bym mieć obsługę NTFS... To w jaki sposób programować kartę aby zapisać tylko "czyste" bajty ?
    Pozdrawiam :)
  • Level 22  
    Quote:
    Jak z czasem odczytu? Nie będzie to wolno działać w przypadku np pamięci 64MB?

    Ja wykorzystuję karty jako nośnik muzyki do mojego mp3 na ATmega8 i STA015. Nawet przy największym birate nie ma problemów z odczytem. Odczyt z karty musisz robić paczkami 512B, ale możesz wybierać poszczególne bajty.
    Na stronie, którą wskazałeś jest prosty czytnik SD/MMC na RS232 do kompa, albo innego układu mikroprocesorowego :idea:
  • Level 15  
    Nie znam dokładnie zasady działania STA015 ale ten dekoder pewnie potrafi odczytać pliki MP3 z karty. A co zrobić w moim przypadku? W jaki formacie i czym mam zapisywać dane na karcie.
    I jeszcze jedno: Aby odczytać dane z karty musze mieć przynajmniej 512 B pamięci w EEpromie żeby było gdzie to zbuforować ?

    Pozdrawiam :)
  • Level 22  
    Do samego odczytu wystarczy ATMEGA8 z 1kB RAM. Ja w swojej zmieściłem prosty system plików FAT12/16, co pozwala na obsługę kart do 2GB pojemności, wtedy pliki wrzucane z kompa będą widziane przez mikrokontroler. A w jakiej formie będą zapisywane dane w twoim projekcie :?: Pliki .TXT? Dużo można znaleźć na tym forum dotyczącym budowy wszelkich urządzeń CNC :D
  • Level 15  
    Myślałem o plikach TXT z zapisem np takim:

    Code:
    START
    
    1234, 0123, 0023, 23, 00   //czyli wsp. x, y,z, dodatkowe parametry
    1111, 3456, 2345, 21, 01
    STOP


    Czy musze od razu budować system plików aby to odczytać. Nie można dostać się do tego tak "po bitach" :)

    Pozdrawiam
    A propos forum CNC to faktycznie skarbnica wiedzy z zakresu maszyn sterowanych numerycznie z tym tylko że w większości sterowanie odbywa się przez LPT i Mach-a. Ja chciałbym zbudować sterowni autonomiczny.
  • Helpful post
    Level 22  
    takilogin wrote:

    Czy musze od razu budować system plików aby to odczytać. Nie można dostać się do tego tak "po bitach" :)

    System plików tylko z nazwy jest taki straszny :D W rzeczywistości to tylko kilka prostych operacji, które pomogą zlokalizować plik na karcie pamięci. Bo tak trzeba wiedzieć gdzie ten plik się znajduje. :)
  • Helpful post
    Level 33  
    Może coś podpowiem bo to mój zawód. Jakiś czas temu pracowałem w firmie która przerobiła swoje zabytkowe maszyny sterowane numerycznie dostosowując je do pracy w nowej rzeczywistości. Część z nich zostało uzbrojone w proste sterowania zbudowane z klawiatury i wyświetlacza LCD 2 linie 20 znaków, łącze RS. Domyślam się że zamierza Pan zbudować podobne urządzenie. Pierwotnie przenośnym nośnikiem informacji w tych układach była pamięć RAM 32KB podtrzymywana bateryjnie. Pamięć oczywiście równoległa typ 62256. Ten sposobów przenoszenia programów miał jednak wady - niewielka pojemność danych, wyprowadzenia pamięci dostępne były na złączu w związku z czym pamięć była narażona na działania ładunków elektrostatycznych i dość często zdarzały się awarie tych zabawek. Kolejny minus to programator którym potrzebny był do programowania pamięci. Po pojawieniu się na rynku kart SD/MMC dość szybko czytniki do nich pojawiły się również w tych urządzeniach. Pracowały z kartami 32MB (takie wtedy były największe) więc niewiele ale i tak wystarczająco do przeniesienia wszystkiego co tylko trzeba. Programowały je pospolite programatory do tych kart. Pliki to najzwyklejsze pliki testowe generowane z programów CAM bądź samodzielnie pisane przez operatorów na tym "sterowaniu". Nie wiem jak sytuacja przedstawia się obecnie, ale wydaje się że zastosowanie kart SD/MC jest optymalne w prostych konstrukcjach. Pozostaje tylko sprzętowe implementacja w Pańskie urządzenie.
pcbway logo