Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 4 lut 2025, o 14:50


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 1 ] 
Autor Wiadomość
PostNapisane: 21 maja 2015, o 00:05 
Offline
Nowy

Dołączył(a): 07 paź 2014
Posty: 9
Pomógł: 0

Witam serdecznie

Jako ze ostatnio jestem cały czas w rozjazdach pomyślałem sobie o projekcie mini zestawu startowego który będę mógł programować za pomocą interfejsu USB (i schować do paczki po papierosach).

Traf chciał, że znalazłem zapomniane Arduino UNO.

Na początek rzuciłem okiem na schemat:
http://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

Według schematu na płytce oprócz klasyka gatunku czyli atmega328P znajduje sie jeszcze jeden atmelowski procek a mianowicie atmega16u2-MU. Czym prędzej zajrzałem do noty ( http://www.atmel.com/Images/doc7799.pdf ) i okazuje sie, ze to cudo ma interfejs usb i generalnie służy za przejściówkę rs232. Dlaczego w Arduino UNO jest tak to rozwiązane - nie wiem - ale na pewno daje więcej możliwości niż zwykła przejściówka rs232.

Przystąpiłem do wgrania bootloader-a którego przygotowałem w następujący sposób:

Obrazek

BLS address:
Boot Flash size=256 words start address=$3F00
x2 = 7E00


Potem tylko mkavrcalculator->Upload to uC z opcją ustawiania fusebitów (boot flash section oraz Boot Reset vector Enabled) oraz turbo-doładowaniem :).

Po resecie i podłączeniu UNO przez kabel USB (via 16u2) bootlaoderek ochoczo "pluje" znakami zapytania na terminal, polecenie u i tez dziala (putty COM8 b19200):

????????????????
&128,0x7E00,atmega328p,16000000,1*


Natomiat program mkbootloader po naciśnięciu przycisku info zwraca komunikat:

Błędny odczyt z BLS, spróbuj ponownie
******

******


Po podłączeniu prześciówki do pinów RX i TX (na krzyż) wszytko działa bez zarzutu, mkbootloader ładnie zwraca:

Odczyt danych z BootLoader'a
Procesor: ATmega328p
Taktowanie: 16 000 000 Hz
BootLoader: 1
FLASH
PageSize: 128, FreeMEM: 32 256kb (0x7E00)



Wgrywając program przez przejściówke na COM5 nawet moge oglądać rezultaty na porcie 8 (na arduino poprzez 16u2):

Obrazek

Dodatkowo chciałbym zaznaczyć, ze zwykłe programy napisane w języku C (z Mirkowych poradników :) ) z udziałem rs-a działają bez problemu z wykorzystaniem interfejsu szeregowego UNO w postaci 16u2.

Niestety nie znalazłem żadnych opcji do zmiany czegokolwiek jeżeli chodzi o porty COM w mkbootloaderze, także nie wiem co jeszcze mogę zrobić. Czy ktoś z szanownych forumowiczów ma jakiś pomysł ?

pozdrawiam
Piotr



PS.
Co ciekawe UNO (16u2/Aruino ??) posiada opcje AutoResetOnSerialConnection - co wywoływało mi się strasznie dziwne na początku, ale po chwili dostrzegłem mega możliwość w programie mkbootlader. W przypadku takiego rozwiązania nie trzeba ani implementować programowego resetu ani nie trzeba naciskać fizycznie przycisku. Sam układ zadba o reset. Można to na szybko to wyłączyć zwierając kondensatorem elektrolitycznym 10 uf (lub większym) masę do resetu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 1 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO