Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[atxmega32e5][PDI] - Programator potrafi czytać dane ale nie zapisuje

22 Maj 2015 23:54 1584 13
  • Poziom 7  
    Witam,

    Mam problem z modułem bazującym na ATxmega32E5 (AVT1807, pdf) oraz programatorem AVT5388 który jest kompatybilny z AVR-ISP mk.II (Link).

    Używałem już wcześniej tego programatora do ATtiny oraz ATmega (ISP) i wszystko było OK. Teraz podłączyłem go do Xmegi (PDI) i okazuje się że nię moge wgrywać wsadu ani nawet ustawiać fusebitów mimo że programator nawiązuje poprawne połączenie z mikrokontrolerem oraz potrafi przeczytać z niego różne dane (np. sygnatura się zgadza).

    Spójrzcie na to (używam atprogram z Atmel Studio 6.0):
    Code:

    > atprogram -t avrispmk2 -i pdi -d atxmega32e5 info

    Tool avrispmk2 has firmware version: 1.17
    Target voltage: 3.30 V

    Device information:

    Name:       atxmega32e5
    JtagId:     N/A
    CPU arch.:  AVR8_XMEGA
    Signature:  0x1e954c
    Lockbits:   0xff
    Fuses:      0xffffffffffffff

    Memory Information:
    Address Space     Start Address            Size
    eeprom                      0x0           0x400
    fuses                       0x0             0x7
    lockbits                    0x0             0x1
    prod_signatures             0x0            0x35
    prog                        0x0          0x9000
    signatures                  0x0             0x3
    user_signatures             0x0            0x80


    Ponadto mogę czytać całą pamięć - ale uwaga - (prawie) zawsze dostaję 0xFF - nawet dla fusebitów chociaż wydaję mi się że domyślne wartości powinne być inne (czy się mylę?):

    Code:

    > atprogram -t avrispmk2 -i pdi -d atxmega32e5 read -fs
    :07000000FFFFFFFFFFFFFF00
    :00000001FF


    Jedyne dane które mają inne wartości to sygnatura oraz 'production signatures'.

    Czyszczenie układu też raczej działa:
    Code:

    >atprogram -t avrispmk2 -i pdi -d atxmega32e5 erase -ee
    Erasing eeprom...
    Erased eeprom completed successfully.


    Natomiast przy próbie zapisywania czegokolwiek dostaje poniższy błąd:
    Code:

    > atprogram -t avrispmk2 -i pdi -d atxmega32e5 write -fs --values ff71fe00fefa
    An error occured while executing command with ID 0x04. An error occured while executing command with ID 0x50.
     The USB device has been disconnected (Error code: 1)

    Ten przykład dotyczy fusebitów, ale dokładni taki sam błąd dostaje przy zapisie flasha i EEPROM.

    Dokładnie takie samo zachowanie jest gdy korzystam z atprogram oraz z GUI Atmel Studio.

    Zgodnie z opisem do AVT5388 przy programowaniu za pomocą PDI odłączam zasilanie atxmegi z programatora i używam dodatkowego źródła napięcia (3.3V)

    Mimo że na AVT1807 są rezystory (100k) podciągające linie PDI do masy i Vcc, to sprawdziłem również jak programator się zachowuje po ich wylutowaniu - niestety bez poprawy. Nie mam też na tych liniach żadnych kondensatorów. Kabel od programatora do mikrokontrolera ma jakieś 15cm.

    Czy ktoś miał podobny problem? Co mógłbym jeszcze sprawdzić?

    Dzięki za ewentualną pomoc,
    Pozdrawiam
  • Poziom 32  
    CrimsonDiode napisał:
    jest kompatybilny z AVR-ISP mk.II

    To w AvrStudio jest dostępne programowanie przez PDI jak wybierzesz ATxmegę.
    Może ta "kompatibilność" kończy się na protokole SPI dla tego programatora ?
  • Pomocny post
    Moderator Mikrokontrolery Projektowanie
    O ile dobrze kojarzę ten klon to ma on problem z wydajnością prądową translatora poziomów. Na strone kol. manekinen znajdziesz opis programatora i info o problemach i o tym jak je rozwiązać.
  • Poziom 36  
    Z powodu właśnie takich problemów jestem przeciwnikiem kupowania urządzeń "zgodnych z ..." przeważnie ich zgodność jest połowiczna a niezawodność działania jeszcze mniejsza . przy cenach oryginalnych programatorów i możliwości aktualizacji oprogramowania o nowe układy to już zupełny bezsens . Jeśli programator zakupiłeś niedawno masz prawo zażądać naprawy ,wymiany , lub zwrotu kasy .Tak bym zrobił , bo przeważnie lepiej z tym programatorem nie będzie i ciągle będą z nim jakieś problemy ...
  • Poziom 32  
    Dla potwierdzenia tych wypowiedzi powiem że podłączyłem oryginalny AVRISP mkII Atmela przez PDI do ATxmegi128A1 (w Xplain) i działa bez problemu czyta, programuje i weryfikuje bez problemu.
    Także sugestie kolegów o wątpliwej kompatybilności też potwierdzam. A jak podłączysz jeszcze małe atmelki typu ATtiny10 to jest jeszcze interfejs TPI, który też nie wiadomo czy będzie działał.
  • Użytkownik usunął konto  
  • Poziom 7  
    Witam ponownie.

    Dzięki wszystkim za zainteresowanie!

    GienekS napisał:
    To w AvrStudio jest dostępne programowanie przez PDI jak wybierzesz ATxmegę.
    Może ta "kompatibilność" kończy się na protokole SPI dla tego programatora ?


    Atmel Studio 6.0 (nie AvrStudio) po wybraniu programatora oraz mikrokontrolera 'xmega32e5' pozwala wybrać protokół - w moim przypadku to jest PDI (tylko PDI, nie ma SPI). Sygnatura czytana jest poprawnie więc zakładam że komunikacja za pomocą PDI działa (przynajmniej w jedną strone) popranie.

    tmf napisał:
    O ile dobrze kojarzę ten klon to ma on problem z wydajnością prądową translatora poziomów. Na strone kol. manekinen znajdziesz opis programatora i info o problemach i o tym jak je rozwiązać.


    Dzięki za cynk. Faktycznie znalazłem ten wątek: https://www.elektroda.pl/rtvforum/topic2054775-180.html . Wynika z niego że max3002 ma problemy w wysterowaniem linii które są obciążone rezystorami (jak np reset). Sam to nawet zauważyłem przy programowaniu attiny oraz atmega za pomocą SPI - za każdym razem musiałem wylutować rezystor podciągający (10k). Dlatego przy problemach z PDI praktycznie zacząłem od wylutowania rezystorów z PDI i RESET (100k), ale jak już wspomniałem - to nie pomogło.

    Co ciekawe, w tym wątku jest osoba która ma prawdopodobnie dokładnie taki sam problem co ja. Niestety nie ma żadnej informacji o tym jak go rozwiązać.

    kamyczek napisał:
    Z powodu właśnie takich problemów jestem przeciwnikiem kupowania urządzeń "zgodnych z ..." przeważnie ich zgodność jest połowiczna a niezawodność działania jeszcze mniejsza . przy cenach oryginalnych programatorów i możliwości aktualizacji oprogramowania o nowe układy to już zupełny bezsens . Jeśli programator zakupiłeś niedawno masz prawo zażądać naprawy ,wymiany , lub zwrotu kasy .Tak bym zrobił , bo przeważnie lepiej z tym programatorem nie będzie i ciągle będą z nim jakieś problemy ...


    Nie mogę się bardziej z Tobą zgodzić!!!

    GienekS napisał:
    Dla potwierdzenia tych wypowiedzi powiem że podłączyłem oryginalny AVRISP mkII Atmela przez PDI do ATxmegi128A1 (w Xplain) i działa bez problemu czyta, programuje i weryfikuje bez problemu.
    Także sugestie kolegów o wątpliwej kompatybilności też potwierdzam. A jak podłączysz jeszcze małe atmelki typu ATtiny10 to jest jeszcze interfejs TPI, który też nie wiadomo czy będzie działał.


    Dzięki za informacje.

    majeranek53 napisał:
    Sprawdź w folderze zainstalowania Atmel Studio, podfolder Tools/AVRISPmkII; czy w ogóle wersja 6.0 obsługuje Atxmega32E5?


    Sprawdziłem. W folderze o którym mówisz znalazłem plik ATxmega32E5_ispmkii.xml. Zakładam że oznacza to że ten mikrokontroler jest w pełni wspierany przez Atmel Studio.

    Myślę, że zanim kupie nowy programator sprawdzę jego działanie na jeszcze jednym egzemplarzu xmegi. Trochę szkoda mi tego programatora, zwłaszcza że to już mój drugi :)

    A może macie jeszcze jakieś inne pomysły?

    Pozdrawiam
  • Użytkownik usunął konto  
  • Moderator Mikrokontrolery Projektowanie
    @CrimsonDiode Zobacz stronę:
    http://mdiy.pl/programator-usbtiny-mkii-slim/

    Wydaje się, że wymiana MAX3002 na GTL2003 rozwiązuje problem. A jeśli planujesz zakup nowego programatora, to rozważ Atmel ICE - ma też debugger. AVRDude + USBAsp nie polecam, raz, że tracisz wygodę bezpośredniej współpracy z Atmel Studio, to jeszcze USBAsp jest raczej kiepski i problematyczny (wystarczy przejrzeć historię postów na elektrodzie), no i raczej z PDI będzie miał problemy. Widziałem jakiś projekt pokazujący, że się da, ale to tylko na zasadzie, żeby coś udowodnić, sensu to nie miało żadnego.
    BTW, AS też warto uaktualnić do najnowszej wersji.
  • Poziom 7  
    majeranek53 napisał:
    W manualu do atxmegi znalazłem coś takiego:
    27.3.2 Disabling
    If the clock frequency on PDI_CLK is lower than approximately 10kHz, this is regarded as inactivity on the clock line. This
    will automatically disable the PDI. If not disabled by a fuse, the reset function of the Reset (PDI_CLK) pin is enabled
    again. This also means that the minimum programming frequency is approximately 10kHz.


    Hmm interesujące... Ale wydaje mi się że częstotliwość zegara jest w porządku skoro programator potrafi przeczytać sygnaturę, fusebity i całą resztę. Tylko zapis nie działa.

    Tak jak wspomniałem, przetestowałem programator pod inną xmegą - ATxmega128A3U. Niestety wszystko tak samo jak w przypadku ATxmega32E5, tj. mogę sczytać dane ale zapisać już nie. Tak więc muszę uznać, że to najprawdopodobniej programator działa wadliwie.

    Jednak zanim kupie ICE-a, dam szansę temu MkII SLIM (Link). Programator ma sporo dobrych opinii, a także parę osób napisało że działa poprawnie z xmegami poprzez PDI.
  • Poziom 25  
    Ja mam AVR isp mkII też zgodny, bo zrobiony z projektu LUFA.
    Programator mogę polecić tak swoją drogą. Otwierałem go i jest na układzie GTL.
    Przy pierwszym kontakcie z atXmega też miałem coś podobnego.
    Okazuje się, że przy programowaniu przez spi program nie sprawdza sygnatury procesora, a przy PDI już tak.
    Gdy na początku programu (w bascomie tak miałem) procesor był zadeklarowany błędny to atmega przez spi dała się zaprogramować i jeżeli zegar pasował to proste programy czasami działały poprawnie. A atxmega przez pdi już nie da się zaprogramować, a sygnaturę itd odczytać się dało.
    Więc w AS musisz w projekcie mieć wybrany dokładnie taki procesor jak chcesz zaprogramować, choć tak zwykle i tak jest.
    Niewielkie są szanse, że mój post coś pomoże, ale uznałem, że warto napisać.
    Przyszło mi to do głowy, bo jak miałem u siebie zły procesor wpisany w programie to też coś było z 0x04.
    Pozdrawiam
  • Moderator Mikrokontrolery Projektowanie
  • Poziom 36  
    Nie ma co debatować nad buforami , konstrukcją spi i pdi i jtagiem trzeba odżałować te 200 pln i mieć programator z aktualizacją . Co to za zabawa jak nie można zaprogramować prostego układu bo programator nie działa . Z takimi programatorami szybko okazuje się że producenta już nie ma , urządzenie nie obsługuje nowych i kolejne 50 czy 100 pln trzeba zapłacić za kolejnego "klona zgodnego z ..." Poza tym wystarczy poczytać kilka stron z tematami i policzyć ilu osobom nie działa jakiś klon ...
  • Poziom 25  
    tmf napisał:
    @noel200 Drobny szczegół - XMEGA nie ma trybu programowania przez SPI. Tak miały (jako ISP) ATMega. W XMEGA masz tylko PDI/JTAG.

    Masz rację. Miałem na myśli ISP w atmegach.