Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
IGE-XAOIGE-XAO
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[ARM][SAMD21] Jak zaprojektować płytkę rozwojową? Jak zaprogramować uC?

17 Jun 2018 21:58 978 26
  • Level 18  
    Dzień dobry,

    Przychodzę ze sprawą która z pewnością wywoła trochę śmiechu u niektórych lecz w internecie nic a nic na ten temat znaleźć nie mogę.

    Zacznijmy od początku - od jakiegoś czasu bawię się platformami które łatwo można programować w arduino ide jak arduino leonardo czy te mniejsze na np. attiny85.

    Jest jedna rzecz jednak która mi bardzo ale to bardzo przeszkadza, większość powie że jest to ogromna zaleta lecz dla mnie w tym momencie wada, mianowicie są one bardzo uniwersalne, wszystko trzeba podłączać kablami, każde dodatkowe części tj. rezystory itp. trzeba podłączać osobno. Chciałbym zrobić sobie swój własny układ, swoje własne pcb zaprojektowane do swoich potrzeb jednakże nigdzie w internecie nie mogę znaleźć jasnych instrukcji jak to zrobić.

    Chodzi mi o to że jak zakupuję 'surowy' mikrokontroler np. atmega32u4 jak w leonardo czy też ATSAMD21E18A-AU jak w najnowszym trinkecie m0, to jak mam zacząć z nimi cokolwiek działać. Mają one natywną obsługę usb, jak mam podłączyć taki mikrokontroler do komputera, czy jest potrzebny specjalny schemat? Czy ten mikrokontroler ma w sobie coś co pozwoli mi od razu coś na niego wgrać z komputera czy jednak nie da się obejść bez programatora? Jak mam wszystko przygotować żeby móc np. zrobić emulację klawiatury czy gamepada jak przy użyciu arduino?

    Prawdopodobnie proszę o wiele ale naprawdę mi na tym zależy a nie mogę nigdzie znaleźć prostych i przejrzystych informacji.

    Pozdrawiam.
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
  • IGE-XAOIGE-XAO
  • Level 18  
    Arduino jest fajne dla początkujących, bo mikrokontrolery mają już wgrany bootloader i dlatego możesz komunikując się z prockiem przez port szeregowy wgrać nowy program. Jak kupisz ,,surowy'' mikrokontroler to on nie będzie mieć niczego wgranego, nie będzie bootloadera i do zaprogramowania będziesz potrzebować programator. Jaki: konkretny dla danej rodziny procesorów. Kolejny plus arduino: na płytce jest od razu konwerter USB - uart, żeby móc ,,rozmawiać'' z mikrokontrolerem. Kiedyś chciałem kupić kilkadziesiąt atmega32u4 i się okazało, że najtaniej wychodzi kupić arduino micro :-)
  • Level 18  
    Czyli fakt że mikrokontroler ma moduł usb w środku nic nie zmienia tak? Znalazłem już nie pamiętam gdzie w internecie taką informację, cytuję "because all AVR chips with hardware USB come with a DFU (Device Firmware Updater) bootloader that allows them to be programmed directly from the USB port without needing an ISP or other programmer. The DFU bootloader presents itself as a USB device that can be recognized by a computer."
  • Level 39  
    Witam,
    zolianek wrote:
    od jakiegoś czasu bawię się platformami które łatwo można programować w arduino ide jak arduino leonardo czy te mniejsze na np. attiny85

    może zacznij nieco inaczej, zaprojektuj swoje własne płytki z peryferiami, które są Ci potrzebne, w te płytki "wtykaj" całe kompletne płytki: Uno, Mega, Mini, Micro, itd, będzie i wilk syty i owca cała.

    Pozdrawiam
  • Level 1  
  • User removed account  
  • Level 18  
    "czy też ATSAMD21E18A-AU" który jest 2x tańszy ale jest z tego co wiem ARM. Czy on również posiada bootloader od razu i można wgrać tym programem FLIP?
  • User removed account  
  • IGE-XAOIGE-XAO
  • User removed account  
  • MCUs specialist
    To już raczej Nucleo z L476 - ciut łatwiejsze i przyjemniejsze do ogarnięcia niż seria F4.
  • User removed account  
  • User removed account  
  • User removed account  
  • User removed account  
  • Level 31  
    zolianek wrote:
    Chciałbym zrobić sobie swój własny układ, swoje własne pcb zaprojektowane do swoich potrzeb jednakże nigdzie w internecie nie mogę znaleźć jasnych instrukcji jak to zrobić.

    Są, tyle że to temat złożony i nie ma jednej ogólnej odpowiedzi.
    Każdy niuans należy ogarnąć osobno:

    1. Musisz posiadać wiedze o podstawach elektroniki.
    2. Czytasz noty producenta o interesujących cię układach.
    3. Jak wiesz jak działa tworzysz schemat jaki chcesz.
    4. Projektujesz płytkę czyli PCB.
    5. Robisz płytkę sam albo zlecasz.
    6. Zaopatrujesz się w części i lutujesz.
    7. Podłączasz co trzeba i gotowe.
    8. Piszesz program, np. za pomocą notatnika dla programisty, lub używasz środowiska od producenta.
    9. Kompilujesz jakimś osobnym kompilatorem, bądź dostarczonym razem ze środowiskiem
    10. Wgrywasz skompilowany kod w możliwy sposób.

    Na każdy punkt można dużo napisać, zobacz ile tematów jest w działach:
    https://www.elektroda.pl/rtvforum/forum12.html
    https://www.elektroda.pl/rtvforum/forum10.html

    I jak znam życie wcale nie wyczerpują tematyki ;)

    Ja projektuje płytki w programie kicad,
    ale programów do wyboru na różnych zasadach jest znacznie więcej.

    To czego używasz do programowania dowiadujesz się wstępnie z
    dokumentacji a potem szukasz po sklepach i ewentualnie pytasz na forach.

    Używaj wyszukiwarek internetowych, wstępnie można już coś znaleźć.
  • User removed account  
  • User removed account  
  • User removed account  
  • Level 18  
    A jakbym miał bardzo konkretniej się zapytać o to w jaki sposób najłatwiej byłoby zrobić swoje pcb (jakiego mikrokontrolera użyć, może jakiś gotowy schemat ktoś posiada) do kilkuklawiszowego keypada? Chciałbym trochę z własnego kaprysu a trochę z ciekawości jak trudno jest coś takiego zrobić, zaprojektować właśnie takiego macropada z własnym pcb i możliwie najmniejszym kosztem, bez podpinania do tego gotowych rozwiązań które są zwyczajnie za duże.
  • User removed account  
  • Level 38  
    Płytka KA-Nucleo to nie namiastka tylko wariacja. Jest oparta o F411CE - układ ma mniej wyprowadzeń. STM32F103 pełniący funkcję ST-Linka nie jest na "rozłącznym" PCB co znów jest ograniczeniem. Wreszcie jest tylko pinout pod standard arduino zrobiony (więc nie wejdą shieldy ST) oraz jest rgb led na płytce który bodajże zachodzi na drugi I2C (nie bardzo wiem zresztą po co ten led). Co jest in plus - drugie USB (do 411), mniejsze wymiary i cena. W sumie tylko tyle.

    O ARMy w DIP będzie trudno, a AVR z USB chyba też w PDIP nie występują. Najlepiej w tej sytuacji zaopatrzyć się w adaptery z qfp na dip, bo żelazko etc. w przypadku amatora to będzie droga przez mękę. Szczególnie jeśli mowa o układach ST o małym rastrze.
  • Level 18  
    @nowyARM Nie miałbym problemu ze zrobieniem tego w smd. Pytając jakiego kontrolera użyć bardziej chodziło mi o jakiś konkretny najtańszy model z natywną obsługą usb, a pytając w jaki sposób najłatwiej byłoby to zrobić to raczej myślałem nad pomocą w zaprojektowaniu pcb. Z elektroniką najwięcej styczności miałem raczej analogową i średnio się łapię w tych mikrokontrolerach.
  • Helpful post
    Level 38  
    Płytka "bluepill" nieoryginalna na STM32F103RB to koszt (z przesyłką) rzędu 10zł. Taniej kolega nie zrobi. Nic tylko do pinout bluepill się dopasować i zrobić resztę "rozwojówki". Chyba, że bardzo koledze zależy na czymś nowszym i własnym design to nic tylko przejrzeć ofertę STM32F4, bo są to chyba najtańsze detalicznie MCU ARM z Cortex-M4F.
  • User removed account  
  • Level 18  
    Po tych odpowiedziach widzę, że jednak jest to na tyle skomplikowane że prawdopodobnie sam nie będę w stanie tego ogarnąć. Nie chodzi o brak chęci czy coś w tym stylu a raczej o brak czasu, mam niestety o wiele ważniejsze rzeczy niż uczenie się tego wszystkiego tylko po to aby zaprojektować jedną płytkę. @tronics dzięki za tę płytkę, z pewnością zakupię jedną i poeksperymentuję coś z nią.

    Jeżeli jednak ktoś dysponowałby jakimś poradnikiem czy może gotowym programem dla jakiegoś mikrokontrolera (avr czy arm), który umożliwiałby zrobienie urządzenia hid klawiatury to byłbym wdzięczny. Z góry dziękuję.
  • Level 18  
    Dzięki @nowyARM, będę próbował :)