Skocz do zawartości
ghost1313

Własne Arduino na Atmega8 i Atmega328

Pomocna odpowiedź

Witam,

ostatnio postanowiłem zbudować własne Arduino. W pierwszej kolejności wykorzystałem do tego mikrokontroler Atmega8. Wyczytałem iż najpierw należy wgrać bootloader za pomocą programatora USBAsp, a następnie, używając konwertera USB->TTL wgrywać programy (Reset wciskałem manualnie) i komunikować się z portem szeregowym. Wszystko fajnie działało, ale 4kB pamięci flash to za mało na wgranie wielu szkiców, nawet tych z menu przykłady.

Przerzuciłem się więc na mikrokontroler Atmega328 i tutaj w pierwszej kolejności wgrałem bootloader używając programatora. Co mnie jednak zaskoczyło to fakt, iż programowanie tego układu musi wyglądać inaczej niż poprzedniego. Po pierwsze, nie działa mi wgrywanie programów za pomocą konwertera, muszę używać opcji Wgraj używając programatora. W przypadku Atmegi8 ta opcja nie pozwalała wgrywać programów Arduino (chyba po prostu nadpisywała bootloader). Tutaj wszystko działało, ale oczywiście brak konwertera powodował brak możliwości komunikacji z portem szeregowym. Finalnie więc muszę mieć podłączone obie rzeczy, aby móc wgrywać programy i rozmawiać z portem szeregowym.

Podsumowując pytania są następujące:

1) Dlaczego opcja Wgraj używając programatora zachowuje się inaczej w przypadku obu układów?

2) Czy da się jakoś wgrywać programy Arduino do mikrokontrolera Atmega328 używając tylko konwertera USB->TTL (zakładam że da się, bo w końcu płytka Arduino UNO chyba tak to robi)?

Udostępnij ten post


Link to post
Share on other sites

Musi się dać jeśli jest wgrany bootloader tym bardziej, że mega8 działa. Najwyraźniej sknociłeś coś z konfiguracją, posprawdzaj wszystko raz jeszcze a szczególnie fuse bity.

Udostępnij ten post


Link to post
Share on other sites

To jeszcze pytanie - jaki to bootloader na 328. Spróbuj wgrać bootloader od Pro Mini (Twojej płytce chyba najbliżej do tego).

Udostępnij ten post


Link to post
Share on other sites

Możesz wgrać każdy bootloader przeznaczony do Atmegi 328, najważniejsze by był skompilowany pod twój kwarc. Komunikacja po UART jest ściśle powiązana z częstotliwością taktowania. Dotyczy to zarówno działania w bootloaderze jak i w szkicu docelowym. Wgrasz od UNO, to kompilujesz i wgrywasz jak do UNO, jeśli z PRO MINI to jak do promini. Najlepszy jest ten od UNO, szybki i nie ma konfliktu z WDT jak stary bootloader od PRO MINI. Aktualnie w NANO i UNO jest ten sam bootloader i od strony Arduino IDE jest nie od rozróżnienia. Te od UNO i PRO MINI mają ustawioną inną prędkość komunikacji, jak wgrasz inny niż chcesz używać to Arduino nie dogada się z programem ładującym, bo będą gadały na różnych prędkościach.

Wgrywanie szkicu przez programator USBASP nadpisuje bootloader, by potem znowu z niego skorzystać na nowo wgrywasz bootloader.

Wciskanie resetu palcem jest OK, ale musisz wyczuć chwilę i nawet z dużą wprawą nie zawsze zadziała. Jak masz DTR na konwerterze UART to prościej jest dodać jeden kondensator 100n do swojej płytki (w szeregu między DTR i RST) i masz jak w Arduino bez gimnastyki.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Napisz odpowiedź...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...