Arduino z montażem?

Chcąc zająć się mikroprzetwarzaniem, 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 o tym, że ich zestawy startowe wydają się bardziej ” na moim poziomie. ”

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

Edycja: 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 wziąć 8-bitowego AVR i umieścić go na płytce prototypowej i eksperymentować w ten sposób? (Myślę, że musiałbym wymyślić, jak je połączyć).

Edit2: Właśnie o tym myślałem

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

Komentarze

  • Jak leci? Więc jakie rozwiązanie rozważałeś? Kupiłem Arduino Uo i szukam sposobu na rozwój w asemblerze
  • Sugerowałbym użycie kontrolera 89c51 (8051) dla języka asemblera

Odpowiedź

Płytki Arduino można programować w zespole. Wszystko, czego potrzebujesz, to kabel ICSP (programator szeregowy w obwodzie) i łańcuch narzędzi AVR (wolny od ATMEL), aby pisać na płycie. Dzięki temu zyskujesz przewagę dzięki wbudowanemu debugowaniu.

Jak sugerowałeś, możesz po prostu przyłożyć chip ATMEL do płytki prototypowej i pojechać do miasta.

Zestaw, do którego się odnosisz, wygląda jak świetny punkt wyjścia. Możesz wyjąć chip bezpośrednio z płytki i przykleić go na własnej płytce prototypowej (o ile ma on prawidłowo regulowaną moc i uwzględnisz zegar).

EDIT: Najwyraźniej nie potrzebujesz ICSP do ładowania programów asemblerowych. Szczegóły znajdziesz w komentarzu poniżej.

Komentarze

  • Tak, ' bardzo chcę się trzymać. Nie umieszczam go teraz na własnej płytce prototypowej lol Nie jestem taki świetny z obwody.
  • @Sauron – hah – tak czy inaczej jest dobrze. Cokolwiek cię wciągnie! Dobrą rzeczą jest to, że poszczególne żetony są dość tanie (kilka dolarów lub więcej).
  • Ta odpowiedź jest zasadniczo myląca: NIE JEST POTRZEBNY ISP . Program ładujący używany przez Arduino jest starszy niż projekt Arduino i nie ma żadnego pojęcia, czy ładowany plik pochodzi z kompilatora czy asemblera. Proszę nie ' utrwalić błędne przekonanie, że program ładujący w Arduino ma cokolwiek wspólnego z metodą pisania programów przeznaczonych dla sprzętu; jest to po prostu wygodny mechanizm pobierania kodu dowolnego pochodzenia do chipa.
  • @ChrisStratton – dziękujemy za Twoją opinię. ' zaktualizowałem swoją odpowiedź, aby uwzględnić Twoją opinię.

Odpowiedź

Arduino IDE można „naprawić”, aby pomieścić kod asemblera. Oto wiki: http://www.cs.nmsu.edu/~jcook/arduino/index.php?n=Notes.AssemblyMods

Komentarze

  • adres URL wygląda na uszkodzony

Odpowiedź

O ile wiem, powinno nie ma nic szczególnego na temat programu ładującego Arduino, co mogłoby uniemożliwić używanie assemblera zamiast C. Arduino IDE może utrudniać przesyłanie własnych plików .hex, ale wygląda na to, że program ładujący Arduino jest kompatybilny ze STK500 , więc powinieneś móc go używać z avrdude.

Komentarze

  • Tak, właściwie, samo Arduino IDE używa avrdude do przesłania.

Odpowiedź

W ogóle nie jest to trudne.

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

Aby wybrać, musisz spojrzeć na Myślę, że ser.c na mojej stronie która karta. niektóre używają domyślnie różnych prędkości portu szeregowego i różnych schematów resetowania, aby przejść do trybu programowania. Jeśli spojrzysz na oprogramowanie układowe arduino, stwierdzisz, że prawie żadne z poleceń programowania avr nie jest naprawdę obsługiwane. I tak naprawdę ich nie potrzebuję.

Odpowiedź

arduino można zaprogramować z assemblerem przy użyciu GCC-AVR Inline Assembler sprawdź ten link Książka kucharska wbudowanego asemblera GCC-AVR

http://web.stanford.edu/class/ee281/projects/aut2002/yingzong-mouse/media/GCCAVRInlAsmCB.pdf

Odpowiedź

Płyty Arduino (w każdym razie Uno i Duemilanove) mają standardowe złącze do programowania AVR, które jest obsługiwane przez programistów i debuggery Atmel za pośrednictwem AVR Studio. Studio obsługuje assembler i C. Odpowiednim programatorem jest AVRISP MkII, a AVR Dragon oferuje zarówno programowanie, jak i debugowanie. Dostałbym to drugie, kosztuje 50 USD drożej, ale funkcja debugowania jest nieoceniona. Możesz również użyć tych narzędzi ze standardowym chipem AVR (nie Arduino) podłączonym do płytki prototypowej lub PCB.

Komentarze

  • Chociaż ' to prawda, że mają nagłówek ICSP, ' nie ma potrzeby go używać. Program ładujący działa równie dobrze z dowolnymi środkami autorstwa programu, aw rzeczywistości nawet Arduino IDE opiera się na istniejącym programie narzędziowym wiersza poleceń avrdude do obsługi programu ładującego.

Odpowiedź

Arduino składa się z dwóch części: sprzętu i IDE. IDE ogranicza cię głównie (jeśli nie całkowicie) do C i C ++ (z pewną dozą składniową, którą programiści dorzucili, aby trochę bardziej przypominać Processing / Java). Jest szansa, że IDE rozpozna pliki .s lub .S w tym samym katalogu co standardowy szkic (.pde), ale nie powiesiłbym na tym głowy.

Nic nie ma Specjalny sprzęt. Jest to przyjemna, przyjazna płyta z mnóstwem fajnych funkcji, które docenią neofici w µC, ale jeśli chcesz zaprogramować AVR tylko przez nagłówek ISP, możesz to zrobić. Będziesz potrzebował czegoś takiego jak Atmel AVRISP mkII lub dowolny inny programator współpracujący ze złączem wierszowym 2×3 na płycie Arduino. Poszukaj takich, które są zgodne z program avrdude, którego będziesz używać do przesyłania aplikacji. Trzymaj się z daleka od USBtinyISP firmy Adafruit; miałem z nim okropne szczęście i ostatecznie kupiłem komputer Atmel, z którym połączyłem się za mniej niż 40 USD od firmy Mouser.

Komentarze

  • Dziwne, ' nie miałem nic poza dobrymi doświadczeniami z Atmel IDE i usbtiny. Również buspirate podwoi się jako ISP dla wielu różnych platform, świetne małe narzędzie
  • Tam ' nie ma potrzeby stosowania adaptera ICSP, program ładujący działa dobrze z dowolnymi środkami autorstwa programu

Odpowiedź

Aruduino można absolutnie zaprogramować w asemblerze. I nie potrzebujesz do tego nawet kabla ICSP!

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

Ale możesz wbudować asembler w C. Co oznacza, że możesz załadować kod do swojego Arduino, który ma wbudowany asembler, który następnie zostanie wykonany. Weź pod uwagę bibliotekę TVOut , co pozwala Arduino wyprowadzać NTSC / PAL do telewizora.

Ta biblioteka jest bardzo wrażliwa na czas (ponieważ jest wysyłana do telewizora, każda linia skanowania musi być zapisana po prawej stronie time.) Tak więc używa on asemblera inline, aby przyspieszyć ten proces. Patrząc na wiersz 89 tego pliku z biblioteki, autor używa części makra asemblera , które napisał.

Podejrzewam, że nie napisał ich przy użyciu domyślnego Arduino IDE. Ale ta biblioteka odwołuje się do jego wbudowanego asm, który każdy może zaimportować, skompilować i wykonać za pośrednictwem swojego interfejsu.

Powodzenia!

Comm ents

  • Właściwie możesz również tworzyć pliki źródłowe asemblera, wystarczy pominąć Arduino IDE i wejść w interakcję z narzędziami zaplecza, takimi jak avr-gcc (lub cokolwiek używać jako asemblera) i bezpośrednio avrdude.

Odpowiedź

Używam Linuksa jako platformy hosta, ale ja myślę, że te narzędzia są również dostępne dla odmian systemu Windows.

Używam ” avra ” do złożenia kodu szesnastkowego konwerter (kompilator)

Następnie programuję układ za pomocą programatora USBTiny i narzędzia programistycznego ” avrdude „.

Uważam, że oba te narzędzia są open source.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *