Jaki mikroprocesor do eksperymentów?

33

Mam ukrytą fantazję (ups, już nie tak tajną), aby zbudować prosty komputer od zera. Poszukuję łatwego w obsłudze mikroprocesora. Wiem o zwykłych podejrzanych, takich jak 6502, 68000, 8086, Z80 itp. Ale zastanawiam się, czy jest coś lepszego. Oto moja lista życzeń:

Muszę mieć:

  • Niska częstotliwość taktowania (4-25 MHz)
  • Nie więcej niż 40-60 pinów, najlepiej w konfiguracji DIP
  • Zdolność do zajęcia około 64 KB pamięci, ale do 1 MB byłoby dobrze
  • Architektura przechowywanego programu (nie tylko przestrzeń do odczytu) (edycja: wyklucza to większość mikrokontrolerów z niższej półki, takich jak PIC i AVR)
  • Model z płaską pamięcią, nie jest bankowany ani segmentowany jak 8086

Chciałby, ale nie musi mieć:

  • Zestaw instrukcji RISCy (load-store)
  • Rejestry ogólnego przeznaczenia
  • Asortyment pinów we / wy TTL
  • Wbudowana pamięć flash ROM

Jaki mikroprocesor lub mikrokontroler sugerujesz, że jest stosunkowo łatwy do podłączenia i napisania pierwszych procedur ROM?

Moim celem jest uruchomienie prostego systemu Forth (lub podobnego). Powiem tylko, że to zrobiłem.

Edycja: Po przeprowadzeniu drobnych badań myślę, że coś takiego jak ARM7 byłoby dla mnie odpowiednie. Jest wyposażony w nietrywialną ilość pamięci flash i SRAM do zabawy - czasem nawet w pamięć flash 256K i SRAM 64K - wraz z cyfrowymi I / O, ADC, szeregowymi I / O i więcej.

Oto jedna: płyta rozwojowa ARM STR711 .

Barry Brown
źródło
Nie bardzo związane z programowaniem. Brzmi bardziej jak pytanie sprzętowe (tj. Materiał superuser.com).
3
tak, ale tylko publiczność programista może odpowiedzieć poprawnie
Stefano Borini,
Czy chcesz, aby urządzenie samo obsługiwało klawiaturę, mysz i wyświetlacz, czy łączysz się tylko przez port szeregowy?
Serial byłby dla mnie w porządku.
STR711 ARM tak naprawdę nie jest zanurzony

Odpowiedzi:

15

Zgadzam się, że ARM to droga do 32-bitowych mikrokontrolerów. ARM jest wszechobecny, a jego język asemblera może być wykorzystywany w szerokiej gamie rodzin mikrokontrolerów. ARM ma również dobre wsparcie z zestawu narzędzi GCC. Architektura układu ARM7TDMI zdominowała 32-bitową przestrzeń mcu w ciągu ostatnich 5 lat, a ARM Cortex-M3 jest nowym zamiennikiem. Cortex-M3 ma architekturę Harvarda (osobne przestrzenie instrukcji i danych), ale nie uważam tego za ograniczenie.

Micromint ma dobrą reputację i oferuje płytę Cortex-M3 z konfigurowalnymi opcjami za przyzwoitą cenę. Jeśli jednak naprawdę potrzebujesz konfiguracji DIP, odniosłem sukces z mbedem

Teraz następną rzeczą są języki. Wspomniałeś o FORTH. Polecam również Python-on-a-Chip i eLua jako potężne, łatwe do nauczenia się języki, które działają na platformie docelowej tego rozmiaru. eLua jest w pełni rozwinięty, ale wymaga większych zasobów niż Python-on-a-Chip. Pełne ujawnienie: jestem autorem PyMite VM używanej w Pythonie na chipie. Jeśli więc Twoim celem jest stworzenie własnego języka, w pełni rozumiem radość z tego ćwiczenia.

dwhall
źródło
1
ARM ma oddzielne magistrale instrukcji i danych , przestrzeń adresowa jest zunifikowana (tzn. Możesz czytać instrukcje i wykonywać dane, jeśli potrzebujesz). Poleciłbym również przyjrzeć się niższym układom Cortex-Mx od NXP - sprawdź LPCXpresso.
Igor Skochinsky
7

W przypadku drobnych treści z Arduino , tania, zabawna, dobra społeczność

W przypadku maszyn klasy ARM najtańszą jest prawdopodobnie wtyczka sheeva , która tworzy niesamowitą kompletną maszynę wbudowaną w zasilacz ścienny i nieco dużą maszynę jednopłytkową z dużo większą liczbą we / wy

Lub jest tablica Beagle , której celem jest bardziej wydajność audio / wideo.

Wszystkie działają pod Linuksem, więc masz ogromną gamę oprogramowania programistycznego

Martin Beckett
źródło
Całkowicie. Pobierz zestaw Fuzebox, złóż go i zhakuj małe gry (jak sądzę, jak dotąd wszystkie wolne programy) do telewizora.
5

MSP430 z Texas Instruments ma bardzo niski pobór mocy, mały, ale bardzo rozsądny zestaw instrukcji (w przeciwieństwie do PIC), narzędzia open source i format DIP w swojej linii wartości. Niedawno wydali zestaw startowy 4,30 USD (tak, to cztery dolary trzydzieści centów, bezpłatna wysyłka) zestaw startowy, który zawiera interfejs USB do programowania i debugowania oraz dwa układy DIP do zabawy. Sprawdź to .

Igor Skochinsky
źródło
To fajnie! Dodałem zakładkę do tej strony. :)
4

Możesz zdobyć układ FPGA i naśladować całą sprawę - nie wymaga procesora.

Kusiło mnie, aby spróbować wcześniej stworzyć prosty komputer MIPS. Mam podstawową konstrukcję procesora, ale trudno byłoby co najmniej powiedzieć o owijaniu drutem lub prototypowaniu w inny sposób.

McPherrinM
źródło
To ciekawy pomysł. Czy istnieją źródła referencyjnych konstrukcji procesorów, które można zaprogramować w układzie FPGA?
Większość zestawów FPGA ma darmowy lub licencjonowany procesor. Czasami nawet z towarzyszącym RTOS.
Byłoby wykonalne PDP-1. Jest zbudowany z komponentów modułowych. Schematy logiczne dla każdego komponentu są opublikowane w Digital Logic Handbook, 1969 (mój właśnie przyszedł dziś pocztą!).
luser droog,
2

Sprawdź mikrokontrolery ATmega firmy Atmel, mają wszystko, o co prosisz, z wyjątkiem możliwości wykonywania kodu z pamięci RAM i są bardzo łatwe w konfiguracji.

Niektóre małe 32-bitowe procesory ARM, takie jak ARM7TDMI, byłyby alternatywą, ale nie są dostarczane w pakietach DIP. To samo dotyczy mikrokontrolerów Renesas R8C / M16C.

starblue
źródło
Wszystkie AVR używają przestrzeni instrukcji tylko do odczytu, prawda? Muszę mieć możliwość uruchamiania poza pamięcią RAM, aby moje programy mogły pisać programy.
Tak, wygląda na to, że masz rację. Chociaż 25 lat temu grałem w Forth, użyłem implementacji kodu wątkowego, co byłoby możliwe w AVR.
starblue,
Zaobserwowano ARM Cortex M0 w 28-pinowym pakiecie DIP: nxp.com/products/microcontrollers/cortex_m0/lpc1100_x_l/...
starblue
2

Brzmi jak świetny projekt! Zrobiłem jeden w latach 70-tych z układem 8008 i odrobiną pamięci RAM i ROM. Zaprogramowałem go, aby grał trochę melodii z głośnikami podłączonymi do portu I / O. Część obwodu pamięci dotyczyła układu czasowego kontrolowanego przez kondensator. Przylutowałem dodatkowy kondensator, który po zetknięciu się z nim sprawił, że całość zwolniła o 1000. Potem użyłem w klasie jako demonstratora. Najpierw działałem powoli, a uczniowie słyszeli klikanie głośników, klikanie. Potem odczepiłem kondensator i usłyszeli melodię. Próbowałem wywrzeć na nich wrażenie, jak komputery kończą jedną instrukcję przed rozpoczęciem kolejnej.


źródło
1

Sprawdź OLIMEX - mają płyty programistyczne do większości nowoczesnych mikrokontrolerów, a jeśli naprawdę chcesz DIP, mają procesory ARM na płytach w formacie podobnym do DIP ( 1 ). Sprzedają także JTAG i mają dostęp do kodu demonstracyjnego dla większości płyt (gcc), dzięki czemu bardzo łatwo jest z nich korzystać. Większość ich plansz jest dostępna za pośrednictwem Sparkfun . Osobiście lubię mikrosfery Phillips LPC ARM, ale wszystko od Olimex jest dobre.

AVR32 będzie również działał dla ciebie (bez problemów). Dopiero niedawno zacząłem z nich korzystać i byłem bardzo zaskoczony ich zdolnością i łatwością użycia.

Tworzenie od podstaw nie jest tak naprawdę opcją, chyba że używasz 8-bitowego mikroprocesora lub nie masz zestawu do lutowania płyt montowanych powierzchniowo i debugowania skomplikowanych cyfrowych płyt pc.

Gerhard
źródło
1

W zależności od celów możesz rozważyć zbudowanie własnego procesora z pożądanymi funkcjami zamiast korzystania z istniejącego procesora. Sprawdź Homebuilt CPU . Jest nawet szalony entuzjasta, który zbudował procesor z przekaźników!

Dour High Arch
źródło
1
ŁAŁ! To dziwne! I wygląda z tego dumnie ....
asp316
To niezły projekt. Alan Turing pracował ze sprzętem opartym na przekaźnikach. Przekaźniki tego faceta wyglądają na starannie zmontowane i wbudowane w ładne szafki. Dobra robota!
Kaz
1

Śmigło Paralaksy

Jedynym 32-bitowym procesorem obecnie produkowanym w pakiecie DIP jest śmigło Parallax . (Ten sam układ jest również dostępny w znacznie mniejszych 44-stykowych pakietach QFP i 44-stykowych pakietach QFN, wszystkie z 32 stykami we / wy ogólnego zastosowania). Oprócz Windows IDE istnieje również kilka narzędzi programistycznych, które działają pod Linuksem .

Wygląda na to, że spełnia wszystkie twoje wymagania, z wyjątkiem „wbudowanej pamięci flash ROM” - zamiast tego ładuje się śmigło z zewnętrznej 8-pinowej pamięci EEPROM. (To jeszcze jedna kwestia do podłączenia, ale znacznie łatwiej jest podłączyć 8-pinowy układ niż większość zewnętrznych układów do przechowywania programów).

Davidcary
źródło
0

+1 Za mikrosy ATmega. Dostajesz je z modułem ładującym do programowania przez USB - dzięki czemu uruchomienie pierwszej płyty jest jeszcze łatwiejsze bez konieczności posiadania dedykowanego programisty. Jeśli pójdziesz tą trasą, przegapisz rzeczy związane z ICE.

Belrog
źródło
0

Drugi głos na Amtel. Szczególnie podoba mi się teensy ++ dla prototypów i eksperymentów. USB dostarcza zasilanie, zapewnia interfejs programowania i wyświetla wyjście debugowania. Narzędzia programistyczne GNU. Mnóstwo zabawy za około 30 USD.

Frobozz512
źródło
0

Atmel będzie bardzo popularny, same arduinos (lubię profesjonalne modele w Sparkfun) same w sobie są popularne. Znajdziesz WIELE hobbystów, którzy znają i mogą odpowiedzieć na większość pytań dotyczących korzystania z AVR.

Wolę zestaw instrukcji msp430 od avr, a zestaw instrukcji arm nad innymi. Olimex tworzy szereg tablic „nagłówkowych”, które są idealne do eksperymentów. Luminary micro ma kilka dobrych, ale wiele pinów jest zużywanych przez układ, aby pokazać jego układy peryferyjne, dobre do nauki układu i funkcji, ale ostatecznie chcesz je odciąć, aby uzyskać wejście / wyjście. W każdym razie olimex jest dobry, spróbuj http://www.sparkfun.com i przeglądaj tablice rozwojowe, niektóre pochodzą od olimex, niektóre pochodzą z Sparkfun, szeroki wybór i wiele poniżej 40 USD lub 50 USD, więc możesz spróbować kilku, aby zobaczyć, co masz lubić. Mam zamiar zamówić armmite, który, jeśli spełnia wymagania listy funkcji, jest prawdopodobnie najlepszą płytą kontrolera do moich celów.

old_timer
źródło
0

Miałem ten sam sen, po prostu nigdy go nie dotarłem.

Większość powyższych zaleceń dotyczy płyt programistycznych. Ponieważ powiedziałeś „od zera”, zakładam, że chcesz zacząć od jednego procesora DIP i nie kupować płyty deweloperskiej. W takim przypadku bardzo bardzo polecam, abyś trzymał się czegoś podobnego do zwykłych podejrzanych wymienionych w poście. Są popularne, ponieważ dobrze sprawdzają się przy takim zadaniu. Potrzeba zwiększenia liczby linii we / wy dzięki multiplekserom i demultiplekserom.

Załóżmy, że znalazłeś ten „idealny” procesor, który robi wszystko, co chcesz, i ma dokładnie tyle linii, ile chcesz. Nie znajdziesz nigdzie w pobliżu odrobiny wsparcia dla popularnych procesorów. Powinieneś bardzo łatwo znaleźć stare używane książki na E-Bay, Amazon itp. Po prostu za grosze, które pokazują, jak zaprojektować kompletny system za pomocą tych procesorów. Nie wspominając już o witrynach internetowych, kompilatorach i innych osobach, które robią to samo.

Jeśli pójdziesz z czymkolwiek innym, myślę, że będziesz głęboko tego żałować. Spędzisz więcej czasu sfrustrowany brakiem wsparcia, niż przezwyciężeniem problemów technicznych związanych z tymi procesorami. Ponadto, ponieważ ludzie zaprojektowali już całe komputery z tymi układami, wiesz, że można to zrobić. Cokolwiek innego, zawsze istnieje szansa, że ​​uderzysz w ścianę z cegieł.


źródło
Ponadto możesz rozważyć opcję skopiowania istniejącej architektury, takiej jak C64, która została już zhakowana na śmierć.
0

Wybierz Atmel AVR. Oto kilka platform gier wokół tego:

http://belogic.com/uzebox/index.asp
http://avga.prometheus4.com/
http://www.innovativedevice.com/console/GameStation.asp
http://www.lucidscience.com/pro-lazarus-64%20prototype-1.aspx
http://www.lucidscience.com/pro-vga%20video%20generator-1.aspx
avra
źródło
0

Wolę zestaw instrukcji msp430 od avr, a zestaw instrukcji arm nad innymi.

Rckt
źródło