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

[Rozwiązano] Programowanie układu SAB8751HD: znajdowanie programatora, kompilacja, podłączanie

HAL_incognito 03 Lip 2022 15:34 735 12
  • #1 20086365
    HAL_incognito
    Poziom 3  
    Hej,
    Niedawno w moje ręce trafiły 2 układy SAB8751HD z 1980 roku. Mam ochotę zrobić na nim jakiś prosty projekt typu migająca dioda. Wydaje mi się że zaprogramowanie ich nie powinno być trudne, bo z tego co wiem jest to mikrokontroller bliźniaczy do 8051 który był kiedyś standardem. Jest ktoś w stanie mnie nakierować na to jak zdobyć programator, jak napisać, skompilować program i jak to podłączyć?

    Jestem nowy na forum, więc przepraszam, jeśli temat umiejscowiłem w złym miejscu.
  • #2 20086381
    JacekCz
    Poziom 42  
    Obawiam się, ze przygotowanie zaplecza do antycznego 8051 będzie koszmarnie skomplikowane i kosztowne, nawet w stosunku do wspólczesnych klonów 8051
    Czyli pomysł tej darmoszki ma wartośc ujemną

    A ogólnie 8051 jest trudny do programowania w języku wysokopoziomowym (czytaj C). Czy warto dla takiego starocia uczyć się jego asemblera???

    ps. raczej kierunek jest odwrotny, pod płyty zaprojektowane do 8051 są zamienniki procka będące - jeśli dobrze pamiętam - programowo rzecz biorąc AVR-ami, tylko nogi mają 8051.
    Co ciebie zupełnie nie dotyczy

    Przewiercić cienkim wiertłem, przywiesić niklowaną tabliczkę "to kosztowalo Xxxx dolarów" i nosić na szyi.
  • Pomocny post
    #3 20086543
    khoam
    Poziom 42  
    PlatformIO wspiera 8051. Akurat tego konkretnego MCU nie ma na liście, ale można wybrać "Generic 8051". Są zawarte przykłady w języku C, również na miganie diodą. Visual Studio Code ma wtyczkę do PlatformIO - w trakcie pierwszego uruchomienia instalowany jest cały niezbędny toolchain dla 8051 (oparty o SDCC).
    Link

    8051 są do dzisiaj używane i spotykane (firmy STC) w wielu chińskich gadżetach.

    Najtańszy (chyba) programator do 8051 to taki oparty na Arduino Uno :) Link
    Niestety do kasowania zawartości EPROM będzie potrzebna naświetlarka UV :)
  • #4 20086594
    krru
    Poziom 33  
    A do programowania EPROMa nie potrzeba jakiś większych (niż 5V) napięć?
  • #5 20086663
    Badmaneq
    Poziom 23  
    krru: zwykle 12 V i 21 V, choć miałem kiedyś EPROM M2716 i potrzebne było 25 V.

    HAL_incognito: wszystko się da. Jednak prościej będzie jak chcesz się bawić 8051 zakupić np. 89S52.
  • #6 20086723
    HAL_incognito
    Poziom 3  
    Dziękuję za odpowiedzi. Rozumiem że programowanie mojego układu 8751 jest możliwe przy użyciu programatora do 8051?

    Język C często używam w programowaniu AVR'ek i ARM'ek więc spróbuję się go nauczyć do zrobienia czegoś prostego.

    Wykasować dane z pamięci EPROM będę w stanie za pomocą zwykłej diody UV, czy będę musiał użyć specjalnego "kasatora"?
  • #7 20086757
    kemot55
    Poziom 31  
    Możesz też program zapisać w zewnętrznej pamięci (jakiś EEPROM), tylko do tego trzeba zrobić PCB. Ja pamiętam pierwszy taki mój system. Program miał 8 bajtów i wpisywałem go (ręcznie ! - adres+dane+ zapis, adres+dane + zapis,....) do EEPROM. Przy programie 32 bajtowym mi się znudziło i (na pająku ! oraz 8255) zrobiłem programator pod LPT. To była zabawa. Nawet niedawno odkurzyłem taki zestaw i zrobiłem zabawkę dla dzieciaków z podstawówki na lekcje. Ale przygotowanie narzędzi do zabawki (dostosowanie do współczesnych komputerów) "z przeszłości" zabrało mi tydzień :D
    Asembler do '51 był projektowany "pod ludzi" a nie pod kompilatory C więc pisanie na ten obiekt w C jest pomyłką (kody wyjdą duże i niezoptymalizowane).
    Jeżeli chcesz tylko poprogramować to weź 8952 i ISP (tak jak pisał przedmówca). Zdecydowanie łatwiej uruchamiać wszystko, nie wyciągając co chwilę kości z podstawki (już nie wspominam o kasowaniu UV)
  • #8 20086780
    Badmaneq
    Poziom 23  
    kemot55 napisał:
    Jeżeli chcesz tylko poprogramować to weź 8252 i ISP (tak jak pisał przedmówca). Zdecydowanie łatwiej uruchamiać wszystko, nie wyciągając co chwilę kości z podstawki (już nie wspominam o kasowaniu UV)

    Kurczę zapomniałem jak się programowało AT89C2051, dopisanie kilka linijek kodu kompilacja, włożenie mcu do Willem'a zaprogramowanie, wyjęcie z programatora, włożenie do mcu do układu, sprawdzenie czy prawidłowy kod działa jaki był zamysł. Jeśli nie kolejne przekładanie i tak w kółko.
    Trzeba przyznać, że asembler 51 bardzo fajny, być może dlatego, że to mój pierwszy asembler w życiu...
  • #9 20086874
    jvoytech
    Poziom 21  
    kemot55 napisał:
    Możesz też program zapisać w zewnętrznej pamięci (jakiś EEPROM), tylko do tego trzeba zrobić PCB. Ja pamiętam pierwszy taki mój system. Program miał 8 bajtów i wpisywałem go (ręcznie ! - adres+dane+ zapis, adres+dane + zapis,....) do EEPROM.

    Hehe, też tak kiedyś robiłem. Na płytce uniwersalnej do tego podstawki pod EEPROM i dla dip-switch, które szybko padały od częstego użytkowania :). Było tylko parę bramek do wygenerowania impulsu programującego (chyba około 200μs?). A że to były czasy C64, dla którego narzędzi do 8051 nie było, to algorytm rozpisywałem w postaci blokowej, potem przekształcenie do asemblera a po nim na kod maszynowy.
  • #10 20087508
    ZbeeGin
    Poziom 39  
    Jeśli możesz poświęcić nieco portów mikrokontrolera to wykorzystaj zewnętrzną pamięć kodu oraz danych. Dawno temu zrobiłem to tak, że na magistrali istniały dwa układy:
    1. EPROM - który zawierał tylko prosty kod, służący do załadowania pliku HEX przez RS232.
    2. SRAM - do której to ładowany był plik HEX.
    Prosty układ z bramek - nawet nie sterowany z procesora - powodował, że po załadowaniu pliku HEX, układ SRAM zastępował pamięć EPROM i po następnym resecie kod uruchamiał się z tej właśnie pamięci z załadowaną wcześniej aplikacją, bez translacji adresów.
    Dzięki temu nie trzeba było non stop przekładać układu do programatora w celu załadowania nowej wersji kodu.
  • #11 20087546
    HAL_incognito
    Poziom 3  
    Dziękuję za pomocne odpowiedzi.

    Z tego co widzę nie ma dla tego mikrokontrollera zbytnio użytku.

    Jeden układ zostawię na przyszłość a z drugiego zrobię naszyjnik :lol:

    Temat zamykam.
  • #12 20087548
    kemot55
    Poziom 31  
    Ja w którymś momencie fascynacji procesorami (czasy studenckie) zrobiłem system z SRAM programowanym bezpośrednio z komputera (komputer wybierał konfigurację i robił reset '51). Tyle, że to się nadawało tylko do uruchomień. Z resztą ten układ kolegi z SRAM i EPROM w sumie też (chyba, było podtrzymanie zasilania SRAM'u). Niestety (a może "stety") wtedy pojawiło się pierwsze ISP i wszelkie EEPROMY i emulatory wylądowały w wielkim pudle (leżą do dziś :( i czasem wyciągam i robię zabawki dla dzieciaków).
    Jakoś nikt wtedy nie marudził, że asembler jest "zły i niedobry". I dodam, że jak zaczynałem, to właściwie dokumentacja była tylko na papierze i trzeba było myśleć, kombinować jeździć na giełdę, rozmawiać z ludźmi (bezpośrednio) a nie odszukać w sieci bibliotekę do Arduino czy czegoś podobnego i biadolić, ze nie działa...
    Jeżeli kolega chce zacząć, to gdzieś jeszcze mam Atmela 8952 w obudowie 40-pinowej, przewlekanej i mogę oddać. Z tym, że do migania diodką OK, ale więcej z cyklem 1MHz, to raczej trudno będzie zrobić. Poza tym koszt wysyłki będzie taki jak zakup nowego STMa (F103) z PCB od majfriendów.
  • #13 20087752
    khoam
    Poziom 42  
    HAL_incognito napisał:
    Z tego co widzę nie ma dla tego mikrokontrollera zbytnio użytku.

    Ludzie do dzisiaj robią sprzęt na lampach, więc czemu nie ;)

Podsumowanie tematu

Użytkownik poszukuje informacji na temat programowania układów SAB8751HD, które są mikrokontrolerami z lat 80-tych, podobnymi do 8051. Forumowicze wskazują, że programowanie tych układów może być skomplikowane i kosztowne, a także sugerują użycie programatora opartego na Arduino Uno. Platforma PlatformIO wspiera 8051, co umożliwia pisanie programów w języku C. Użytkownicy podkreślają, że programowanie w asemblerze dla 8051 może być bardziej efektywne, a do kasowania pamięci EPROM potrzebna jest naświetlarka UV. Wskazano również na możliwość użycia zewnętrznej pamięci, co ułatwia aktualizację kodu bez konieczności wyjmowania układu z programatora. Użytkownik postanawia wykorzystać jeden z układów do prostego projektu, a drugi zachować na przyszłość.
Podsumowanie wygenerowane przez model językowy.
REKLAMA