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

Programowanie mikrokontrolera bez komputera – czy możliwe ręczne wgrywanie bitów?

Grzybuś 06 Sty 2006 22:14 2037 27
REKLAMA
  • #1 2153964
    Grzybuś
    Poziom 14  
    Posty: 145
    Ocena: 3
    mam takie głupie pytanko:
    kiedyś przeczytałem list w czasopiśmie "EDW", że da się zaprogramować mikrokontroler bez komputara to znaczy bit po bicie. Podobno się da. Znacie kogoś lub sami zrobiliście coś takiego???
  • REKLAMA
  • #2 2154037
    Michał_z1
    Poziom 16  
    Posty: 190
    Pomógł: 13
    Ocena: 2
    witam.
    Lepiej by było policzyć ziarenka maku wsypanego po brzegi do wanny.
    pozdrawiam.
  • #3 2154074
    Grzybuś
    Poziom 14  
    Posty: 145
    Ocena: 3
    Cześć

    wiem bo nawet błędów nie sprawdzisz, ale jestem ciekawy czy jest ktoś kto tego dokonał....
  • REKLAMA
  • #4 2154106
    Prymulka
    Poziom 18  
    Posty: 378
    Pomógł: 9
    Ocena: 8
    Ja miałem kiedyścoś takiego na pracowni. Porąbana sprawa, mieliśmy przez to się nauczyć że każdy rozkaz ma swój kod itp. Dla mnie totalna bzdura. Trzy godziny wpisywało się z 50 rozkazów, a jak gdzieś był błąd to mały problem z jego znalezieniem.
  • #5 2154125
    Grzybuś
    Poziom 14  
    Posty: 145
    Ocena: 3
    no to widzę /czytam/, że lekko nie było, ale do wykonania...

    a błędy da się jakoś wykryć, czy trzeba od nowa wpisywać?
  • #6 2154198
    Prymulka
    Poziom 18  
    Posty: 378
    Pomógł: 9
    Ocena: 8
    Jakie błedy? Te co samemu się wpisało do programu czy przez złe wpisanie kodów operacji? Nie pamiętam jak dokładnie działał ten system, ale miał LCD`ka i każdą linię można było poprawić. Jeśli byśchciał jednak dopisać jakąś pomiędzy już dwie istniejące to musisz wszystko za nią przepisać. Nie pamiętam czy ten układ wykrywał błędnie wpisane kody operacji ale wątpię.
  • #7 2154223
    Grzybuś
    Poziom 14  
    Posty: 145
    Ocena: 3
    chodzi o błędne kody operacji

    nigdy jeszcze tak nie wpisywałem, ale rozważam taką możliwość bo to fajnie męczące:D
  • #8 2154241
    Prymulka
    Poziom 18  
    Posty: 378
    Pomógł: 9
    Ocena: 8
    Ja myślałem że ta dyskuja jest czysto teoretyczna a widzęjednak, że nie. Chyba przestanę się w niej udzielać by nie namawiać nikogo do sprawiania sobie takiego bólu :D
  • #9 2154247
    shg
    Poziom 35  
    Posty: 2289
    Pomógł: 339
    Ocena: 134
    Da się wykryć błędy, można podłączyć do pinów LEDy i przeprowadzić odczyt zawartości programu, też krok po kroku i porównywać z tym ,co ma się na kartce/komputerze. Problem jest taki, że jak się już znajdzie błąd, to cały program trzeba na nowo "wgrywać", chyba że...
    Jeżeli błąd będzie polegał na tym, że któryś z bitów jest jedynką, a ma być zerem, to da się to dość szybko skotygować, w odwrotną stronę (poprawić z zera na jedynkę) niestety już nie ma tak lekko i trzeba całego flasha skasować :[.

    Mój pierwszy programator do '51 (własny projekt) programował z prędkością 10 bajtów na sekundę :], teraz już śmiga z maksymalną szybkością.

    Ktoś robił taki ręczny programator do odblokowywania procków AVR.

    W sumie, jeżeli nie masz programatora, a baaardzo Ci zależy, to możesz zrobić sobie programator na procku, a program do pierwszego proca (do programatora) "wgrać" ręcznie. :] Też tak chciałem zrobić, ale zdecydowałem się w końcu na poskładanie programatora bez proca, chociaż trochę roboty było. 4 układy TTL + mnóstwo kabli, tak, poskładałem go bez płytki :] działa już kilka lat.
  • REKLAMA
  • #10 2154264
    Grzybuś
    Poziom 14  
    Posty: 145
    Ocena: 3
    Witam

    a masz schemacik twojego programatora bo czemu nie? - możnaby zbudować...
  • REKLAMA
  • #12 2154752
    shg
    Poziom 35  
    Posty: 2289
    Pomógł: 339
    Ocena: 134
    Grzybuś napisał:
    a masz schemacik twojego programatora bo czemu nie? - możnaby zbudować...


    A mam i się podzielę.
    Schemat, program wraz z kodem źródłowym w załączniku.

    Ale jak zwykle musi być jakieś ale...
    To jest programator do Amigi. Prawdopodobnie da się go też podpiąć do "komputera kompatybilnego z architekturą IBM PC XT", pod warunkiem że ten posiada port równoległy (LPT) z możliwością pracy dwukierunkowej z osobnym ustawianiem kierunku każdej z linii. Jeżeli trochę pokombinować, to będzie się też dało go podpiąć pod port LPT jednokierunkowy, wtedy wszystkie wejścia programatora, tj.: DATA, STRC, STRD, XTAL1 (w nowej wersji), wejścia A, B, C multipleksera '151, oraz sygnały /PROG i CLK podłączone były by do linii portu pracujących normalnie jako wyjścia (D0-D7 i np. /SEL). Natomiast wyjścia programatora: Y i /BSY do linii portu pracujących jako wejścia (POUT i BUSY). Oczywiście wymagało by to zmian w programie.

    Schemat jest już troszkę nieaktualny, wprowadziłem drobne ulepszenia, między innymi bezpośrednie sterowanie linią XTAL1 przez port, zamiast przez rejestr szeregowy, co zaowocowało znacznym zwiększeniem szybkości odczytu.
    W sumie przeglądając kod źródłowy można się zorientować jak wygląda w tej chwili schemat.
    A to pod częścią cyfrową to blok zasilania. Programator jest zasilany napięciami +5 i +12V (ze złącza zasilania IDE).
    Stosowanie układu 74373 nie jest konieczne (spełnia on tylko rolę bufora), ale wtedy układ 74151 należy zastąpić tym samym, ale z serii HC, lub HCT, a wyjście Q0 "dolnego" układu 4094 podłączyć do wejścia OE "górnego" 4094 i zmienić w programie sterowanie bitem CTRLB_DATAOE na odwrotne (zamiast zera podawać jedynkę). Układ '373 znalazł się tam tylko dlatego, że nie mogłem nigdzie dostać układu 74HC(T)151.

    Wszystkie niepodpisane rezystory - 1k.
    Tranzystory BC547.
    A co do zasilania - to wszystkie układy trzymane są stale pod napięciem 5V, napięcia z bloku zasilania są doprowadzone wyłącznie do procesora.

    Program ma możliwość zaprogramowania procesorów z "upalonymi" sygnaturami, w takim wypadku wywala requester i pyta o typ procesora.
    Nie ma możliwości zapisywania bitów zabezpieczeń, bo jakoś tego nigdy nie potrzebowałem :]
    Z tego co pamiętam nie działa też zapisywanie na dysk zczytanego z procesora programu, z powodu j.w. (ale sam odczyt i weryfikacja są zaimplementowane).

    O i jeszcze zdjęcie dorzucę :]
    Załączniki:
    • Programowanie mikrokontrolera bez komputera – czy możliwe ręczne wgrywanie bitów? programator.jpg (29.37 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • attool.zip (49.22 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #13 2154805
    Grzybuś
    Poziom 14  
    Posty: 145
    Ocena: 3
    Witam

    Wielkie dzięki za schemacik, tylko cosik zjem i już lecę po części do Scalaka. Mam nadzieję że uda mi się go zbudować, ale na płytce...

    pozdrawiam
  • #14 2154861
    shg
    Poziom 35  
    Posty: 2289
    Pomógł: 339
    Ocena: 134
    Grzybuś Czy Ty masz Amigę? (wymagany OS w wersji 37 lub wyższej).
    Bo to oprogramowanie pod windowsem nie ruszy, nawet pod emulatoram amigi nie będzie działać, a to z względu na fakt, że Amiga ma dwukierunkowy port równoległy z możliwością kontroli każdej linii z osobna, normalny PyCy tego nie ma.
  • #15 2154867
    Grzybuś
    Poziom 14  
    Posty: 145
    Ocena: 3
    no niestety ja nie mam, ale kumpel ma...
    a masz może schemacik programatora ręcznego i do normalnego pecetka najlepiej pod USB bo mi w laptopie nie pójdzie gdzie indziej...
    jednak wolałbym ręczny bo to fajnie męcząca robota...
    jak ktoś cosik takiego ma to proszę o wstawienie tego tutaj

    pozdrawiam
  • #16 2155216
    shg
    Poziom 35  
    Posty: 2289
    Pomógł: 339
    Ocena: 134
    A tak w ogóle, podstawowe pytanie - jaki procesor?
  • #17 2155241
    Grzybuś
    Poziom 14  
    Posty: 145
    Ocena: 3
    no na przykaład ATMEL AT89S8252
  • #18 2155328
    Prymulka
    Poziom 18  
    Posty: 378
    Pomógł: 9
    Ocena: 8
    Mnie bardziej interesuje ile kodu chcesz zapisać, bo jeśli całą pamięć tego proca to życzępowodzenia. Nie rozumiem takiego utrudniania sobie życia
  • #19 2155362
    JollyRoger
    Poziom 21  
    Posty: 538
    Pomógł: 21
    Ocena: 30
    Z tego co wiem to nie produkuje się juz procesorów AT90S8515 tylko ATmega8515. Te z kolej posiadają BOOTLOADER, może by to jakoś wykorzystać :) ?
  • #20 2155367
    Grzybuś
    Poziom 14  
    Posty: 145
    Ocena: 3
    no niestety prawie całą pamięć...

    ale ja już zrozumiałem twoją aluzje, masz może przypadkiem /lub specjalnie/
    schemat gotowego programatora pod windows???

    pozdrawiam
  • #21 2339362
    Grzybuś
    Poziom 14  
    Posty: 145
    Ocena: 3
    Witam

    Po długim poszukiwaniu znalazłem sobie ten ręczny programato i go tu wstawie...
    Załączniki:
    • 64_018.pdf (245.46 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #22 2339758
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 569
    Jak kolega zaproramuje całe 2kB to będe pełen podziwu a jak mege 128 to chyba bede klaskał , bo oczywiście że sie da tylko to ogromne wyrzeczenie . trzeba to robić chyba ze 2 dni . A programator można zrobić za kilkanaście zł .. No rozumiem fusebity jak ktoś nie ma programatora do tego ...
  • #23 2342593
    shg
    Poziom 35  
    Posty: 2289
    Pomógł: 339
    Ocena: 134
    eee 2kB to jeszcze nie tak duzo, najwyzej kilka godzin :P
    Zresztą, jak pisałem wcześniej. To może być dobry początek, żeby zbudować programator na procu. Te pierwsze kilkaset bajtów 'wklepać' ręcznie, a dalej już śmigać na normalnym programatorze.

    Kiedys programowalem C64 w jezyku maszynowym (nie w asemblerze) wszystkie mnemoniki w postaci kodow hex :]
  • #24 2342676
    Frubi
    Poziom 13  
    Posty: 111
    Pomógł: 2
    Ocena: 5
    Shg jestem pelen podziwu! Jezykiem maszynowym:D A jaki to jest jezyk? Tego sie wogóle da nauczyc? :idea:
  • #25 2343847
    Jacu$
    Poziom 27  
    Posty: 730
    Pomógł: 119
    Ocena: 26
    :arrow: Frubi
    Oczywiście, że można. Jak napiszesz kilka programów to najczęściej używane rozkazy wbiją Ci się w pamięć. Ja, podobnie jak shg, tak właśnie pisałem programy dla komputerka ZX-81 a później dla ATARI 65XE. Siadałem z kartką w kratkę, ołówkiem i gumką i przyjmowałem, że jedna kratka to jeden bajt pamięci operacyjnej. W ten sposób łatwiej się liczyło adresy skoków :wink:
    A myślisz, że jak się wprowadzało programy do maszyny ODRA 1003 i 1013? Właśnie liczba po liczbie za pomocą klawiatury na obudowie jednostki centralnej. Klawisze były jaśniejsze i ciemniejsze (dla ułatwienia) a liczby wprowadzało się w układzie ósemkowym 8=O . Później wymyślono autokod MOST1 i nie trzeba się było uczyć liczb. A na ODRA-ch 1325 to już w FORTRAN-ie się pisało (dziurkowało karty). Ale to już była rozpusta :D
  • #26 2343877
    Frubi
    Poziom 13  
    Posty: 111
    Pomógł: 2
    Ocena: 5
    O kurcze niewiedzialem. A takim recznym programatorem napewno da sie Asemblerem programowac? Bo jak nie to troszke kiszka.
  • #27 2344054
    Konto nie istnieje
    Konto nie istnieje  
  • #28 2344425
    kaczepa
    Poziom 20  
    Posty: 238
    Pomógł: 32
    Ocena: 5
    Tak pamietam , mam do dziś w szafie ZX-SPECTRUM - miałem program w BASIC , pracował dwa dni i wyłaczyli prąd.Od tego momentu zacząłem pisać w Assemblerze.Mam na kasetach te programy do dziś.
    Pozdrawiam

Podsumowanie tematu

✨ Dyskusja dotyczy możliwości ręcznego programowania mikrokontrolerów bit po bicie bez użycia komputera. Uczestnicy potwierdzają, że jest to technicznie wykonalne, choć bardzo czasochłonne i podatne na błędy, zwłaszcza przy wpisywaniu kodów operacji. Wskazano, że błędy można wykrywać za pomocą diod LED podłączonych do pinów mikrokontrolera i porównywać zawartość pamięci krok po kroku, jednak korekta błędów wymaga często ponownego wgrywania całego programu. Przykłady historyczne obejmują ręczne wprowadzanie kodu maszynowego do komputerów takich jak ZX-81, ATARI 65XE, ODRA 1003 czy EPROMów. Podano także informacje o ręcznych programatorach, m.in. projekt Krzysztofa Świtalskiego do AT90S8515 oraz własne konstrukcje programatorów pod Amigę z wykorzystaniem portu LPT dwukierunkowego. Dyskutowano o ograniczeniach sprzętowych, np. braku dwukierunkowego portu równoległego w standardowych PC, co utrudnia implementację. Wspomniano modele mikrokontrolerów Atmel, takie jak AT89S8252, AT90S8515 oraz ATmega8515 z bootloaderem, który może ułatwić programowanie. Podkreślono, że ręczne programowanie całej pamięci (np. 2 kB lub więcej) to duże wyzwanie i wymaga dużej cierpliwości, ale może być użyteczne jako wstęp do budowy własnego programatora mikrokontrolerów.
Wygenerowane przez model językowy.
REKLAMA