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

ATmega32U4 brak możliwości zaprogramowania flash

krzysztof85 26 Sie 2011 14:00 2652 10
REKLAMA
  • #1 9865319
    krzysztof85
    Poziom 13  
    Posiadam układ ATmega32U4 który chciałem zaprogramować za pomocą JTAG'a ICE niestety ale w czasie programowania AVR studio usunęło mi boot loadera DFU przez co nie mogę go zaprogramować za pomocą Flipa. Dodatkowym problemem jest brak komunikacji po SPI mimo poprawnie ustawionych fusbitów. Ciekawostką jest to że JTAG pozwala mi na zmianę fusbitów oraz załadowanie danych do eepromu ale przy ładowaniu flasha wywala mi błąd „WARNING: FLASH byte address 0x0000 is 0x00 (should be 0x0C)… co jest poprawne bo flash jest czysty (same zera). Dodam że układ jest nowy oraz że posiada wyłączone lock bity. Takie same problemy mam na dwóch układach ATmega32U4 niestety oba zostały wyczyszczone w trakcie pierwszej próby zaprogramowania JTAG’iem ICE.

    Dodam że korzystam z JTAG’a ICE, STK500v2 oraz AVR Studio 4.
  • REKLAMA
  • #2 9865342
    tmf
    VIP Zasłużony dla elektroda
    JTAG ci pozwala, gdyż w trakcie programowania JTAG jest źródłem zegara dla procesora - wniosek stąd taki, że masz źle ustawione fusebity. FLASH po skasowaniu zawiera same FFh, a nie 00h, obstawiam, że masz problem ze ścieżkami, długością, itd.
    Co do DFU to możesz ściągnąć DFU z sourceforge, tam jest otwarty projekt. No i co cię podkusiło, żeby programować z JTAGa? :)
  • REKLAMA
  • REKLAMA
  • #4 9865683
    mmacura
    Poziom 18  
    Flash trzeba skasować przed ponownym zaprogramowaniem - może tu jest problem.

    Marek
  • REKLAMA
  • #5 9865913
    krzysztof85
    Poziom 13  
    Flash był kasowany kilkakrotnie czego efektem jest brak boot loadera.
  • #6 9866196
    mmacura
    Poziom 18  
    Cytat:

    WARNING: FLASH byte address 0x0000 is 0x00 (should be 0x0C)…


    To co piszesz sugeruje że jednak Flash nie jest skasowany ponieważ wtedy jego wartość byłaby równa 0xFF.

    Wartość 0x0C to przeważnie pierwszy rozkaz po resecie mikrokontrolera, a jeśli we flash przed programowaniem w komórce o adresie 0x0000 jest 0x00 (zamiast oczekiwanego 0xFF) to wartość 0x0C jest niemożliwa do wpisania - jedynki można wpisać do flash tylko przez kasowanie.

    Spróbuj odczytać zawartość Flasz, zapisać do pliku hex i pokaż jego zawartość.
  • #9 9867993
    krzysztof85
    Poziom 13  
    Niestety ale nie posiadam USBasp jedynie mam JTAG ICE, STK500V2 oraz po zmianie firmware AVR910. A co do fusbitu SPIEN jest on ustawiony i nadal nie mogę nawiązać komunikacji po SPI jedynie JTAG działa. Objawy mogły by wskazywać tak jak pisał tmf na problem z zewnętrznym kwarcem ale próbowałem połączyć się na kwarcu zewnętrznym, wewnętrznym oscylatorze oraz na generatorze TTL od 0 do 10 MHz i bez oczekiwanych efektów.
  • #10 9868057
    piotrva
    VIP Zasłużony dla elektroda
    Zamieść schemat płytki, może na liniach ISP masz jakieś obciążenie i dlatego programator Ci nie działa. Bardzo dziwne, że pomimo kasowania są cały czas wartości 0x00, bo, jak piszą słusznie koledzy, po kasowaniu ma być 0xFF wszędzie...

    USBAsp czy STK500 ten sam pies - chodzi o programator ISP

    Swoją drogą, skąd ściągnąć oryginalne DFU od Atmela do różnych uP? I czy jest dostępne np. do xmega128a1?
  • #11 9868516
    krzysztof85
    Poziom 13  
    Schemat jest już zamieszczony a jeżeli chodzi o ISP a dokładnie to port B jest ono wykorzystywany jako magistrala jednak płytka nie jest zmontowana do końca. W lutowano jedynie elementy niezbędne do skomunikowania się z uP (nie ma nawet zatrzasków na magistrali).

    A wsad DFU mam od Atmela (otrzymany drogą mailową) niestety nie wiem czy jest on tylko i wyłącznie do ATmegi32U4 czy równie dobrze do innych układów.

    ------------------------------

    Problem w 85% rozwiązany.
    SPI nie działało ponieważ na płytce miałem "mikro zwarcie" pomiędzy SCK a MOSI. Po usunięciu zwarcia udało się skomunikować i załadować DFU otrzymane od Atmela. W tej chwili uP jest wykrywany przez system i FLIPa. Jedynym nierozwiązanym problemem jest problem JTAGa czemu nie mogę za pomocą jego zaprogramować flasha ani go poprawnie z czytać.
    Załączniki:
REKLAMA