Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

jaki procesor zastosować

zeglarz 12 Mar 2004 06:59 3196 14
Computer Controls
  • #1
    zeglarz
    Level 2  
    Witam!
    Mam maszynę do obróbki drewna oraz "touchsreena" i 4 silniki bezszczotkowe ("z odzysku" - 24 VDC :D ). Chciałbym zrobić mikrokontroler sterujący tymi silnikami. Mój problem polega na tym, iż dopiero wchodzę w świat mikroprocesorów.
    Czy mógłby mi ktoś doradzić chociaż jakiego mikroprocesora użyć, aby praca tej maszyny była bezpieczna (a może jest to obojętne?). Wiem, że PLC to to nie będzie, ale może jest szansa zrobienia "zbliżonego" sterownika? Oczywiście w przyszłości chciałbym mieć możliwość dodawania paru funkcji do tego mikrokontrolera...
    Czy zna ktoś jakieś materiały nt. konstruowania i doboru części do określonych sterowników? Za każdą radę będę niezmiernie wdzięczny...
    Pozdr.,
    Paweł
  • Computer Controls
  • #2
    diag
    Level 29  
    Jeżeli się nie spieszysz(nauczenie sie i napisanie obsługi "touchsreena-dla "zielonego" tak ze 2 lata)to przczytaj opisy sterowników PLC ze sterowaniem takich silników. Sprawdź ich ceny. A potem napisz program.
    Opisz co zrobiłeś. Mam nadzieje ,że przeczytam to za jakieś 3 lata.
  • #3
    vahooz
    Level 12  
    Ja proponuje zrobić tak:
    at89c51+L6204+komputer+bascom=sterownik
  • Computer Controls
  • #4
    euromatic
    Level 21  
    Jeżeli wybierzesz atmela to wiecznie będziesz walczył z resetami i płytką.
    Jeżeli chcesz niezawodny to weź pica.
    Pozdrawiam
  • #5
    yego666
    Level 33  
    Ktorykolwiek procesor wybierzesz, bedzie on mial swoje zady i walety.
    Co jest naprawde wazne, to sposob, w jaki wybrany procesor oprogramujesz. Aby wspomoc ten proces i ulatwic tworzenie programu, nalezy wybrac taki uklad by zwolnil nas z wnikania w funkcje niskopoziomowe. Znaczy to, ze im wiecej funkcji takich jak timery, uklady komunikacyjne, uklady PWM, uklady Capture-Compare, przetworniki A/D i D/A, pamieci RAM, EEPROM czy FLASH, potrzebnych nam do realizacji zadania bedzie zaimplementowanych sprzetowo, tym mniej funkcji bedziemy musieli zrobic "na piechote". Rowniez nie bez znaczenia jest jezyk, w ktorym bedzie sie pisac aplikacje. Powinien on stwarzac mozliwosci a nie ograniczac "pisarza". Wiekszosc obecnie dostepnych jezykow programowania zmusza nas w wiekszym stopniu do zajmowania sie tym czego nie mozna zrobic, zamias umozliwic nam niczym nie ograniczone urzeczywistnianie naszej wizji.
    Programowalem juz rozne procesory w roznych jezykach, i doszedlem do wniosku, ze dla mnie najwygodniejszy jest procesor MSP430F..... .
    Ma on spora liczbe funkcji, o ktorych wspomnialem wyzej. Funkcje te daje sie dosc latwo "ozywiac". Procesor jest 16-bitowy i ma bardzo elegancka architekture. Nie zmusza do walczenia z ograniczeniami, a wrecz przeciwnie. Daleki jestem od negowania innych procesorow, lecz do PICakow zniechecil mnie dziwaczny sposob implementacji RAMu i dziwaczna dlugosc slowa, z ktora zawsze mialem problem. Majac 14-bitowe slowo nie da sie efektywnie wykorzystac calej dostepnej pamieci i zawsze sporo jej sie zmarnuje :cry: . Bardziej przyjazne w tej kwestii sa procesory ATMega. Sa scisle 8-bitowe i basta. Co do serii '51 to zwykle sa to inkarnacje albo ubogie w mozliwosci i moc obliczeniowa, albo za drogie zwazywszy ich mozliwosci i inne opcje. Pozostaja jeszcze kontrolery serii i960 czy MC683XX. Maja one potezna moc przetwarzania i niezwykle bogaty garnitur wbudowanych ukladow peryferyjnych, jedna jak na moj gust sa one za skomplikowane dla poczatkujacego adepta mikroprocesorologii stosowanej :) . Mozna do nich siegnac gdy juz nie bedzie innego wyjscia, ale w wiekszosci zastosowan mniejsze procesory dosc dobrze sie sprawdzaja.
    Co zas sie tyczy jezykow programowania, to zdecydowanie odradzam Basic w jakiejkolwiek postaci. Jezyk ten powoduje wyrobienie pewnych niekorzystnych nawykow programistycznych, ktore bardzo utrudniaja pozniej przejscie na powazniejsze jezyki jak FORTH, C czy asembler. Powoduje rowniez "dosc specyficzne" postrzeganie rzeczywistej architektury procesora. Dobry jezyk programowania powinien miec ceche samodokumentowania programu, a Basic niestety ma ceche samozaciemniania. Czesto czytajac posty dotyczace problemow, z ktorymi borykaja sie koledzy uzywajacy n.p. BASCOMu ( bez urazy ) zastanawiam sie czy nie prosciej jest przesiasc sie na jakis inny jezyk niz kombinowac jak kon pod gorke by zastosowac jakis cudaczny trik zmuszajacy BASCOM do posluszenstwa. Nie ma zreszta jezykow idealnych, a rowniez C czy FORTH czy nawet asembler maja swoje "ciemne strony". Tym bardziej trudn wydaje sie znalezienie rozsadnego kompromisu pomiedzy mozliwosciami danego jezyka a mozliwosciami pojecia zagadnienia przez niewprawnego nowicjusza.
    Na tym forum uslyszysz tyle zdan dotyczacych wyboru procesora i jezyka programowania ilu bedzie "doradcow".
    Przeczytaj je wszystkie, potem wypij piwo, zapomnij o tym co przeczytales i zdaj sie na swoj wlasny rozsadek. Jesli zle wybierzesz, bedziesz mial pretensje tylko do siebie :D
    Zycze slusznego wyboru, Y E G O
  • #6
    h-doc
    Level 27  
    Yego666 - napisz coś więcej o serii MSP430F. Konkretnie mam następujące pytania:
    1. Jak duży jest wachlarz układów
    2. W jakich obudowach są dostępne
    3. Jak wygląda problem programatora (wystarczy kabelek, czy trzeba mieć coś więcej)
    4. Jakie są dostępne narzędzia deweloperskie (asembler, kompilator C, debugger, symulator)
    5. Jakie są ceny tych układów i jak wygląda ich dostępność w Polsce.
  • #8
    yego666
    Level 33  
    :arrow: h-doc,
    Texas wciaz rozwija rodzine MSP430. Sa dostepne uklady w obudowach SO-20 i wieksze az do TQFP144.
    Wraz ze wzrostem liczby pinow wzrasta rowniez ilosc RAM, FLASH, ukladow PWM, licznikow, portow komunikacyjnych ( uart, spi, iic ).
    Zaleznosc oczywiscie nie jest scisle liniowa, ale ogolnie im wieksza obudowa, tym bogatsze wnetrze. Jest kilka opcji zegara (RTC-32768HZ, zewnetrzny szybki kwarc, wewnetrzny ring oscillator, rezystor ), przetworniki A/D 10 i 14 bitowe, FLASH od 2 do 60kB, RAM od 256b do 2kB, i wiele innych ciekawych ficzerow. Wspomne tylko o niklym poborze mocy rzedu 200 mikroAmperow na 1MHz - ideal do sprzetu przenosnego i pomiarowego. Programowanie jest oczywiscie typu ISP i mozna je przeprowadzac poprzez kabelek BSL ( bootstrap Loader czyli RS232 ), lub poprzez standardowe zlacze diagnostyczne JTAG, ktore rowniez sluzy do debuggingu. Bardzo niewielki hardware trzeba zrobic by dzialalo ze srodowiskiem ISP ( KickStart ) dawanym free przez Ti. Srodowisko to ma oczywiscie debugger, edytor, assembler, kompilator C/C++, oraz burner do zapisu Flasha. Dostepne jest rowniez sporo innych darmowych asemblerow i kompilatorow C, ot chocby mspgcc dla windozy lub dla UNIXa. Texas sprzedaje kostki poprzez swoich partnerow na calym swiecie a oni potrafia miec bardzo zroznicowane ceny: od $2 do $6 za te sama kostke. Zalezy od ilosci i firmy sprzedajacej. W polsce rowniez mozna kupic te kostki, ale nie trenowalem tej opcji ze wzgledu na przetestowane inne sciezki zaopatrzenia. Na szczescie kolega (kolezanka ?) Tdv podaje zrodelko. Moze warto tam zapytac .

    Aha, procesor ma typowa architekture RISC czyli sporo (16) rejestrow ogolnego przeznaczenia i nieduzy zestaw chyba 26 instrukcji ( ale za to bardzo dobrze przemyslanych ). Jesli kiedys miales stycznosc z programowaniem procesorow StrongARM, to bedziesz w domu. Istotna niedorobka tego procka jest brak trybu Supervisora i mechanizmow do jego obslugi, ale na pocieszenie dostaje sie watchdoga, ktory zaszczeka gdy cos bedzie zle z programem :)
    Jesli chcesz wiecej danych siegnij tu: http://focus.ti.com/mcu/docs/overview.tsp?fam...P=TIHomeTracking&HQS=Other+OT+home_p_micro430.
    Z tego co obserwuje, w Polsce te procesory nie sa zbyt popularne, ale rodzina jest mloda i chyba powoli zyskuje swoich zwolennikow, wiec jest nadzieja na rodzime wsparcie. Internet jest pelen materialow dotyczacych MSP430, wiec jest skad czerpac wiedze.

    Pozdrawiam, Y E G O
  • #9
    h-doc
    Level 27  
    ok, dzięki za informacje - o to mi chodziło. Teraz czas na ściągnięcie kilku pdf-ów i dokładniejsze obczytanie datasheetów.
    Jeszcze jedno pytanko - przydałoby mi się małe porównanie do serii ARM od Atmelka. Bo własnie chcę wejść w 16-bitowce i nie wiem na jaką rodzinę się zdecydować.
  • #10
    yego666
    Level 33  
    Milo, ze o to wlasnie Ci chodzilo :) .
    Co do porownania MSP z ARMem, to poza architektura sprzetowa i modelem programisty te dwie rodziny dzieli przepasc, po prostu naleza do roznych lig. Chodzi o to, ze ARM jest maszyna 32-bitowa o baaaaaaaaardzo rozbudowanej architekturze. Wprawdzie programowanie go to czysta przyjemnosc, ale mimo tego na pewno nie chcesz sie nim bawic. Wiekszosc obudow dla ARM jest typu BGA, lub gestych TQFP, a wiec dla amatora niezbyt wygodna. Atmelowskia seria AT91 ma setki kilobajtow RAM i ROM lub FLASH ( nawet kilka MB ) i wiele urzadzen peryferyjnych typu liczniki, PWMy, przetworniki A/D, porty komunikacyjne i wiele wiele innych. Osiaga wydajnosc rzedu 100MIPS. Jesli bawisz sie w teleportowanie splatanych par fotonow, to Ci sie ta moc przyda, ale jesli chcesz sterowac tylko dziesiecioma silnikami na raz i wszystkimi funkcjami inteligentnego domu, to procesor bedzie sie strasznie nudzil i bedzie nieszczesliwy :cry: .
    Wiecej nie bede pisal, bo wlasciwie nie jest to procesor dla amatorow ( bez obrazy ) i podejscie do niego wymaga czasu i zaplecza programowo-sprzetowego. Jesli MSP Ci nie wystarczy, polecalbym 16-bitowe procesory Hitachi ( obecnie Renesas ), ale to juz inna bajka.
    Pozdrawiam, Y E G O
  • #11
    h-doc
    Level 27  
    yego666 - niezła recenzja ;-)
    Niestety, problem z firmą Contrans polega na tym, że nie sprzedają w detalu - trzeba znaleźć coś innego. Jest jeszcze firma Pin, która jednak nie odpowiada na maile i nie odbiera telefonów. Czy ktoś z nimi kiedyś współpracował? A może jest jakiś inny detaliczny dystrybutor TI, który ma w ofercie MSP430?

    Pozdrawiam!
  • #12
    pit_com
    Level 15  
    Witam! W ostatnim czasie pojawiły się tanie procki ARM od ATMELA. Załóżmy, że poradziłbym sobie z przylutowaniem (też jestem trochę początkujący, bo dopiero 2-3 lata temu dowiedziałem się czemu płynie prąd :-) ) to czym się różni pisanie programów i programowanie ARM'ów od programowania AVR'ów ?? Uruchamiam właśnie wyświetlacz od Nokii 3510i i chciałbym zrobić do tego małą konsolkę :-) (kalkulator graficzny i procesor graficzny abym mógł pisać pod to gierki 3D ) A wiadomo, że jesli chciałbym obracac i przemieszczac chociaz paredziesiąt punktów (figur geometrycznych) i później wypełniać je (chociażby) jednolitym kolorem to potrzeba dość dużej mocy i duzych (np. 32-bitowych) liczb :-) Wiem to głupie robić coś takiego pod tak mały ekranik, ale wkrótce postaram się o coś większego... Czy warto inwestować w ARM-y ? Czy ich programowanie nie jest kosztowne i kłopotliwe? Jak bardzo różni się język C pod ARM od C pod AVR? (Słyszałem, że "ponoć" można jes programować przez LPT tak jak AVR). PS: Właśnie zaczynam uczyć się C, gdyż pisanie programów w Asemblerze jest zbyt czasochłonne...
  • #13
    McRancor
    VIP Meritorious for electroda.pl
    Nie wiem czy żartujesz z tym że chcesz zrobić procesor graficzny, czy ja coś źle rozumiem, ale jeśli tak, to ARM da radę, MSP może (2fps :) ) , ale chłopie, to nie będzie łatwe!

    Spróbuj sobie na sam początek wyobrazić że jesteś procesorem i co masz robić krok po kroku... Potem kup jakiś zestaw uruchomieniowy i jak już uda Ci się wyświetlić COKOLWIEK na tym małym ekraniku, to zobaczysz na co się porwałeś...
  • #14
    pit_com
    Level 15  
    Piszę właśnie algorytm. Wyliczyłem już większość wzorów (na liczbach załkowitych max 2^32 ) potrzebnych do przemieszczania obiektów w przestrzeni. Natomiast algorytm zamieniający dane 3D na obraz 2D (płaski) mam gotowy, gdyż napisałem go już rok temu. Teraz trzeba to przepisać na kod procesora (dla ułatwienia mam zamiar nauczyć się w C). Mam kości RAM ( 2X256kB) i myślę, że warto by było zrobić sam projekt. Natomiast wykonanie byłoby dla mnie następnym etapem. Dlatego bardzo chciałbym dowiedzieć się jak najwięcej o ARM'ach.
  • #15
    Fakiros
    Level 13  
    Jako sterownik grafiki radzę użyć jakiegoś FPGA + pamieć RAM (pamieć graficzna). Nie bawiłem się ARMem ale myślę że bez sęsu było by go obciążać instrukcjami niskopoziomowymi sterującymi odświeżaniem wyświetlacza, chyba że wyświetlacz taki sterownik posiada wewnątrz. A całą grafikę obrabiać oczywiście na ARMie i wysyłać do pamięci sterownika graficznego - ciekawy pomysł.
    Jak bedą efekty opublikuj je na forum.