Jak zacząć swoją p rzygodę z mikroprocesorami

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
Awatar użytkownika
lutownik
Użytkownik
Posty: 517
Rejestracja: 01 paź 2006, 12:37
Lokalizacja: z planety Zi Emia
Kontakt:

Jak zacząć swoją p rzygodę z mikroprocesorami

Post autor: lutownik » 16 lip 2010, 10:17

Witam wszystkich forumowiczów.

Nadeszły wakacje :grin: . Czas upragniony dla wielu elektroników w wieku szkolnym. Z nadmiaru wolnego czasu właśnie chciałbym zacząć swoja przygodę z mikroprocesorami. Problem jest taki od czego zacząć. Moglibyście podsunąć co należy kupić na początek aby zacząć swoją przygodę z mikroklockami??? Przyznam się iż złożyłem cały zestaw AVT2500. Sęk w tym że nie wiem czy jest sens to w ogóle zaczynać. Same kości 8051 jakoś ciężko dostać a i ich moce przerobowe nie są zbyt wielkie. myślałem też nad atmegami 8 , ale one same wyszły z produkcji i są ciężko dostępne. Bardzo proszę was o Pomoc.

Awatar użytkownika
haterkmp
Użytkownik
Posty: 652
Rejestracja: 08 sie 2008, 11:47
Lokalizacja: Wałbrzych

Post autor: haterkmp » 16 lip 2010, 10:54

ja zacząłem od książki z kursem Bascoma AVR i AT90S2313 (tego też już nie produkują ale jest ATtiny2313) i muszę przyznać że kurs przynajmniej dla mnie jest bardzo fajny i "łagodny". na pewno wielu powie Ci żebyś od razu wziął się za kurs C i też będzie dobrze. po bascomie mam pewien niedosyt bo to tego nie zrobisz a to tamtego... nie ma jednej odpowiedzi co lepsze. na pewno C ma szersze perspektywy bo uczysz się języka dla praktycznie każdego kontrolera. ale z drugiej strony bascom nie jest zły do "poczucia" o co w tym chodzi. w samym bascomie też można napisać bardzo dobre programy ale ograniczasz się do AVR ew. do 51. generalnie cokolwiek wybierzesz będzie dobrze :)

Doktor_UC
-
Posty: 13
Rejestracja: 07 cze 2010, 3:39
Lokalizacja: Częstochowa

Post autor: Doktor_UC » 16 lip 2010, 12:13

Kłopoty z mikrokontrolerami AVR są, jak się wydaje, przejściowe. Radzę nie rezygnować z układów z rodziny ATmega, bo do nauki programowania mikrokontrolerów są - moim zdaniem, oczywiście - najlepsze. Z naciskiem na programowanie w asemblerze. Natomiast jeśli kolega lutownik zamierza programować w językach wyższego poziomu (świadomości, ma się rozumieć), to wszystko jedno, czy będzie to rodzina AVR, ARM7, czy PIC. Zwracam uwagę, że firma Microchip wznowiła politykę samplową, więc ich układy można mieć dla zastosowań niekomercyjnych za darmo. A do programowania większości z rodziny PIC16 wystarczy prosty jdm.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 16 lip 2010, 21:44

lutownik pisze:myślałem też nad atmegami 8 , ale one same wyszły z produkcji i są ciężko dostępne.
tu bym polemizował, bo o ile zwykła atmega8 może i wyszła z produkcji, to jeśli dobrze pamiętam zastąpiła ją wersja z literą A, co oznacza że jeden i ten sam procek można zasilać szeroką gamą napięć. bo zdaje się że wcześniej były dwie wersje napięciowe ?

Doktor_UC
-
Posty: 13
Rejestracja: 07 cze 2010, 3:39
Lokalizacja: Częstochowa

Post autor: Doktor_UC » 17 lip 2010, 6:08

Były dwie wersje napięciowe (zwykła i niskonapięciowa z L w nazwie) i wiecznie wynikające z tego kłopoty przy programowaniu. Wypuszczenie ATmega8A wydaje się być dobrym ruchem firmy, ale sam układu jeszcze nie testowałem, bo mam spore zapasy zwykłej ATMegi8.

keruseykaryu

Post autor: keruseykaryu » 17 lip 2010, 7:36

Ciekawe czy byka z AVCC poprawili? Poza tym dziwię się, że ATMEL odświeża tego staruszka. Do niedawna było pisane, że zastępuje ją ATmega88 (ma większe możliwości), a teraz ATmega88 jest "be" i zastępuje go ATmega88A, a równocześnie pojawia się ATmega8A. Brak tu konsekwencji.
Z nadmiaru wolnego czasu właśnie chciałbym zacząć swoja przygodę z mikroprocesorami. Problem jest taki od czego zacząć.
Możliwości masz dużo:
- 8051 - AVT2500 i specjalny programator, chyba że włożysz wersję AT89S z ISP. Ceny pewnie znasz.
- AVRtiny - AVT3500 - niestety jest tam sporo niedogoności zatem jeśli chcesz je mieć "z głowy" to lepiej zainteresuj się jego bratem bliźniakiem ZL11AVR. Można też samą pustą płytkę kupić - będzie o wiele taniej, bo nie ukrywajmy tego faktu: KAMAMI to jednak zawyżają ceny. Cena zależna od wersji.
- AVRmega - jakiś zestaw z ATmega16 lub ATmega32, jest sporo alternatyw: zestaw KAMAMI (płytka jak wyżej), zestaw z AND-TECH (ok. 190zł), zestaw z PROPOXu (Cena zależy od zestawu).
- MSP430 - zestaw Launch Pad bez żadnych peryferii, ale za 5 dolarów(!) z wbudowanym programatorem USB, albo MSP-EXP430FG4618/F2013 za około 200zł.
- ST7 - ST7LiteComp dostarczany za darmo z książką kolegi radzia.
I tak można by przejść jeszcze przez rodziny Z8, M8, PIC, PSoC, AVR32, ARM, CortexFPGA. Etc.

MacBi
Użytkownik
Posty: 113
Rejestracja: 02 mar 2007, 21:41
Lokalizacja: Bydgoszcz

Post autor: MacBi » 17 lip 2010, 8:40

Polecam książkę pt: "AVR & ARM7 programowanie mikrokontrolerów dla każdego". Autor uczy programować jednocześnie w czterech językach: asembler, C, Bascom i Pascal.

Doktor_UC
-
Posty: 13
Rejestracja: 07 cze 2010, 3:39
Lokalizacja: Częstochowa

Post autor: Doktor_UC » 17 lip 2010, 12:12

O! Bardzo dziękuję za ten wpis, choć od razu zastrzegam się, że nie jestem jego autorem. Ale - przyparty do muru twardym głosem MacBi - swoją książkę oczywiście też polecam :)

Doktor_UC
Paweł Borkowski

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 17 lip 2010, 20:19

ja polecam zestawy z firmy PROPOX. sam mam EVBavr04 i jestem bardzo zadowolony.

Awatar użytkownika
lutownik
Użytkownik
Posty: 517
Rejestracja: 01 paź 2006, 12:37
Lokalizacja: z planety Zi Emia
Kontakt:

Post autor: lutownik » 18 lip 2010, 14:26

No i jakoś dalej mam watpliwości od czego zacząć. Sam asembler jest najbardziej wszechstronny ale napisanie programy, który zapala i gasi diodę, wymaga dużo wysiłku i jeszcze więcej nauki. Chyba wezmę się za programowanie ATmeg. Ale w jakim języku??

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 18 lip 2010, 16:37

No ja się ci wcale nie dziwię, koledzy zarzucili cie tu masą różnych propozycji.
Natomiast musisz sobie odpowiedzieć na kilka pytań.
1. Co na tym chcesz robić i za jaka cenę :?: To ważne pytanie, i nie chodzi tu bynajmniej o cenę zestawu startowego, bo co z tego że zaczniesz się uczyć ARMów jak są to drogie procesory i wszystkie w SMD, dodatkowo ich mnogość potrafi doprowadzić do zawrotu głowy.
2. Jakie jest wsparcie na forach dla danych proców :?: To samo co u góry, np. MPSy sa fajne, ale ilu ludzi ich używa w naszym kraju, i aktywnie udziela się na forach internetowych.
3. Czy zamierzasz iść na studia :?: Jeżeli tak to na pewno otrzesz się o 8051, wiec dobrze by było ją poznać, wbrew opiniom 51 nie jest jeszcze taka stara i można na niej zrobić całkiem wiele. Programowane przez SPI tak jak AVRy to praktycznie 3-4 układy Atmela, ale na tyle ciekawe że nawet warto się nimi zainteresować. 89S2015, 89S4051, 89S52
4. Język programowania ? Trudna sprawa, bo jak nie programowałeś to tak ASM jak i C będą dosyć trudne na początku. BASCOM natomiast to takie trochę wszystko i nic w jednym.

Ja bym ci proponował jednak na początek 8051 albo AVR. To 2 najpopularniejsze u nas rodziny i znajdziesz łatwo wsparcie.
Jest jeszcze PIC i ARMy z pod szyldu PHILIPS (NXP), ale to już raczej mniej, choć co prawda była propozycja kursu programowania PICów w EDW, lecz wybrano analogówkę i mamy serią artów o wzmacniaczach operacyjnych.

Awatar użytkownika
haterkmp
Użytkownik
Posty: 652
Rejestracja: 08 sie 2008, 11:47
Lokalizacja: Wałbrzych

Post autor: haterkmp » 18 lip 2010, 16:52

Kayron dla PICów microchip "zrobił" takiego dość prostego basica i można w szysbki sposób napisać prosty program. dodatkowo jest dużo gotowych bibliotek dla procków i można zrobić naprawdę zaawansowane urządzenia bez studiowania kursów.

keruseykaryu

Post autor: keruseykaryu » 18 lip 2010, 17:06

lutownik pisze:Sam asembler jest najbardziej wszechstronny ale napisanie programy, który zapala i gasi diodę, wymaga dużo wysiłku i jeszcze więcej nauki.
Wcale nie. Wyolbrzymiasz to znacznie.

Kod: Zaznacz cały

    .include "tn13def.inc"

    .cseg
    .org  0x00

    ldi   r16, RAMEND
    out   SPL, r16

    ldi   r16, 0x01
    out   DDRB, r16
    out   PORTB, r16

main:
    in    r17, PORTB
    eor   r17, r16
    out   PORTB, r17

    ldi   r24, 0x80
    ldi   r25, 0xFF
    rcall wait

    rjmp  main

;----------------------
wait:
    push  r25
wait_1l:
    dec   r25
    brne  wait_1l
    pop   r25
    dec   r24
    brne  wait
    ret
Co tu takiego strasznego oprócz dziwnych nazw rozkazów?

Z asemblerem jest jednak pewien szczegół: każda rodzina procesorów ma go inny. Dlatego nie warto od niego zaczynać, lecz warto sobie czasem otworzyć kod wynikowy i zobaczyć jak co zostało przetłumaczone.
lutownik pisze:Chyba wezmę się za programowanie ATmeg. Ale w jakim języku??
Mając być uniwersalnym to jest tylko jedna droga, a nazywa się C. Być może zaczniesz od AVRów, ale możesz skończyć na Cortex M3 w strukturach FPGA. I znajomość tylko tego języka pozwoli bez problemów przejść z jednego na drugie. Pamiętaj też, że nie ma BASCOM PIC ani BASCOM ARM.
kayron pisze:4. Język programowania ? Trudna sprawa, bo jak nie programowałeś to tak ASM jak i C będą dosyć trudne na początku.
Ale nie będą drogą bez przejazdu.

[ Dodano: 2010-07-18, 18:20 ]
kayron pisze:To samo co u góry, np. MPSy sa fajne, ale ilu ludzi ich używa w naszym kraju, i aktywnie udziela się na forach internetowych.
Tylko jak tu się udzielać, skoro i tak nikt tematów o nich nie zakłada.

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 18 lip 2010, 17:44

Zacznij od bascoma jest prosty i przyjazny.
Swoja drogą w bascomie na tym forum to chyba tylko ja i matrix pisze.
Reszta bascoma się brzydzi.

keruseykaryu

Post autor: keruseykaryu » 18 lip 2010, 19:22

Pikczu pisze:Zacznij od bascoma jest prosty i przyjazny.
Swoja drogą w bascomie na tym forum to chyba tylko ja i matrix pisze.
Reszta bascoma się brzydzi.
Prosty i przyjazny. Owszem. Widzisz, znam kogoś, kogo nauczyłem pisać w BASCOM. Teraz jak ma coś napisać to tylko BASCOM i robi to szybko. Ale trafił Mu się projekt, gdzie program trzeba było upchnąć do ATtiny13 i co? Program w BASCOM się nie zmieścił. 106% zajętości procesora. Projekt stop. Pokazałem mu wersję w C gdzie jeszcze 10% pamięci zostało. Niestety strach przed nowym był murem nie do przebicia.
Niestety na dłuższą metę BASCOM nie jest zbyt przyszłościowy. Po dwóch latach zobaczysz wszystkie ograniczenia. Staniesz w miejscu i nie będziesz mógł z BASCOM zrezygnować, a nowego będziesz się bał. Dokładnie jak wyżej.

Źle to rozumiesz Pikczu i za dużo chyba elektrody czytujesz. Ale popatrzeć trzeba trzeźwo: BASCOM - prosty, łatwy i przyjemny, ale niestety mało przyszłościowy, bo odpowiedników w innych rodzinach procesorów jest jak na lekarstwo. I żmudną naukę trzeba będzie powtarzać.

ODPOWIEDZ