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

Brak pamięci Flash w 89C51, alternatywy dla PLC i programowanie '51

fafal23 07 Mar 2007 01:59 1619 7
  • #1 3652069
    fafal23
    Poziom 12  
    Posty: 112
    Pomógł: 1
    Ocena: 1
    Witam!
    Poradźcie mi co tu zrobić.
    Kończę właśnie pracę dyplomową. Buduję parę urządzeń z własnym protokołem dla PLC (Power Line Communication). Wszystko na '51. Było by już ok, gdyby nie fakt, że dla jednego urządzenia brakuje mi pamięci Flash. Wstępnie, miał on być zbudowany na 89C51 (4k). Niestety interfejs użytkownika zjada za wiele miejsca i zaczęły się schody, tzn.
    - '51 odpada bo więcej jak 4k kodu nie wejdzie, przynajmniej '52 (8k),
    - dysponuję programatorem ATE-2000A (LPT) który obsługuje 52, ale nie mogę jej dostać. W TME powiedzieli mi że podstawowej (C52) już nie mają, ewentualnie z interfejsem SPI (89S52).
    - znalazłem jakieś programatory na ISP AEC pod DOS i ISPPROG, ale do pierwszego nie mogę załadować pliku HEX. Nie potrafię wskazać mu pliku, chyba robię coś nie tak, czytałem pdf o AEC ale za bardzo nie wiem jak to załadować, a przy drugim wyskakuje mi komuniakt że nie może odnaleść pliku giveio.sys driver. Robię tak jak w pliku read_me ale on go nie ładuje (install_giveio.sys).
    Do tego wszystkiego piszę w kompilatorze RIDE w wersji (6.10.19), ale ma ograniczenie do 4k, więc odpada, udało mi się załatwić pełną wersję od kolegi z elektrody która jest starsza od tej na której pracowałem (6.1.3). I co się okazuje? Nie obsługuje procesorów 89S52!!!
    Uparłem się na '52 bo mam już płytki wszystkie porobione a wyprowadzenia są kompatybilne z '51. Mam system XP.

    Ludzie pomocy bo chyba nigdy tej pracy nie skończę!!!
  • #2 3652345
    genetix
    Poziom 24  
    Posty: 669
    Pomógł: 42
    Nie możesz zastosować 89S52 i zaprogramować go "normalnie" czyli nie po isp?
  • #4 3652594
    Bigfoot
    Poziom 25  
    Posty: 982
    Pomógł: 74
    Ocena: 13
    fafal23 napisał:
    Nie obsługuje procesorów 89S52!!!



    A co to za problem? Po prostu musisz sam zdefiniowac peryferia, ktore nie znajduja sie w standardowym wyposazeniu mikrokontrolera '51. Tworzysz plik, np. Moj52.h i po klopocie. Albo nawet bezosrednio w kodzie:

    
    sfr rejestr  = 0xXX;
    


    BF
  • #5 3652998
    tprzemko
    Poziom 22  
    Posty: 413
    Pomógł: 54
    Ocena: 21
    Witam
    Może mają 89c55. Jeszcze więcej pamięci :D
    Pozdrawiam
  • #6 3653158
    olekewaagata
    Poziom 25  
    Posty: 638
    Pomógł: 64
    Ocena: 28
    Znalazłem parę at89c52 (sprawne) i jeśli chcesz mogę ci je odsprzedać.
    Obudowa dil40
    Resztę informacji przez priv.
  • #7 3653961
    fafal23
    Poziom 12  
    Posty: 112
    Pomógł: 1
    Ocena: 1
    Więc tak!
    Po przeglądnięciu procesorów z programatora i kompilatora, oraz wykonaniu paru telefonów do TME, AVR, SEGURO i inne. Mam mały mętlik w głowie.
    Wydaje się że w tej chwili 89C52 nigdzie nie dostanę, chyba, że tak jak kolega olekewaagata napisał od kogoś!

    Analizując na spokojnie pozostaje mi do wyboru 89C52 albo S52.

    Jeśli zdobędę 89C52 to wszystko zostaje po staremu. Kompilator RIDE 51 w starszej, pełnej wersji obsługuje i programator też.

    Jeśli nie uda się zdobyć C52 to pozostaje S52 i 2 problemy:

    PROGRAMATOR
    - programator tak jak napisałem albo AEC_ISP.EXE albo ISPPROG.

    --Jeśli chodzi o AEC_ISP.EXE to czy ktoś jest mi w stanie powiedzieć jak załadować plik hex do bufora?
    Próbowałem na wszelkie sposoby i nie potrafię, cały czas krzyczy że nie może załadować pliku i już!!!

    --Jeśli chodzi o ISPPROG to jest jeszcze gorzej. W pracy na laptopie uruchamia mi się bez problemu, a w domu niestety nie - nie może odnaleć pliku giveio.sys (w załączniku print Scrn tego z laptopa - jak wrócę do domu to zrobię Scrina jak to jest jak nie działa).

    --Co do programatora FLIP to również nie chce załadować pliku hex. Sprawdzałem! Plik mam w standardzie hex intel i wielkość liter też nie ma znaczenia. Pytanie brzmi czy musi być komunikacja z procesorem aby można było załadować hex do bufora? Nie mam pojęcia!

    KOMPILATOR
    Starsza wersja nie obsługuje S52!
    Bigfoot napisał że wystarczy zdefiniować peryferia.
    Szczerze mówiąc to nie wiem jak to zrobić. Wiem, że można dodać np nazwy portów i rejestrów wewnętrznych w pliku nagłówkowym .h i załadować do programu (include) ale jak z listy obsługiwanych procesorów nie ma 89S52 to nie mam pojącia jak go tam umieścić. Bardzo proszę o rady!

    Szukałem jakiegoś wodotryska do nowszej wersji RIDE (version 6.10.19) ale niestety nie znalazłe.

    Pozostaje jeszcze przesiadka na inny kompilator ale jak przenosiłem program na starszą wersję RIDE to już miałem problemy, aż boję się pomyśleć co będzie jak będę chciał to załadować do wogóle innego środowiska.

    Podsuńcie jakieś rozwiązania![/tex]
  • #8 3752343
    piotrhammond
    Poziom 2  
    Posty: 4
    Jeśli RIDE (6.1.3) nie obsługuje twojego proca to wrzuć plik AT89X52.H do biblioteki w RIDE i zmień jego nazwę na dowolny procesor który tam występuje np. AT89X52.H zmieniasz nazwę na AT89x051.H. Teraz możesz pisać programy na '52 wybierając procesor jakiego plik podmieniłeś. Myśle jest to w miarę zrozumiałe. W załączonym są zdefiniowane rejestry SFR i odpowiadające im adresy w pamięci mikrokontrolera. Powodzenia
    Załączniki:
    • AT89X52.H (6.24 KB) Musisz być zalogowany, aby pobrać ten załącznik.

Podsumowanie tematu

✨ Autor projektu buduje urządzenia z własnym protokołem PLC na mikrokontrolerach rodziny 8051, jednak napotyka problem z niewystarczającą pamięcią Flash w modelu 89C51 (4kB). Rozważa użycie 89C52 (8kB), ale ma trudności z dostępnością tego układu oraz kompatybilnością programatorów. Posiada programator ATE-2000A obsługujący 89S52, lecz nie potrafi poprawnie załadować pliku HEX do oprogramowania AEC_ISP.EXE, a ISPPROG wymaga sterownika giveio.sys, który nie działa na jego systemie. W dyskusji zasugerowano użycie 89S52 z programowaniem ISP, modyfikację plików nagłówkowych (np. AT89X52.H) w kompilatorze RIDE 51, a także rozważenie alternatywnych mikrokontrolerów jak 89C55 z większą pamięcią. Pojawiła się także oferta sprzedaży używanych at89c52. Wskazano, że można ręcznie definiować rejestry SFR w kodzie, aby dostosować środowisko do nowszych modeli. Ostatecznie, jeśli 89C52 nie będzie dostępny, pozostaje praca z 89S52 i rozwiązanie problemów z programatorami ISP.
Wygenerowane przez model językowy.
REKLAMA