Arduino Polska Forum

Pełna wersja: Programowanie atmegi wlutowanej w układ
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2
Hej

Mam takie pytanko jeśli mam atmegę np. 328p wlutowaną w płytce (takie powiedzmy uno customowe) to jak na tej płytce wepnę się w piny miso, mosi, sck, reset, gnd, 5V to zaprogramuję mikrokontroler czy raczej konieczne będzie wylutowanie go z płytki bądż zastosowanie gniazda na uC? Wcześniej korzystałem z Nano i do przeprogramowania wyjmowałem go z gniazda gold pin z customowej płytki. Teraz chciałem pójść krok dalej i zrobić tylko minimum potrzebne do działania mikrokontrolera.
Po to wymyślono ISP, żebyś nie musiał wyciągać uC z płytki. Co byś zrobił, gdyby układ był SMD?

http://mikrokontrolery.blogspot.com/2011...kiego.html
Jak w uC masz wgrany bootloader to możesz go programować przez UART lub przez ISP (programatorem). Jak nie ma bootloadera to tylko programator. W obu wypadkach nie trzeba wyjmować uC z płytki (Arduino czy własna konstrukcja) jeśli piny danego interfejsu nie są podłączone w sposób wykluczający programowanie. Jak np. SCK masz na płytce zwarty do GND lub VCC na stałe to nie wygenerujesz tu sygnału zegara i nie zaprogramujesz, albo odłączasz ten PIN albo tniesz ścieżkę, albo wyciągasz uC. Tak samo podłączenie na sztywno pinu RST do VCC (bo niby można, zablokuje to RST sprzętowy) lub z wykorzystaniem dużego kondensatora, brak możliwości wykonania resetu zablokuje możliwość programowania - cięcie, odłączenie lub wyjęcie uC. ITP.
Dzięki Wink
Dobra mam już obcykany ten temat, tylko że pojawia się taki problem że po każdorazowym wgraniu wsadu do mikrokontrolera kasuje mi się pamięć eeprom, bootloader mam wgrany od nano. Co może być przyczyną?
A jak jest ustawiony EESAVE?
O ile pamiętam, to możesz to sprawdzić w boards.txt
Takie coś w boards.txt odnośnie nano. Jak to teraz ugryźć?

Kod:
## Arduino Nano w/ ATmega328P
## --------------------------
nano.menu.cpu.atmega328=ATmega328P

nano.menu.cpu.atmega328.upload.maximum_size=30720
nano.menu.cpu.atmega328.upload.maximum_data_size=2048
nano.menu.cpu.atmega328.upload.speed=115200

nano.menu.cpu.atmega328.bootloader.low_fuses=0xFF
nano.menu.cpu.atmega328.bootloader.high_fuses=0xDA
nano.menu.cpu.atmega328.bootloader.extended_fuses=0xFD
nano.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328.hex

nano.menu.cpu.atmega328.build.mcu=atmega328p
high_fuses masz ustawione na 0xDA, fabrycznie jest 0xD9.
W obydwu przypadkach eeprom nie jest chroniony.
Jak chcesz to włączyć, to ustaw high_fuses na 0xD2.
Ok dzięki za konkret odpowiedź. A jak są ustawione low i extended standardowo?
low = 0x62
extended = 0xFF
Stron: 1 2