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

Mapowanie urządzeń na RAM w projekcie z uC 8051 - czy to dobry wybór?

blade 21 Maj 2003 11:20 2158 12
REKLAMA
  • #1 221475
    blade
    Poziom 14  
    Posty: 159
    Ocena: 5
    Witam buduje projekt i w schemacie zamapowalem urzadzenie zewnetrzne, typu miernik odleglosci przetwornik a/c c/a i silniki na pamiec Ram jako dekodera urzylem ukladu 74ls138 uklad buduje na uC 8051, nie wiem dokladnie na jeszcze ktorym modelu bo to zalezy od pieniedzy ktorymi bede dysponowal. Ale mam pytanie czy mapowanie na RAM jest dobram posunieciem ? czy moze lepiej mapowac na pamiec programu ? i jakimi poleceniami w asemblerze moge sie odwolac do danych urzadzen w zaleznosci od tego na ktora pamiec mapuje. Wybralem pamiec ram zeby miec pelne 64k na moje modyfikacje oprogramowania :))
  • REKLAMA
  • #2 221484
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Nie badzo rozumie o co Ci chodzi. Przecież prościej te układy podłączyć normalnie do portów procka, a nie wydziwaiać z dekoderami adresowymi. W zasadzie to polecam procka T89C51AC2. Ma chyba 32k FLASHa, wbudowany A/C i masę innych bajerów, a kosztuje poniżej 50 zetów.
  • REKLAMA
  • #3 221525
    blade
    Poziom 14  
    Posty: 159
    Ocena: 5
    NIe mam wolnych portow poniewaz musze do nich podlaczyc silniki krokowe( 2 sztuki)a tak by mi glupoty robil . W ten sposob adresuje sobie dowolne urzadzenie i po przez porty steruje nim
  • #4 221541
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Ten procek co wyżej podałem ma dodatkowe porty (chyba nawet dwa, nie pamiętam teraz, więc powinno Ci wystarczyć.
    A do obsługi pamięci zewnetrznych służą w 51 polecenia MOVC i MOVX. NIe bardzo rozumie czy Ty chcesz mieć zewnętrzny RAM i zewnętrzną pamięć programu i jeszcze do tego dowieszone przetworniki?!
    Znacznie prościej i taniej będzie wziąc większy procesor, a jest ich mnóstwo w rodzinie '51 no i jeszcze zostają AVR albo masa różnych innych.
  • #5 221553
    blade
    Poziom 14  
    Posty: 159
    Ocena: 5
    Nie wiem czemu ale uparlem sie na ktorys z 8051 jako przetwornika urzywam 7569 i napewno bede kozystal z zewnetrznej pamieci programu i danych. TYlko zastanawiam sie czy mozna adresowac ulkady zamapowane na pamiec RAM zewnetrzna . Dzieki
  • #6 221559
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Można tylko nie tak prosto jak Ci się wydaje, bo jeżeli używasz pamięci danych i programu zewnętrznych to musisz mieć pełny dekoder adresu a nie '138. Po raz trzeci napisze o tym procku: to jest 51 w wersji rozbudowanej i nie będziesz potrzebował zewnętrznych pamięci.
  • REKLAMA
  • #7 221621
    ElGregor
    Poziom 23  
    Posty: 654
    Pomógł: 2
    Ocena: 56
    :arrow: blade
    Przy dekoderze adresu zrobionym na '138 będziesz mógł podzielić przestrzeń adresową na max. 8 bloków (sterowanie 3 bitami adresowymi)
    i nie powinno być z tym problemu.
    :arrow: tdv
    Procesor T89C51AC2 ma wbudowane tylko 1,25 kB ramu i nie ma przetwornika D/A, może kolega potrzebuje więcej ramu?
    Poza tym sterowanie dodatkowymi układami połączonymi z procesorem przy pomocy dodatkowych portów to rozrzutność (zajmowanie niepotrzebnie wyprowadzeń które mogą się przydać przy rozbudowie układu) i komplikacja programu (trzeba pisać dodatkowe procedury obsługi, a tak wystarczy użyć tylko instrukcji MOVX)
  • #8 221633
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Hmm, faktycznie kolega nie napisał co zamierza robić. Wiem, że nie ma D/A, co zaś się tyczy dołączania tego do portów to miąlem na myśli system z wewnętrznymi pamięciami danych i programu, i magistralę daych na którymś porcie + wybieranie poszczególnych układów z drugiego portu. Taki układ na pewno będzie znacznie tańszy i znacznie bardziej niezawodny. A koszt to nie tylko scalaki ale także zaprojektoanie i zrobienie płytki drukowanej ;->.
    Swoją drogą pytania blade wskazują, ze nie ma chyab dużego doświadczenia w takich układach. Może kolega nam bjaśni do czego do uuuo na służyć? Wtedy będzie można te kwestie dokładniej przedyskutować.
    Ewentualnie zostają jeszze przetworniki z interfejsem szeregowym np. IIC lub SPI.
  • #9 222712
    blade
    Poziom 14  
    Posty: 159
    Ocena: 5
    Witam. Wiedz wyjasniam do czego to ma sluzyc. Buduje robota, takiego malego zwierzaka ;). Przetwornika C/A uzyje zeby szczekal, dwuch silnikow krokowych uzyje do tego zeby sie poruszal ( bo patwiej mi czyms takim sterowac. A zeby mi sie o sciany nie obijal to uzyje odleglosciomierza ultradziekowego ( dodatkowo wszystkie psy i komary bedzie odstraszal:) ) . Z tym dodatkowym portem to nie jest glupi pomysl moglbym nim adresowac urzadzenia bez potrzeby stosowania 74138 jako magistrali danych uzyje poru P0 a magistrala adresowa to standardowo P0 i P1 chociaz kod programu mi sie powiekszy. Co do ileosci ramu to nie wiem ile bede potrzebowal a co do wielkosci pamieci programu to tu chyba przyda sie wiecej bo chce zeby moj robot mial rozne typy zachowan. Chce je losowac z tablicy zachowan . Nie chce zeby tylko chodzil i chodzil. Dzieki.
    Tak prawde mowiac to nie jestem najlepszy w te klocki dlatego zadaje pytania .
  • #10 222719
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Zajrzyj na www.seguro.home.pl tam jest kilka procesorów, które powinny się nadawać w rozsądnych cenach :-)
  • REKLAMA
  • #11 222732
    blade
    Poziom 14  
    Posty: 159
    Ocena: 5
    Fajna stronka. Musze ja dobrze przejzec.
  • #12 223844
    bolek
    Poziom 35  
    Posty: 4099
    Pomógł: 86
    Ocena: 299
    jesli chodzi tylko o włączanie urządzeń zwenetrznych to może wystarczy jakiś przetwornik szeregowo- równoległy np
    74HC595 (potzrebuje 3piny z procka).
    jesli byś chciał dwukierunkową wymiane danych to może cos na i2c?
  • #13 224153
    blade
    Poziom 14  
    Posty: 159
    Ocena: 5
    Raczej i2c odpada poniewaz nie moge podlaczyc do tej magistrali moich urzadzen, poprostu nie beda wspolpracowac, Wszystko bedzie na magistarli rownoleglej nie planuje nic szeregowego.

Podsumowanie tematu

✨ W dyskusji poruszono temat mapowania zewnętrznych urządzeń (przetworników A/C, C/A, silników krokowych, odległościomierza ultradźwiękowego) na pamięć RAM w projekcie opartym na mikrokontrolerze rodziny 8051. Autor projektu planuje wykorzystać układ 74LS138 jako dekoder adresowy do sterowania urządzeniami poprzez zewnętrzną pamięć RAM, aby mieć pełne 64 kB przestrzeni adresowej na modyfikacje oprogramowania. Wskazano, że prostszym rozwiązaniem jest podłączenie urządzeń bezpośrednio do portów mikrokontrolera, jednak autor ma ograniczoną liczbę wolnych portów ze względu na sterowanie dwoma silnikami krokowymi. Zwrócono uwagę, że do obsługi pamięci zewnętrznych w 8051 służą instrukcje asemblera MOVX (dla pamięci danych) i MOVC (dla pamięci programu). Podkreślono, że do poprawnego mapowania zewnętrznej pamięci potrzebny jest pełny dekoder adresu, a układ 74LS138 obsługuje tylko 3 bity adresowe, co ogranicza przestrzeń do 8 bloków. Zaproponowano rozważenie mikrokontrolera T89C51AC2 z wbudowanym A/C i większą ilością pamięci, co może uprościć projekt. Dyskutowano także o alternatywnych metodach sterowania urządzeniami, takich jak przetworniki szeregowo-równoległe 74HC595 lub magistrale I2C/SPI, jednak autor wykluczył magistralę szeregową na rzecz magistrali równoległej. Projekt dotyczy budowy robota z różnorodnymi zachowaniami losowanymi z tablicy, co wymaga większej pamięci programu i danych.
Wygenerowane przez model językowy.
REKLAMA