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



Teraz jest 3 sty 2025, o 11:07


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 
Autor Wiadomość
PostNapisane: 2 lip 2015, o 16:38 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 208
Lokalizacja: Białystok
Pomógł: 0

Witam,

Buduję sobie Arduino na ATmega1284P w oparciu o Sanguino: http://www.blue17.elektroda.eu/mikrokontrolery-avr/1935.

Bootloader wgrany, ale nie zawsze chce się wgrać program :( Diody na przejściówce (http://www.ebay.com/itm/181720085968?_t ... EBIDX%3AIT) coś tam sobie pomigają i tyle. Czasami wgra się wsad, ale bardzo rzadko. Procesor na pewno przechodzi w stan RESET, bo przestaje migać dioda na pinie PB0 (digital 0) (z programu blink, który kiedyś udał mi się wgrać). Czy to może być coś nie tak z bootloaderem. Czy mogło być tak, że bootloader się nadpisał?

Połączenia:

Przejściówka | ATmega1284P
RXD | TXD
TXD | RXD
RTS | RESET


Oczywiście sam mikrokontroler dobrze podłączony, bo można normalnie programować z USBASP.

ObrazekObrazekObrazek

_________________
Mam 16 lat, nie jestem zawodowcem ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lip 2015, o 19:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

DamCos napisał(a):
Czy mogło być tak, że bootloader się nadpisał?


jeśli nie zabezpieczyłeś sekcji bootloadera to jest możliwe że uleciał ....

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lip 2015, o 19:18 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 208
Lokalizacja: Białystok
Pomógł: 0

SunRiver napisał(a):
DamCos napisał(a):
Czy mogło być tak, że bootloader się nadpisał?


jeśli nie zabezpieczyłeś sekcji bootloadera to jest możliwe że uleciał ....


A w jakim sensie "zabezpieczyć"? To znaczy co wykonać. Bo właściwie to wypaliłem go z Arduino IDE.

------EDIT--------------

Wgrałem ten bootloader jeszcze raz, ale za pomocą MkAVRCalculator. Po wgraniu tego bootloadera mogę zaprogramować procka, ale już kolejny raz nie mogę. Taki jakiś jednorazowy bootloader. Jak zrobić, żeby nie uciekał?

_________________
Mam 16 lat, nie jestem zawodowcem ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lip 2015, o 19:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

nie zabezpieczasz sekcji bootloader przed nadpisaniem....


Dla megi1284:

masz następujące fusebity dla arduino :

LFuse = 0xFF
HFuse = 0xDC
EFuse = 0xFD

wgrywasz bootloader i zabezpieczasz sekcję bootloadera przez zastosowanie

lock bit = 0x0F

natomiast unlock to 0x3F


wszystko należy wykonać w odpowiedniej kolejności ....


UWAGA !!!

Operacje na Fuse Bitach i LOCK Bitach -- są dla doświadczonych użytkowników i należy wykonywać zmiany z rozwagą.
Za złe/ niewłaściwe stosowanie prowadzące do uszkodzenia/zablokowania mikrokontrolera nie ponoszę odpowiedzialności !!!

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lip 2015, o 19:58 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 208
Lokalizacja: Białystok
Pomógł: 0

SunRiver napisał(a):
nie zabezpieczasz sekcji bootloader przed nadpisaniem....


Dla megi1284:

masz następujące fusebity dla arduino :

LFuse = 0xFF
HFuse = 0xDC
EFuse = 0xFD

wgrywasz bootloader i zabezpieczasz sekcję bootloadera przez zastosowanie

lock bit = 0x0F

natomiast unlock to 0x3F


wszystko należy wykonać w odpowiedniej kolejności ....


UWAGA !!!

Operacje na Fuse Bitach i LOCK Bitach -- są dla doświadczonych użytkowników i należy wykonywać zmiany z rozwagą.
Za złe/ niewłaściwe stosowanie prowadzące do uszkodzenia/zablokowania mikrokontrolera nie ponoszę odpowiedzialności !!!



OK, a ten lock bit to to samo co lock bajt (chodzi o mkavrcalculator)? Bo mam to ustawione na 0x3F.

teraz ustawiłem tak:

Obrazek

_________________
Mam 16 lat, nie jestem zawodowcem ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lip 2015, o 20:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

DamCos napisał(a):
OK, a ten lock bit to to samo co lock bajt (chodzi o mkavrcalculator)? Bo mam to ustawione na 0x3F.


czytałeś co napisałem ?? wyżej ??

0x3F to unlock czyli nie jest zabezpieczone nic ....
0x0F to lock w tym momencie zabezpiecza ta wartość tylko ustawiony sektor bootloadera przed nadpisaniem

a jak nazwał kto w programie ??? jakie ma znaczenie ..... to są LOCK BITY
a odpowiednie wartości są opisane za co odpowiadają

------------------------ [ Dodano po: 2 minutach ]

Uważaj dla ATMEGA1284P wartości fusebits są inne od podanych wyżej dla ATMEGI1284

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lip 2015, o 20:59 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 208
Lokalizacja: Białystok
Pomógł: 0

SunRiver napisał(a):
DamCos napisał(a):
OK, a ten lock bit to to samo co lock bajt (chodzi o mkavrcalculator)? Bo mam to ustawione na 0x3F.


czytałeś co napisałem ?? wyżej ??

0x3F to unlock czyli nie jest zabezpieczone nic ....
0x0F to lock w tym momencie zabezpiecza ta wartość tylko ustawiony sektor bootloadera przed nadpisaniem

a jak nazwał kto w programie ??? jakie ma znaczenie ..... to są LOCK BITY
a odpowiednie wartości są opisane za co odpowiadają

------------------------ [ Dodano po: 2 minutach ]

Uważaj dla ATMEGA1284P wartości fusebits są inne od podanych wyżej dla ATMEGI1284



Zrobiłem wszystko i dalej jest to samo :(

Po diodach na przejściówce widzę, że coś jest wysyłane do mikrokontrolera, ale od niego nic nie idzie do PC :(

_________________
Mam 16 lat, nie jestem zawodowcem ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lip 2015, o 21:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

to może ci się nie wgrywa bootloader ??
albo ci się wydaje że ci się wgrywa ??

bo dla 1284 bootloader używa protokoły STK500v2 przy 19200bps ...
przy czym wymaga resetu z DTR lub ręcznie przed wgraniem jak zrobiułęś zle płytkę

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2015, o 11:36 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 208
Lokalizacja: Białystok
Pomógł: 0

SunRiver napisał(a):
to może ci się nie wgrywa bootloader ??
albo ci się wydaje że ci się wgrywa ??

bo dla 1284 bootloader używa protokoły STK500v2 przy 19200bps ...
przy czym wymaga resetu z DTR lub ręcznie przed wgraniem jak zrobiułęś zle płytkę


Wgrywam odpowiedni plik *.hex do FLASHa za pomocą mkavrcalculator. Klikam zapis i potem wybieram za jednym razem rodzaje pamięci: flash, fuse bity i lock bity.
Obrazek

Dodam jeszcze wpis, który jest w pliku boards.txt :

Kod:
##############################################################

atmega1284.name=Sanguino W/ ATmega1284p 16mhz

atmega1284.upload.protocol=stk500
atmega1284.upload.maximum_size=131072
atmega1284.upload.speed=19200
atmega1284.upload.tool=avrdude

atmega1284.bootloader.tool=avrdude
atmega1284.bootloader.low_fuses=0xFF
atmega1284.bootloader.high_fuses=0x9A
atmega1284.bootloader.extended_fuses=0xFF
atmega1284.bootloader.path=atmega
atmega1284.bootloader.file=ATmegaBOOT_168_atmega1284p.hex
atmega1284.bootloader.unlock_bits=0x3F
atmega1284.bootloader.lock_bits=0x0F

atmega1284.build.mcu=atmega1284p
atmega1284.build.f_cpu=16000000L
atmega1284.build.core=sanguino
atmega1284.build.variant=sanguino


Może tu coś jest namieszane?

W schematach sanguino narysowali, że reset powinien iść z RTS przez C 100 nF do pinu RESET.
Obrazek

_________________
Mam 16 lat, nie jestem zawodowcem ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2015, o 15:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

to stary schemat dla starego bootloadera

zobacz jak ja robię reset działa bezbłędnie ...

------------------------ [ Dodano po: kilkunastu sekundach ]

to stary schemat dla starego bootloadera

http://www.sunduino.pl/wordpress/konwer ... el-usb-01/
zobacz jak ja robię reset działa bezbłędnie ...

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2015, o 15:55 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 208
Lokalizacja: Białystok
Pomógł: 0

SunRiver napisał(a):
to stary schemat dla starego bootloadera

zobacz jak ja robię reset działa bezbłędnie ...

------------------------ [ Dodano po: kilkunastu sekundach ]

to stary schemat dla starego bootloadera

http://www.sunduino.pl/wordpress/konwer ... el-usb-01/
zobacz jak ja robię reset działa bezbłędnie ...




na 0:06 widać, że mam podłączone przewody pod drugi UART w uC, ponieważ próbowałem na obu i nic. Zawsze sytuacja jest taka sama, bez znaczenia do którego UARTa w ATmega1284P podłączę kabelki.

Klikam w Arduino "Załaduj" a procesor się wcale nie resetuje. Dioda na PB0 miga, a powinna zgasnąć podczas RESETu (tak w ogóle to dioda miga od kiedy wgrałem bootloader).
Przy każdej kolejne próbie wgrania Arduino wywala, że jest odmowa dostępu do portu. :(

_________________
Mam 16 lat, nie jestem zawodowcem ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2015, o 19:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Niestety film jest prywatny



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2015, o 19:46 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 208
Lokalizacja: Białystok
Pomógł: 0

Zaba napisał(a):
Niestety film jest prywatny

Oj, przepraszam najmocniej. Film miał być niepubliczny. Już poprawione :) Przepraszam.

_________________
Mam 16 lat, nie jestem zawodowcem ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lip 2015, o 17:37 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 208
Lokalizacja: Białystok
Pomógł: 0

Czy ma ktoś jakieś pomysły co jeszcze może być nie tak?

_________________
Mam 16 lat, nie jestem zawodowcem ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lip 2015, o 18:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

nie mam pomysłu jakbym nie robił działa za każdym razem prawidłowo
i z 1284p i 644p i 644
nie mam pomysłów co można w tak prostym układzie zepsuć ...

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lip 2015, o 20:45 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 208
Lokalizacja: Białystok
Pomógł: 0

SunRiver napisał(a):
nie mam pomysłu jakbym nie robił działa za każdym razem prawidłowo
i z 1284p i 644p i 644
nie mam pomysłów co można w tak prostym układzie zepsuć ...

Ok, więc dziękuję za wszystkie porady :) być może to wina tej chińskiej przejściówki. Postaram się zrobić samodzielnie przejściówkę i wtedy będę próbował dalej :)

_________________
Mam 16 lat, nie jestem zawodowcem ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lip 2015, o 15:46 
Offline
Użytkownik

Dołączył(a): 12 kwi 2014
Posty: 208
Lokalizacja: Białystok
Pomógł: 0

No więc testowałem z przeróżnymi przejściówkami, nawet użyłem Arduino UNO jako przejściówki UART i dalej jest to samo. To chyba wina procesora. Szukałem co jeszcze mogłem zrobić nie tak. Może tak jest dlatego, że brakuje kondensatorów przy kwarcu?

_________________
Mam 16 lat, nie jestem zawodowcem ;)



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: 17 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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