eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Programowanie AT89Cxx51
Ilość wypowiedzi w tym wątku: 50

  • 21. Data: 2017-02-24 21:00:01
    Temat: Re: Programowanie AT89Cxx51
    Od: AlexY <a...@i...pl>

    Piotr Gałka pisze:
    > W dniu 2017-02-24 o 11:28, Zbych pisze:
    >> W dniu 24.02.2017 o 11:01, Piotr Gałka pisze:
    >>
    >>> Nigdy nie używałem C dla żadnego mikrokontrolera. Wyobrażałem sobie, że
    >>> C musi być trochę rozszerzane pod dany procesor.
    >>> Czyli zakładałem, że w C dla 51-ki powinna być jakaś funkcja
    >>> biblioteczna typu setbit() przyjumująca jako parametr jego adres i
    >>> potrafiąca przetłumaczyć to na assembler nawet jak nie ma adresowania
    >>> przez rejestr.
    >>
    >> Napiszę najprościej jak potrafię. Numer bitu w setb i clr musi być na
    >> sztywno wpisany w rozkaz, nie ma możliwości zrobienia z niego parametru.
    >>
    > Dzięki. W końcu dotarło do mnie :)
    > Jakoś nie zauważyłem, że to wymagałoby dynamicznego dopasowywania kodu
    > programu w czasie jego pracy :(

    Pamięci programu sam program nie może modyfikować więc też nie tak. Jak
    musisz gasić/zapalać różne bity to będziesz musiał skakać w różne
    miejsca programu z odpowiednim dla danego bitu poleceniem. Jeszcze
    takiej potrzeby nie miałem ale do zrobienia.


    --
    AlexY
    http://faq.enter.net.pl/simple-polish.html
    http://www.pg.gda.pl/~agatek/netq.html


  • 22. Data: 2017-02-26 11:32:10
    Temat: Re: Programowanie AT89Cxx51
    Od: Atlantis <m...@w...pl>

    On 23.02.2017 08:38, MKi wrote:

    > Model large - obiekty te są alokowane w pamięci XRAM
    > (zazwyczaj do 64KB). Dostęp do każdej zmiennej poprzedzany
    > jest załadowaniem jej adresu do DPTR.
    > Stos też jest w XRAM, co bardzo wydłuża jego obsługę.
    ły
    Zapytam z czystej ciekawości, bo dzisiaj oczywiście dużo prościej
    wykorzystać dowolny, potężny 32bitowy mikrokontroler z dużą ilością ramu
    i flasha...

    Niemniej jak wyglądała współpraca układów w rodzaju AT89C51 albo AT89C52
    z zewnętrzną pamięcią? W przypadku RAM-u jak rozumiem dwa porty robiły
    za multipleksowaną szynę adresową/danych, którą łączyło się z układem
    pamięci poprzez 74LS573. W ten sposób można było zyskać całkiem sporą
    ilość pamięci operacyjnej, ciągle przy dość małej pamięci stałej.
    Możliwe było jeszcze dorzucenie jakiegoś EPROM-a i zapisanie w nim hex-a
    z programem? Jeśli tak, to jak duże projekty w ten sposób tworzono?

    Czy do takiej szyny można było podpiąć równocześnie jakiś wyświetlacz
    alfanumeryczny HD44780 albo nawet jakiś kontroler Ethernetu?


  • 23. Data: 2017-02-26 13:47:56
    Temat: Re: Programowanie AT89Cxx51
    Od: AlexY <a...@i...pl>

    Atlantis pisze:
    [..]
    > Niemniej jak wyglądała współpraca układów w rodzaju AT89C51 albo AT89C52
    > z zewnętrzną pamięcią? W przypadku RAM-u jak rozumiem dwa porty robiły
    > za multipleksowaną szynę adresową/danych, którą łączyło się z układem
    > pamięci poprzez 74LS573. W ten sposób można było zyskać całkiem sporą
    > ilość pamięci operacyjnej, ciągle przy dość małej pamięci stałej.
    > Możliwe było jeszcze dorzucenie jakiegoś EPROM-a i zapisanie w nim hex-a
    > z programem? Jeśli tak, to jak duże projekty w ten sposób tworzono?

    Szyna adresowa jest 16 bitowa, jak trzeba więcej to konieczne jest
    bankowanie pamięci.

    > Czy do takiej szyny można było podpiąć równocześnie jakiś wyświetlacz
    > alfanumeryczny HD44780 albo nawet jakiś kontroler Ethernetu?

    Jeśli HD jest w przestrzeni adresowej to czemu nie, nie może blokować
    ani reagować na nie swoje adresy i musi wyrabiać się z timingami, albo
    trzeba mu zrobić bufor.


    --
    AlexY
    http://faq.enter.net.pl/simple-polish.html
    http://www.pg.gda.pl/~agatek/netq.html


  • 24. Data: 2017-02-26 15:48:02
    Temat: Re: Programowanie AT89Cxx51
    Od: Dariusz Dorochowicz <_...@w...com>

    W dniu 2017-02-26 o 13:47, AlexY pisze:
    > Atlantis pisze:
    > [..]
    >> Niemniej jak wyglądała współpraca układów w rodzaju AT89C51 albo AT89C52
    >> z zewnętrzną pamięcią? W przypadku RAM-u jak rozumiem dwa porty robiły
    >> za multipleksowaną szynę adresową/danych, którą łączyło się z układem
    >> pamięci poprzez 74LS573. W ten sposób można było zyskać całkiem sporą
    >> ilość pamięci operacyjnej, ciągle przy dość małej pamięci stałej.
    >> Możliwe było jeszcze dorzucenie jakiegoś EPROM-a i zapisanie w nim hex-a
    >> z programem? Jeśli tak, to jak duże projekty w ten sposób tworzono?
    >
    > Szyna adresowa jest 16 bitowa, jak trzeba więcej to konieczne jest
    > bankowanie pamięci.
    >
    >> Czy do takiej szyny można było podpiąć równocześnie jakiś wyświetlacz
    >> alfanumeryczny HD44780 albo nawet jakiś kontroler Ethernetu?
    >
    > Jeśli HD jest w przestrzeni adresowej to czemu nie, nie może blokować
    > ani reagować na nie swoje adresy i musi wyrabiać się z timingami, albo
    > trzeba mu zrobić bufor.

    Przypomnę jeszcze, że w zasadzie można szynę adresową określić jako
    17-bitową. Była tam selekcja I/O i pamięci osobnymi liniami, ale
    szczegółów to już nie pamiętam. W sumie to była selekcja I/O i pamięci,
    ale selekcja pamięci programu też gdzieś tam się pętała, w sumie to już
    mnie pamiętam szczegółów.

    Pozdrawiam

    DD


  • 25. Data: 2017-02-26 16:26:24
    Temat: Re: Programowanie AT89Cxx51
    Od: AlexY <a...@i...pl>

    Dariusz Dorochowicz pisze:
    [..]
    > Przypomnę jeszcze, że w zasadzie można szynę adresową określić jako
    > 17-bitową. Była tam selekcja I/O i pamięci osobnymi liniami, ale
    > szczegółów to już nie pamiętam. W sumie to była selekcja I/O i pamięci,
    > ale selekcja pamięci programu też gdzieś tam się pętała, w sumie to już
    > mnie pamiętam szczegółów.

    To jest właśnie bankowanie pamięci, nie ma poleceń adresujących 17-bitowo.


    --
    AlexY
    http://faq.enter.net.pl/simple-polish.html
    http://www.pg.gda.pl/~agatek/netq.html


  • 26. Data: 2017-02-26 17:17:34
    Temat: Re: Programowanie AT89Cxx51
    Od: Dariusz Dorochowicz <_...@w...com>

    W dniu 2017-02-26 o 16:26, AlexY pisze:
    > Dariusz Dorochowicz pisze:
    > [..]
    >> Przypomnę jeszcze, że w zasadzie można szynę adresową określić jako
    >> 17-bitową. Była tam selekcja I/O i pamięci osobnymi liniami, ale
    >> szczegółów to już nie pamiętam. W sumie to była selekcja I/O i pamięci,
    >> ale selekcja pamięci programu też gdzieś tam się pętała, w sumie to już
    >> mnie pamiętam szczegółów.
    >
    > To jest właśnie bankowanie pamięci, nie ma poleceń adresujących 17-bitowo.

    Bankowaniem raczej określa się rozszerzenie standardowej przestrzeni
    adresowej, a ja piszę że "w zasadzie" ;)

    Pozdrawiam

    DD


  • 27. Data: 2017-02-26 20:21:21
    Temat: Re: Programowanie AT89Cxx51
    Od: Atlantis <m...@w...pl>

    W dniu 2017-02-26 o 16:26, AlexY pisze:

    > To jest właśnie bankowanie pamięci, nie ma poleceń adresujących 17-bitowo.

    Czyli rozumiem, że teoretycznie w tych mikrokontrolerach możliwe jest
    np. jednoczesne zastosowanie 64kB pamięci RAM i 64kB EPROM? Będą one
    widoczne jako dwie osobne przestrzenie adresowe?
    Możliwe było uruchamianie programu z zewnętrznego EPROM-a, czy też
    pamięci tego rodzaju był wykorzystywane do przechowywania dodatkowych
    zasobów, a kod należało upchnąć w tych kilku kB wewnętrznego flasha?


  • 28. Data: 2017-02-26 20:43:16
    Temat: Re: Programowanie AT89Cxx51
    Od: AlexY <a...@i...pl>

    Atlantis pisze:
    > W dniu 2017-02-26 o 16:26, AlexY pisze:
    >
    >> To jest właśnie bankowanie pamięci, nie ma poleceń adresujących 17-bitowo.
    >
    > Czyli rozumiem, że teoretycznie w tych mikrokontrolerach możliwe jest
    > np. jednoczesne zastosowanie 64kB pamięci RAM i 64kB EPROM? Będą one
    > widoczne jako dwie osobne przestrzenie adresowe?

    Nie, przynajmniej jeśli dobrze zrozumiałem PDFa od 89c51/2.

    > Możliwe było uruchamianie programu z zewnętrznego EPROM-a, czy też
    > pamięci tego rodzaju był wykorzystywane do przechowywania dodatkowych
    > zasobów, a kod należało upchnąć w tych kilku kB wewnętrznego flasha?

    "External Access Enable. EA must be strapped to GND in
    order to enable the device to fetch code from external program
    memory locations starting at 0000H up to FFFFH."

    Jeśli dobrze zrozumiałem można podpiąć pamięć programu albo danych, nie
    widzę mix'u, może jest jakiś kruczek.


    --
    AlexY
    http://faq.enter.net.pl/simple-polish.html
    http://www.pg.gda.pl/~agatek/netq.html


  • 29. Data: 2017-02-26 20:50:35
    Temat: Re: Programowanie AT89Cxx51
    Od: Dariusz Dorochowicz <_...@w...com>

    W dniu 2017-02-26 o 20:43, AlexY pisze:
    > Atlantis pisze:
    >> W dniu 2017-02-26 o 16:26, AlexY pisze:
    >>
    >>> To jest właśnie bankowanie pamięci, nie ma poleceń adresujących
    >>> 17-bitowo.
    >>
    >> Czyli rozumiem, że teoretycznie w tych mikrokontrolerach możliwe jest
    >> np. jednoczesne zastosowanie 64kB pamięci RAM i 64kB EPROM? Będą one
    >> widoczne jako dwie osobne przestrzenie adresowe?
    >
    > Nie, przynajmniej jeśli dobrze zrozumiałem PDFa od 89c51/2.
    >
    >> Możliwe było uruchamianie programu z zewnętrznego EPROM-a, czy też
    >> pamięci tego rodzaju był wykorzystywane do przechowywania dodatkowych
    >> zasobów, a kod należało upchnąć w tych kilku kB wewnętrznego flasha?
    >
    > "External Access Enable. EA must be strapped to GND in
    > order to enable the device to fetch code from external program
    > memory locations starting at 0000H up to FFFFH."
    >
    > Jeśli dobrze zrozumiałem można podpiąć pamięć programu albo danych, nie
    > widzę mix'u, może jest jakiś kruczek.

    Pewnie że jest. EA to tylko wybór pamięci programu, a na PSEN procek
    wystawia czy chce dostępu do pamięci programu czy danych. Tyle, że
    niekoniecznie da się w ten sposób dostać do całej pamięci, bo zdaje się
    że na początku są mapowane rejestry.

    Pozdrawiam

    DD


  • 30. Data: 2017-02-26 21:02:57
    Temat: Re: Programowanie AT89Cxx51
    Od: Atlantis <m...@w...pl>

    W dniu 2017-02-26 o 20:50, Dariusz Dorochowicz pisze:

    > Pewnie że jest. EA to tylko wybór pamięci programu, a na PSEN procek
    > wystawia czy chce dostępu do pamięci programu czy danych. Tyle, że
    > niekoniecznie da się w ten sposób dostać do całej pamięci, bo zdaje się
    > że na początku są mapowane rejestry.

    Pytam, bo wydaje mi się, że kiedyś widziałem schemat na którym do MCU
    jednocześnie podłączony był RAM i EPROM. Jeśli dobrze pamiętam, piny
    sterujące były podłączone przez jakąś bramkę. Na 90% jestem pewien, że
    to właśnie dotyczyło czegoś w stylu AT89C51/52, jednak mogę się mylić.
    Dlatego właśnie pytam. ;)

    Innymi słowy:
    1) Mogę korzystać albo z wewnętrznej pamięci programu, albo zewnętrznej
    - w zależności od sposobu podłączenia pinu EA.
    2) Zewnętrzna pamięć RAM ma wspólną przestrzeń adresową z wewnętrzną, a
    więc jej pewna ilość na początku (128 bajtów?) będzie niewykorzystana.

    Dobrze to rozumiem?

    I jeszcze jedno pytanie: jak w tej rodzinie wygląda kwestia korzystania
    ze stałych definiowanych w pamięci programu? Istnieje coś takiego, jak
    PROGMEM w AVR-ach, czy też jedynym wyjściem jest zwykłe tworzenie kopii
    tych stałych w pamięci RAM? Bo chyba nie jest tak dobrze, że wystarczy
    zdefiniować zmienną jako "const", jak we współczesnych mikrokontrolerach
    32-bitowych?

strony : 1 . 2 . [ 3 ] . 4 . 5


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: