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

programator i programowanie procesora w trakcie pracy (89s52

Verges 10 Wrz 2007 17:01 1950 6
REKLAMA
  • #1 4269651
    Verges
    Poziom 11  
    Posty: 16
    witam

    chcialbym zbudowac najprostszy programator do 89s52

    do tej pory programowalem procesorek poprzez isp juz w ukladzie ktory wykonywalem... mniej wiecej tak jak tutaj...

    http://www.ckmedia.pl/~jankomuzykant/n/muzykant1/muzykant1.htm

    jaka jest minimalna liczba elementow zeby programowac go przez lpt?
    oprocz zasilacznia podlaczam kwarc i kondensatorki przy kwarcu...

    opornik przy resecie zapewne tez...

    co jeszcze jest potrzebne? kondansatory przy samym zasilaniu i podlaczenie pinu 31 do zasilania?


    drugie pytanie... czy procesor moze dokonac jakichs zmian w swoim programie... tzn. czy mozna na stale... podczas pracy zmienic wartosc jakiejs zmiennej tak zeby zostala zapamietana?
    oczywiscie nie uzywajac programatora... ani komputera.. po prostu... wczesniej tak zaprogramowac procesor zeby mozna bylo za pomoca jakichs przelacznikow np. zmieniac wartosc jakiejs zmiennej... tak zeby po resecie ta wartosc nadal tam byla...?
  • REKLAMA
  • #2 4271099
    Warhard
    Poziom 12  
    Posty: 109
    Pomógł: 1
    Ocena: 1
    Witam serdecznie.

    Ja używam tylko rezystorków 300 ohm podpiete w szergu i tyle ze sprzętu :)
    Reset bez rezystora.
    Tyle że programuje Attiny Atmega i stare at90s.

    Nieznam Pana układu ale jeżeli ma wsobie pamieć eeprom to może być ona
    zmieniena w czasie akcji programu.

    Jest to pamieć nie ulotna.
    Jeżeli niema procek pamieci eeprom, to tylko zewnętrzena pamieć podłaczona przez i2c załatwi sprawe.

    podrawiam
  • REKLAMA
  • #3 4271212
    paluszasty
    Poziom 25  
    Posty: 1112
    Pomógł: 56
    Ocena: 267
    Tak jak kolega Warhard napisał. jedynie jesli uC ma pamiec EEPROM mozesz zapisac dane nie będace programem tak zeby nei zostały skasowane po restarcie procka. W przypadku AT89S52 który nie ma wbudowanej pamięci EEPROM jedyna mozliwośc do tołączenie zewnętrznej pamięci EEPROM bądź to na I2C (np polularne AT24C04) , 1 Wire czy jeszcze inny interfejs.Jeśli mikrokontroler ma wbudowaną pamięć EEPROM (z popularnuch Atmelowskich 51 to chyba jedynie AT89S8252 i AT89S8253) to wystarczy dane zapisac to wewnętrznej pamięci. warto pamiętac o tym ze EEROMy mają zazwyczaj tylko 100000 cykli zapisu, wieć warto zapisywac dane jedynie wtedy kiedy jest to potrzebne tzn po ich zmianie, inaczej mozemy stosunkowo szybko "zabić" nasza pamięc, jeśli jest to pamięc zewnętrzna nie ma problemu w przypadku pamięci wewnętrznej wiąze sie to z wymianą uC. Jeśłi potrzebne jest ciągłe zapisywanei danych lepiej uzyć pamięci typu FRAM (produkuje je firma RAMTRON, przykładem moze byc FM24C04 sterowana przez I2C, i będąca odpowidnikiem EEPROMY 24C04), obecnie układy te nie są drogie, mozne ja zamóić m.in w TME.
    Pozdrawiam
  • REKLAMA
  • #4 4272731
    Jdsoul
    Poziom 23  
    Posty: 501
    Pomógł: 47
    Ocena: 10
    Część !!!

    Rozumiem,że zależy ci na minimalnej ilość elementów, ale o jaką ilość zmiennych chodzi, jak szybkiego dostępu zamierzasz korzystać.

    Rodzina 8051 w dość "tani" sposób pozwala na podłączenie zewnętrznych pamięci z szyną równoległą. Co pozwala na badzo szybki dostęp do danych i naprawdę wielkorotny zapis. Procek o którym mowa ma aż 256 bajtów ramu więc zewnętrzny ram by ci się bardzo przydał. Przeanalizuj czy magistral danych i adresowa nie przyda się również do pozostałych peryferii.
  • #5 4273272
    Verges
    Poziom 11  
    Posty: 16
    chodzi o to ze... mikroprocesor odbiera liczby od 0 do 127... i kazdej z nich jest przyporzadkowana pewna wartosc... jedna z dwoch.... a konkretnie... jest wywolywana jedna z dwoch funkcji zawartych w programie.. i chcialbym zeby user mial mozliwosc dynamicznego przyporzadkowywania jednej z tych funkcji do kazdej ze 128 liczb...

    czyli najlepiej szukac jakiejs pamieci FRAM ?

    zastanawiam sie tez nad przesiadka na... inne mikroprocesory... a konkretnie AVR... czy jest to w tym wypadku oplacalne? prawdopodobnie bede wykonywal rozne urzadzenia podobne do tego ktore opisuje....czy na AVRach funkcja dynamicznej zmiany jakichs zmiennych bedzie mozliwa bez dodatkowych modulow pamieci?
  • #6 4274636
    paluszasty
    Poziom 25  
    Posty: 1112
    Pomógł: 56
    Ocena: 267
    Tak,wszystkie AVRy mają pamiec EEPROM, tylko pamiętaj o ograniczonej iliści zykli zapis-odczyt. Jeśli piszesz w czyms innym niz asm to nei bedzie problemu z "przesiadka"
    Pozdrawiam
  • REKLAMA
  • #7 4275203
    Jdsoul
    Poziom 23  
    Posty: 501
    Pomógł: 47
    Ocena: 10
    Z tego co zrozumiałem to ta "pamięć" będzie ci potrzeban co najwyżej do zmiany konfiguracji lub trybu pracy układu.

    Z pamięcią jest zawsze mały problem :) może naiwny , ale jednak.

    O ile generalnie wiesz jak działa program w układzie to zazwyczaj brak jest informacji o aktualnym trybie.

    Musisz zastosować jaką sygnalizację trybu pracy, diody LED, wyświetlacz LCD, kolejny "problem" to obsługa zmiany ustawień, klawiatura w systemie trzyprzyciskowa lub więcej, potem jeszcze jakieś menu do obsługi zmiany ustawień itd itd itd.
    Komplikacja układu zacznie roznąć. Problem jeszcze bardziej ci się potenguje gdy chcesz , aby użytkownik sam sobie zmieniał tryby, interfejs użytkownika musi być wówczas wygodny dla niego a nie dla procesora.

    Alternatywa to przełącznik wielosekcyjny bistabilny lub encoder ABCD.
    W pierwszym przypadku potrzebujesz tyle pinów ile sekcji, w drugim poszczególne położenia przełącznika dają zakodowane słowo w standardzie BCD aż na 4 bitach a masz 16 możliwych opcji :)

    Użytkownik widzi hebelek i jego położenie jest jasno interpretowane i już żaden wyświetlacz potrzebny nie jest :)

    Rolę pamięci elektronicznej , przejmuje "pamięć" mechaniczna , która na dodatek stanowi element manipulacyjny i już nie potrzebujesz żadnych dodatkowych układów.

    Tą metodą była sterowana większość tanich klawiszy itd. jest to dość wygodne i "tanie" rozwiązanie. A użytkownik sam ustawia co mu się podoba nie wnikając w skomplikowane menu na 2x16 znaków LCD , które np w czasie imprezy jest mało czytelne, zresztą sam poprubuj co jest łatwiejsze w obsłudze :).

    Przy starcie oraz później podczas pracy mikroprocesora system odczytuje stan przełącznika lub encodera , z portu wejścia i masz tryb o który ci chodzi :).

    Jak przerobić przełącznik wielobrotowy na enkoder ?
    Wystarczy przełącznik obrotowy 16 pozycyjny i 4-ro sekcyjny , są takie w ofercie Monacora :) potem dla każdej z 4 sekcji odpowiednie słowa kodujesz do 0 lub do 1 itd itd. dla 0 0000, dla sekcji 1 - 0001

Podsumowanie tematu

✨ Dyskusja dotyczy budowy najprostszego programatora do mikrokontrolera AT89S52 z wykorzystaniem portu LPT oraz możliwości programowania i modyfikacji danych w trakcie pracy procesora. Minimalna liczba elementów do programowania przez LPT to rezystory (np. 300 Ω) i kondensatory przy kwarcu oraz zasilaniu, a także rezystor przy pinie reset. AT89S52 nie posiada wbudowanej pamięci EEPROM, więc trwałe zapisywanie zmiennych wymaga zastosowania zewnętrznej pamięci EEPROM (np. AT24C04) lub pamięci FRAM (np. FM24C04 firmy RAMTRON) podłączanej przez interfejs I2C lub inny. Mikrokontrolery AVR mają wbudowaną pamięć EEPROM, co umożliwia trwałą zmianę wartości zmiennych bez dodatkowych modułów pamięci, jednak pamięć ta ma ograniczoną liczbę cykli zapisu. W przypadku potrzeby dynamicznej zmiany przyporządkowania funkcji do 128 wartości lepszym rozwiązaniem może być zastosowanie pamięci FRAM lub mikrokontrolera AVR. Dodatkowo poruszono kwestie interfejsu użytkownika do zmiany ustawień, sugerując użycie przełączników wielosekcyjnych lub enkoderów BCD dla wygodnej obsługi trybów pracy.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA