Arduino z montażem?

12

Ponieważ dla mojego przedsięwzięcia w zakresie mikroprocesowania zdecydowałem się na Atmel AVR ze względu na ogromne dostępne zasoby. Wydaje się, że Arduino też ma dużo, nie wspominając już o tym, że ich zestawy startowe wydają się bardziej „na moim poziomie”

Problem polega na tym, że najpierw chcę się tego nauczyć w asemblerze, a potem przejść do C / C ++ lub w / e Arduino, ale czy słyszałem, że Arduino nie chce montować AVR? Czy to prawda? czy jest jakiś sposób na to?

Dzięki

edytuj: Wybrałbym ATMEL STK500, ale… dla pierwszego timera wygląda to bardzo skomplikowane? Czy jest jakiś powód, dla którego nie mogę po prostu uzyskać 8-bitowego AVR i położyć go na płycie próbnej i eksperymentować w ten sposób? (Chyba musiałbym wymyślić, jak je interfejsować jako takie ....)

edit2: Tak myślałem

http://www.adafruit.com/index.php?main_page=product_info&cPath=17&products_id=193


źródło
Jak leci? Więc jakie rozwiązanie rozważałeś? Kupiłem Arduino Uo i szukam sposobu na rozwój również w asemblerze
sll

Odpowiedzi:

5

Płyty Arduino można programować podczas montażu. Wszystko czego potrzebujesz to kabel ICSP (In Circuit Serial Programmer) i łańcuch narzędzi AVR (wolny od ATMEL) do zapisu na tablicy. Następnie zyskujesz możliwość debugowania na pokładzie.

Jak zasugerowałeś, możesz po prostu uderzyć chip ATMEL na deskę do krojenia i udać się do miasta.

Zestaw, o którym wspomniałeś, wygląda na świetny punkt wyjścia. Możesz wyjąć chip bezpośrednio z planszy i przykleić go na własnej płycie (pod warunkiem, że ma prawidłowo regulowaną moc i bierzesz pod uwagę zegar).

RQDQ
źródło
Tak, chciałbym się trzymać z tym, że nie stawiam go teraz na własnej płycie lol Nie jestem taki świetny z obwodami.
@Sauron - hah - obie strony są dobre. Cokolwiek Cię wciągnie! Dobrą rzeczą jest to, że poszczególne żetony są dość tanie (kilka dolców).
RQDQ
2

O ile wiem, w bootloaderze Arduino nie powinno być nic konkretnego, co mogłoby uniemożliwić użycie zestawu zamiast C. Arduino IDE może utrudniać przesyłanie własnych plików .hex, ale wygląda na to, że bootloader Arduino jest kompatybilny ze STK500, więc powinieneś być w stanie używać go z avrdude.

jpc
źródło
Tak, w rzeczywistości sam Arduino IDE używa avrdude do wykonania przesyłania.
Chris Stratton,
1

Płytki Arduino (w każdym razie Uno i Duemilanove) mają standardowe złącze do programowania AVR, które jest obsługiwane przez programistów i debuggerów Atmel za pośrednictwem AVR Studio. Studio obsługuje asembler i C. Odpowiednim programistą jest AVRISP MkII, a AVR Dragon oferuje zarówno programowanie, jak i debugowanie. Dostałbym ten drugi, jest droższy za 50 USD, ale funkcja debugowania jest nieoceniona. Możesz także użyć tych narzędzi ze standardowym układem AVR (nie Arduino) podłączonym do płyty pilśniowej lub płytki drukowanej.

Leon Heller
źródło
1

Arduino składa się z dwóch części: sprzętu i IDE. IDE głównie (jeśli nie całkowicie) ogranicza cię do C i C ++ (z odrobiną cukru syntaktycznego, do którego wrzucili programiści, aby był trochę bardziej podobny do Processing / Java). Istnieje szansa, że ​​IDE rozpozna pliki .s lub .S w tym samym katalogu, co standardowy szkic (.pde), ale nie powiesiłbym na tym kapelusza.

W sprzęcie nie ma nic specjalnego. Jest to przyjemna, przyjazna tablica z wieloma fajnymi funkcjami, które docenią neofity µC, ale jeśli chcesz po prostu zaprogramować AVR za pomocą nagłówka ISP, możesz to zrobić. Potrzebujesz czegoś takiego jak Atmel AVRISP mkII lub inny programator współpracujący ze złączem 2x3-rzędowym na płycie Arduino. Poszukaj takich, które są kompatybilne z programem avrdude, którego użyjesz do przesyłania aplikacji. Unikaj USBtinyISP Adafruita; Miałem z tym okropne szczęście i ostatecznie kupiłem ten, który połączyłem za mniej niż 40 USD od Mousera.

blalor
źródło
1
Dziwne, nie miałem nic oprócz dobrych doświadczeń z Atmel IDE i usbtiny, Buspirate podwoi się również jako ISP dla wielu różnych platform, świetne małe narzędzie
niefortunne
1

Wcale nie trudne.

http://www.dwelch.com/arduino/

Musisz spojrzeć na Myślę, że ser.c na mojej stronie, aby wybrać kartę. niektóre używają domyślnie różnych prędkości portów szeregowych i różnych schematów resetowania, aby przejść do trybu programowania. Jeśli spojrzysz na oprogramowanie arduino, zauważysz, że prawie żadna z komend programowania AVR nie jest naprawdę obsługiwana. I tak naprawdę ich nie potrzebuję.

old_timer
źródło
1

Aruduino można absolutnie zaprogramować podczas montażu. Do tego nie potrzebujesz nawet kabla ICSP!

Dobra, uczciwie, to nie to samo, co programowanie w czystym asemblerze od podstaw.

Ale możesz wstawić asembler w C. Co oznacza, że ​​możesz załadować kod do swojego Arduino, który ma inline asembler, który następnie zostanie wykonany. Rozważ bibliotekę TVOut , która pozwala Arduino wyprowadzać NTSC / PAL na telewizor.

Ta biblioteka jest bardzo wrażliwa na czas (ponieważ jest wysyłana do telewizora, każda linia skanowania musi być napisana we właściwym czasie). Używa więc wbudowanego zestawu w celu przyspieszenia procesu. Patrząc na wiersz 89 tego pliku z biblioteki, autor używa niektórych makr asemblera , które napisał.

Teraz. Podejrzewam, że nie napisał ich przy użyciu domyślnego IDE Arduino. Ale ta biblioteka korzysta z wbudowanego kodu asm, który każdy może importować, kompilować i uruchamiać za pośrednictwem swojego interfejsu.

Powodzenia!

zgrzyt
źródło
2
W rzeczywistości możesz także tworzyć pliki źródłowe asemblera, wystarczy pominąć Arduino IDE i wejść w interakcję z narzędziami zaplecza, takimi jak avr-gcc (lub cokolwiek, czego używasz jako asemblera) i avrdude.
Chris Stratton