logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega16 programator + avrdude(język programowania C)

blackwolf102 05 Lut 2010 14:55 3455 13
REKLAMA
  • #1 7647180
    blackwolf102
    Poziom 10  
    Witam,
    To jest mój zarówno pierwszy post, jak i pierwszy projekt związany z elektroniką(jakieś podstawy mam jeszcze z liceum i teorie ze studiów), chciałbym nauczyć się programować avr'y i zrobiłem sobie programator z tej strony: Tutaj Pracuję na linuksie i to jedyny program jaki znalazłem, ale nie wiem jak go ustawić żeby działało
    http://mirley.firlej.org/jak_zaprogramowac_pierwszy_avr
    Każda próba wysłania programu kończy się avrdude: initialization failed, rc=-1 proszę o porady, jak skonfigurować avr-dude żeby dało się wgrać coś na atmege16.

    Z góry dziękuję i pozdrawiam
  • REKLAMA
  • #3 7649271
    morson
    Poziom 14  
    Sprawdź sobie połączenia z układem i czy masz podany dobry typ programatora
    w razie czego strona z opisem i przykładami pod Linux'a link
  • #4 7650828
    blackwolf102
    Poziom 10  
    Dziękuję za odpowiedzi, straciłem cierpliwość do tego programatora, przeszukałem pliki konfiguracyjne avr-dude i okazało się że odpowiednia opcja dla programatora to BASCOM(odpowiednie wyprowadzenie portów), jednak i na tej opcji dostawałem komunikat, że mikrokontroler nie odpowiada. Postanowiłem złożyć programator na rs-232, może ten programator zadziała i zasilanie będzie prosto z portu.

    Odezwę się jak już złożę ten drugi programator.
    Programator jest z tej strony: Link
  • REKLAMA
  • #5 7650947
    mirekk36
    Poziom 42  
    blackwolf102 napisał:
    Dziękuję za odpowiedzi, straciłem cierpliwość do tego programatora, przeszukałem pliki konfiguracyjne avr-dude i okazało się że odpowiednia opcja dla programatora to BASCOM(odpowiednie wyprowadzenie portów), jednak i na tej opcji dostawałem komunikat, że mikrokontroler nie odpowiada. Postanowiłem złożyć programator na rs-232, może ten programator zadziała i zasilanie będzie prosto z portu.


    Co ty opowiadasz za niestworzone historie ? ;)

    STK200 jak najbardziej i w 1000% obsługiwany jest przez AVRDUDE a używałem nie tylko ja tego w takiej konfiguracji ale i setki jak nie tysiące ludzi. Skoro ci nie działa to źle zrobiłeś programator albo źle podłączasz procka. W związku z tym można tylko podejrzewać, że ten drugi także może ci wyjść "bokiem"

    Jeśli zaczynasz i chciałbyś jak najszybciej poświęcić czas na naukę programowania procków, pisanie programów, tworzenie własnych układów - bo tu też będziesz miał zajęcia praktyczno-elektroniczne ;) .... to nie trać czasu na "budowanie" i uruchamianie czegoś co można kupić jako gotowca - STK200 - i to sprawdzonego i pewnego za 15zł !!!

    Ja właśnie taką decyzję kiedyś podjąłem gdy zaczynałem - dlatego zaoszczędziłem wielu godzin takiej udręki ;) wolałem ją przeżywać już w pierwszych tworzonych własnych układach na prockach. Dlatego polecam takie rozwiązanie. Nie mówiąc już że jakąś kasę też tracisz i nie mówiąc już że nigdy nie wiem jak to się dzieje, że początkujacy zasysają schematy takich programatorów z jakichś super-mega-dziwnych stron zamiast ze źródeł np:

    http://www.lancos.com/prog.html

    i jak coś to właśnie na tej stronie znajdziesz bardziej poprawny schemat dla tego programatora na RS232. Bo na tym co znalazłeś znowu zjesz zęby i go nie odpalisz - i co znowu będziesz szukał kolejnego do zrobienia??? A dlaczego mówię że go nie odpalisz prawdopodobnie - bo ten schemat z twojego linku powoduje, że programator chce brać prąd do zasilania wprost z portu COM - a to - uwierz mi - rzadko wychodzi na zdrowie ;)
  • #6 7652854
    blackwolf102
    Poziom 10  
    Zrobiłem tak jak napisałeś i kupiłem programator AVTPROG1 na usb lecz teraz mam następny problem. W instrukcji jest napisane że programator jest w pełni zgodny z STK500. Więc odpalam avrdude: avrdude -p m16 -c STK500 -P /dev/ttyUSB0 i mam komunikat że programator nie odpowiada: stk500_recv: not responding. Próbowałem z zewnętrznym zasilaniem procka i bez. Próbowałem też na opcji STK500pp i wtedy jest 2 razy timeout, chwile potem avr device ready. no i niby czyta coś z procka, a chwile potem że sygnatura powinna być 0x1E910A a jest 0x010101. Nie wiem już sam co źle robię :/
  • #7 7652927
    _Robak_
    Poziom 33  
    Zmniejsz prędkość programowania.
  • #8 7655007
    blackwolf102
    Poziom 10  
    Spróbowałem już chyba wszystkiego, na kompie z windowsem i avr studio 4 próbowałem i wykrywa programator, ale przy próbie programowania wywala mi błąd ISP Mode Error, może ma ktoś taki programator(AVTPROG1) i może mi powiedzieć jak to jest że w jednym punkcie instrukcji jest napisane: zasilanie prosto z USB, a w następnym zasilany z płytki, na której znajduje się programowany mikrokontroler i jeszcze pytanie dlaczego w instrukcji jest napisane że napięcie zostało dodatkowo wyprowadzone na złącze ISP a jak sprawdzam miernikiem na podane w instrukcji piny to żadnego prądu tam nie ma :/
    Programator: http://sklep.avt.pl/p/pl/485091/avtprog1+programator+avr+ispusb+stk500v2.html
  • REKLAMA
  • #10 7659442
    blackwolf102
    Poziom 10  
    Pomyślałem sobie, przynajmniej będę miał pewność, że zadziała :P, ale niestety się przeliczyłem :/, chyba że to moja atmega jakaś nie bardzo jest, da się jakoś sprawdzić czy ona działa po podłączeniu zasilania bez programowania ?
  • #11 7659973
    m.bartczak
    Poziom 16  
    Inne rzeczy: możliwe że musisz mieć podłączony kwarc do atmegi. Zwłaszcza jeśli nie jest to 'nówka' - nie wiadomo jakie tam fuse bity są.

    Najprawdopodobniej jednak masz badziewnego programatora... :(
  • #12 7669346
    blackwolf102
    Poziom 10  
    Po wymianie zasilacza i paru innych drobnych modyfikacjach wszystko działa, udało mi się nawet napisać kilka programików na attiny(taka zabawa diodami), ale po przesiadce na atmege nie rozumiem dlaczego wpisując kod
    #include <avr/io.h>
    
    int main(void)
    {
    	for(;;)
    	{
    	DDRB = 0xFF;
    PORTB=0x00;                                                                                                                                                                                             ;
    	}
    }

    myślałem, że dioda podłączona do PB1 i GND się zaświeci, jednak nic się nie dzieje. Może mi ktoś wytłumaczyć jaki błąd popełniam ?

    PS: Dziękuję za dotychczasową pomoc :)
  • #13 7669406
    revolt
    Poziom 34  
    #include <avr/io.h> 
    
    int main(void) 
    { 
    DDRB = 0xFF; // DEFINIUJESZ PORTY RAZ
       for(;;) 
       { 
      
    PORTB=0xFF;       //   włączasz cały port na stan wysoki                                                                                                                                                                                                               ; 
       } 
    }
    


    PORTB=0x00; ustawia stan niski na portB. Wrzucenie w tą pętlę też DDRB jest niepotrzebne.

    Dodano po 3 [minuty]:

    A jeszcze nie zapomnij o rezystorze w szeregu z diodą.
  • REKLAMA
  • #14 7669549
    blackwolf102
    Poziom 10  
    Niestety tak też nie działa :/ myślałem że atmege tak samo się programuje jak attiny tylko peryferiami się różni :/, chyba, że ta atmega jakaś uszkodzona.
REKLAMA