Atmega - debugowanie przez ISP

Sep 18, 2007 8 Replies

Czy jest jakaś gotowe narzędzie do debugowania programu działającego na mikrokontrolerze Atmega, za pomocą kabelka ISP podłączonego do LPT?



Kabelek łączy jakieś tam piny portu LPT z pinami 5,6,7 portu B procka, więc bez problemu powinno się udać nawiązać komunikacje, skoro programator ISP daje radę.



Chodzi mi jednak o jakieś bardziej cywilizowane narzędzie które na tych trzech pinach zaimplementuje jakąś zorganizowaną transmisję w stronę komputera i aplikację która na komputerze odbierze te dane. Gdyby dane można było wysyłać chociaż bajtami, a program zapewniałby synchronizację i transmisję, to już by była pełnia szczęścia :) Pędzić za bardzo to nie musi.



Samemu to będzie trochę pisania, google nie wykazały nic specjalnego, ale może znacie jakieś gotowe narzędzie?


U¿ytkownik "Tomasz Pyra" snipped-for-privacy@spam.spam.spam> napisa³ w wiadomo¶ci news:fcp09a$8nd$ snipped-for-privacy@atlantis.news.tpi.pl...

Na ISP nie znam. Procek,o ile wiem, nie ma mozliwosci debugowania przez ISP

Na pewno jest JTAG, ktory wspolpracuje z AVRStudio.

Tomasz Pyra pisze:

Ale żeś się uparł, jest cały wybór debugowania atmegi, ale akurat nie po ISP/SPI. Tzn można po złączu SPI (a w zasadzie po sygnale reset na tym złączu) programatorem klasy JtagICE-mk2 (z debugwire), można po JTAGu, ale nie z lpt... I do tego są już narzędzia programowe (darmowe choćby avrstudio) i narzedzia sprzetowe wbudowane w rdzeń procesora. Nie trzeba modyfikować softu, nie trzeba niczego ruszać - tylko podłączyć i debugować...

BartekK pisze:

Hmm... troszkę źle się wyraziłem. Nie chodzi mi o debugowanie samego procka w takim wydaniu jak JTAG, a tylko o to, żeby pewne dane z wewnątrz programu przesyłać do komputera. Chodzi bardziej o tworzenie "loga", a nie debugowanie z breakpointami, podglądem rejestrów itp. W procku obrabiam pewne często zmieniające się dane, a działa to nie tak jakbym się spodziewał. Chcę te dane zrzucać w czasie rzeczywistym na komputer i potem obejrzeć. Próbowałem je zapisywać w EPROMie, ale tej pamięci jest bardzo mało i mieści mi się bardzo mało tych danych.

Nie chcę debugować za pomocą interfejsu ISP, a jedynie za pomocą pinów

5,6,7 portu B przesyłać dane. A dlatego właśnie te, bo mam kabelek ISP, a działa on na tych samych nóżkach procesora co port B i mam wyprowadzenia w układzie, które łączą te piny z portem LPT więc całość nie wymaga żadnego nakładu hardwarowego.

Napisałem sobie prosty program który steruje stanami tych pinów portu B i program na komputerze który te stany odbiera... Wszystko cacy, potrzebuję teraz tylko jakiejś implementacji transmisji z sensowną prędkością.

Rozwiązanie z użyciem kabelka ISP wydaje mi się najprostsze i dlatego liczę że ktoś na to już wpadł, oprogramował i nie ma sensu żebym wyważał otwarte drzwi.

Raven pisze:

Ogólnie pewnie tak, ale w moim przypadku nie - po prostu mam już wszystko zmontowane, mam kabelek LPT i przebudowywanie tego teraz, to by było więcej pracy. A da się robić transmisję szeregową po LPT, chociażby tak jak ispprog programuje flasha za pomocą ISP.

to wykorzystaj SPI oprogramuj jedno i dugie aby komunikowalo sie po SPI i po problemie

Tomasz Pyra napisał(a):

może to?

formatting link

Raven pisze:

Mogą być problemy bo w standardowym kabelku LPT ISP wiele sygnałów idzie z komputera do mikrokontrolera (RESET, SCK, MOSI) a tylko jeden spowrotem (MISO). W uC port SPI musiałby działać w trybie SLAVE ale co wtedy z Chip Selectem?

Proponuję zamiast kabelka LPT ISP dołączyć do uC do złącza programującego (gdzie są obecne sygnały SCK, MOSI itd) układ UART z interfejsem SPI, na przykład MAX3100. A potem już zwykłym RS232 przesyłać z/do komputera debugowanie.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required