HomeMade

Pełna wersja: Dla bojących się dotykać cyfrowych zagadnień elektroniki, prawdziwych radiowców ;-)
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2 3 4
Witam

Może i ja coś się nauczę , jako literaturę polecam

Mikrokontrolery AVR Język C Podstawy programowania Mirosław Kardaś

do tego jest płyta z środowiskiem do programowania Eclipse oparte o AVR GCC

Na stronie Atnel.pl są informacje o książce oraz możliwość kupna fajnego zestawu startowego zestawu co prawda nie mam ale książkę posiadam i jest dobrym językiem napisana bez zbędnego owijania w teorie. Ja używam płytki stykowej procka i kupy przewodów ale zbieram się z zamiarem kupna płytki testowej. A jako programator AVR910 z modyfikowanym softem

Pozdrawiam

Andrzej
Odradzam C przy programowaniu mikrokontrolerów, Tylko asembler. Zmusza do myślenia sprzętowego. Dla początkujących jest prostszy. Potem można spróbować w innych językach, ale zawsze wróci się do asemblera. Ostateczny argument jest taki że gdy masz hexa to zrobisz z niego źródło i zrozumiesz jak działa. Onegdaj doszedłem do takiej wprawy że czytałem i rozumiałem hexa 51 bez deasemblacji.
Dobra, jest sporo osób chętnych więc tak ....
Ja wałkowałem tylko atmegę 32 więc jeśli stoicie przed wyborem czy:
1. (najpierw) Atmega8 a potem Atmega32
2. Od razu Atmega32
to wam mówię że od razu Atmega32 (a nawet Atmega64) bo :
a. popularna obudowa Atmega 32 ma więcej wyjść/wejść niż popularna obudowa Atmegi8
b. Atmega32 ma 32 kiloBajty pamięci a Atmega8 ma 8 kiloBajtów
c. nie wiem czy nie ma istotnych różnic w "jądrze" układu (myślę że nie ale to wyjdzie w praniu)

Najlepiej będzie jeśli każdy do nauki będzie miał Atmegę16 lub Atmega32 lub Atmega64 (liczba przy słowie Atmega to kilobajty pamięci na program)
Kod programu do mojej syntezy DDS nie zmieściłby sie w pamięci Atmega8.
Jeśli sie rozwiniecie 8kB będzie za mało dla was.

Teraz poruszę problem sprzętów jakie są konieczne....
Liczba możliwych wariantów jest spora, podam kilka przykładów.
1. Kupujecie taki sprzęt jak ja lub podobny (mój podałem w linkach na początku tematu) i jest na nim:
- mikrokontroler Atmega16 lub 32 lub 64 (zależy co wybierzecie) z wgranym botloaderem, który pozwala na programowanie Atmegi bez prawdziwego programatora - na płycie jest uproszczony programator.
Poprostu oszczędność kasy, ale to działa i ja na tym sie uczyłem, (potem dokupiłem programator za jakieś 70 zł bo chciałem mieć dostęp do opcji które wymagaają programatora)
2. Robicie prostą płytkę (Atmega + rezonator kwarcowy + dwa kondensatorki + 4 jednorzędowe golpiny po 8 pinów) + kompletny stabilizator 5V + gniazdo do programatora) ... chyba większość potrafi zrobic samemu płytkę (nie musi być żadnych elementów SMD !! ) . Do tej płytki możecie kabelkami podłączać wyświetlacz + klawiaturkę z przyciskami itd... no i oczywiście musicie mieć programator... cena (wystarczającego w zupełności dla nas juz na przyszłość nawet) oscyluje między 50 - 70 złotymi . W sumie wydatek około 100 zł z Atmega i kwarcem + własna robota przy płytce NAPRAWDĘ PROSTEJ PŁYTCE.
3. korzystacie z płytki uniwersalnej robiąc płytkę Smile - da się na tej w "paski" + kupno programatora no i Atmegi
W każdym z tych trzech przypadków potrzebny jest komputer z gniazdem USB, o kablu USB pamiętajcie przy zakupie(sprawdzciee czy jest w zestawie) + oprogramowanie AVR studio 4 (jest już 5 ale mój komputer nie pozwala mi go używać - za słaby) - to darmowe oprogramowanie.

Wady i zalety rozwiązań:
Kupując płytkę ewaluacyjną mamy tam zazwyczaj od razu inne rzeczy jak gniazdko do wyświetlacza, małą pamięć EEprom, zegarek/kalendarz(układ scalony), przyciski, diody LED, może potencjometry, może gniazdko na kartę pamięci SD (u mnie jest), 8 wyjściowy układ z tranzystorkami które możemy obcciażyć 500mA i takie tam inne. ŁĄCZYMY TO WSZYSTKO Z ATMĘGĄ ZA POMOCA KABELKÓW (O KTÓRYCH TRZEBA PAMIĘTAĆ PRZY KUPNIE) BEZ LUTOWANIA. Na tej płytce możemy programować tylko Atmegi z wgranym wcześniej bootloaderem.
natomiast ...
Robiąc płytkę oszczędzamy kasę ale nie mamy tych wszystkich bajerków(no chyba że sobie je zrobimy) a programator pozwala programować Atmegi które nie maja wgranego bootloadera, pozwalają zmieniać fusebity - nie wiecie jeszcze pewnie o co chodzi ale to sie przydaje, konieczne np. do wykorzystania wszyskich pinów Atmegi.

Oczywiście możecie tak jak ja nabyć płytke i programator(później)
Jeśli ktoś ma pytania odnośnie tego co tu napisałem to proszę o nie.

EDIT:
do Jerzego : mogę pomóc tylko w C, asembler u mnie kiepsko ale fajnie byłoby gdyby równoległy wątek był prowadzony, wtedy byśmy sie uzupełniali. Co o tym sądzisz ?

do Admina: Czy powinienem przenieść ten wątek w inne miejsce ?

SQ7HJB

Witam!
Dla opcja 2 jest najkorzystniejsza. Wykonam pcb a pieniążki zostaną na programator.
Kwarc 11.0592 MHz czy może być inny?
Pozdrawiam
Czemu nauki zaczynać od takich potworów szczerzących liczne zęby wyprowadzeń ?
Wystarczy maluch np. Tiny13

Dlaczego ? :

Wielu kol. ze słomianym zapałem polega na 1 lekcji i kasa na bardziej wypasiony
kit startowy przepada bo nie każdy sprzeda dalej (no bo może kiedyś jeszcze spróbuję).

Kicik startowy na maluchu wykonuje się w 5 minut i nawet kwarca nie trza.
Koszt kilka zeta.
Zakładając oczywiście że pierwsze lekcje to zapalanie leda i sprawdzanie naciśniętego przyciska i parę innych prostych dupereli ....zanim C zapcha "marną" pamięć. Smile
Dlatego nie warto Attiny13... bo nic użytecznego na tym nie zrobię, co by dało efekt Smile a zapalenie diody to i na "atmega tysiąc pięćse sto dziewięćset" można zrobić w zasadzie z takim samym poziomem trudności.... (chyab że ktoś do gąsienic ma obrzydzenie Wink)
Jeśli wiara w sukces jest to: "nie mam przeciwwskazań" jak powiedział
naczelnik więzienia na Sikawie Smile
Kwarc chyba może być dowolny do 16 MHz więc 11MHz z hakiem też będzie dobry.
Co do dużej ilosci wyprowadzeń - będziecie za jakiś czas dziękować że macie do dyspozycji 4 porty, a każdy z portów po 8 wejść/wyjść. czyli 32 piny do dyspozycji.

Proponuję już ściągnąć AVR Studio 4 , ja mam wersję 4.17 ale inne wersje tez pewnie będą działać Smile Do tego trzeba doinstalować WinAVR wersja 20100110.

Jeśli będziecie mieli problem ze ściągnięciem tego z sieci to wyślę komuś te pliki a on będzie rozsyłał je dalej. Sam nie będę wszystkim rozsyłał bo szkoda czasu, lepiej żebym go zużył opisując działanie Atmegi lub pisząc przykładowy kod potrzebny do lekcji.

Ja oprogramowanie dostałem na CD od razu z płytą ewaluacyjną. Pewnie w większości sklepowych płyt ewaluaccyjnych jest już oprogramowanie gratis.

Jutro napiszę jak zainstalować oprogramowanie na kompie tylko sobie to przypomnę przed "czystym" komputerem
Procesor
Do nauki wystarczy dowolny procesor posiadający podstawowe zasoby: porty, SPI, kanał szeregowy, I2C, przetworniki ADC. Bardzo dobry stosunek ceny do możliwości daje ATmega8 na którym powstało wiele ciekawych projektów. Niestety przy ambitnych programach pisanych w językach wysokopoziomowych zacznie brakować miejsca na kod. Warto od początku wybrać procesor mocniejszy aby nie zmieniać go w trakcie rozwijania projektu np. ATmega32. Mimo wyższej ceny ten model daje duże możliwości pozwalając realizować złożone sterowniki. Zaletą starej rodziny procesorów AVR jest również możliwość programowania procesorów bardzo tanim programatorem poprzez port LPT.

Język programowania
Szybkie opanowanie pełnych możliwości języka C jest nierealne. Jest to język o bardzo złożonej, rozbudowanej i nieczytelnej składni trudnej do opanowania w początkowym stadium nauki. Kompilator pozwala na dużą swobodę tworzenia kodu co jest zaletą dla wytrawnych programistów i "drogą przez mękę" dla początkujących. Oczywiście proste algorytmy robi się szybko ale w miarę rozbudowania programu "schody" są coraz bardziej strome.
Do zdecydowanej większości projektów w naszym hobby wystarczą możliwości Bascoma. Odradzam również naukę assemblera w celach hobbystycznych, nakłady na naukę i napisanie podstawowych funkcji będą zbyt duże. Warto to robić w projektach komercyjnych gdzie liczy się zwięzłość kodu i szybkość realizacji algorytmu.

Zestaw startowy
Moim zdaniem szkoda "kasy" na zestawy startowe, które wcześniej czy później lądują bezużyteczne na dnie szuflady. Lepiej za te środki kupić dobrą książkę z opisem języka, programator oraz kilka procesorów. Skoro potrafimy w domowych warunkach wykonywać obwody drukowane to jaki problem aby samemu zrobić tani i prosty sterownik pod nasze potrzeby. Warto aby konstrukcja modułu była tak pomyślana abyśmy mogli docelowo zastosować go w jakimś przyrządzie czy nawet radiu. Do tego celu możecie Koledzy wykorzystać np. mój projekt minikomputerka do urządzeń QRP (Atmega32, LCD 2x16, klawisze, SPI, porty na złączach).

Nauka programowania
Przykładów lekcji pokazujących obsługę pojedynczych zasobów procesora jest w sieci dużo, sposobów łączenia tych kawałków w całość niewiele.
Najlepszą formą nauki programowania jest praktyczna realizacja jakiegoś projektu (była mowa o syntezie). Zaczynamy od obsługi wyświetlacza LCD, potem klawisze, enkoder, SPI, DDS, pamięci, kanał szeregowy, CAT itd. Kompleksowe pokazanie rozwiązywania całego problemu technicznego daje najlepsze efekty edukacyjne.
(12-01-2012 2:12)SP5FCS napisał(a): [ -> ]Język programowania
Do zdecydowanej większości projektów w naszym hobby wystarczą możliwości Bascoma. Odradzam również naukę assemblera w celach hobbystycznych, nakłady na naukę i napisanie podstawowych funkcji będą zbyt duże. Warto to robić w projektach komercyjnych gdzie liczy się zwięzłość kodu i szybkość realizacji algorytmu.
Zestaw startowy

czołem,

popieram Adama. 12 lat temu pisałem w asemblerze i to bardzo duże programy. Myślałem że szlag mnie trafi jak musiałem debuggować swoje funkcje do sortowania na przykład. Pisałem też w C.
Z wiekiem patrzę bardziej pragmatycznie i pod kątem efektywności. Uważam że jak się nie jest profesjonalistą i nie żyje z pisania kodu na mikrokontrolery - to BASCOM jest nie do pobicia.
Szkoda czasu na asembler. Wszystko da się zrobić w Bascomie, tylko że 5 razy łatwiej i 6,5 razy szybciej Wink

73! Artur sp2qca
Stron: 1 2 3 4
Przekierowanie