Problem z kursem AVR i programem AVT Studio

Tutaj mozesz poruszać tematy ogólne powiązane z elektroniką, np. dyskusje na temat podzespołów, układów, zasad ich działania. Czyli można pisać o wszystkim czego nie da się przyporządkować do innych działów.
younger0001
-
Posty: 60
Rejestracja: 05 cze 2010, 10:59
Lokalizacja: Chorzele
Kontakt:

Problem z kursem AVR i programem AVT Studio

Post autor: younger0001 » 30 sie 2010, 11:51

Witam nie wiem czy to dobre miejsce na ten temat...
Kupiłem Zestaw AVT KURS AVR Do programowania w Bascomie. Zainstalowałem AVR Studio. Z początku wszystko programował bez zarzutu ale pewnego dnia wyskakuje komunikat:
Obrazek
Oraz w linii pod oknem:

Kod: Zaznacz cały

Entering programing mode: FALIED!
W Opisie napisali, że może być problem z częstotliwością. Zauważyłem że się przestawiło z 1.845 MHz na 460.8 KHz więc zmieniłem. ale nic...
Ostatnio napisałem Program z użyciem timerów (dwóch) na ATTiny2313 i zapomniałem wstawić polecenia:

Kod: Zaznacz cały

Enable Interrupts
Program zaprogramował się bez problemu ale układ nie pracował (wyłączony wyświetlacz). Następnie zaprogramowałem inny układ i działał. Potem zaczął komunikat się pojawiać i nic nie można zaprogramować.
Program przeinstalowałem, sprawdziłem konfiguracje programatora i nic. Proszę o pilną pomoc

Awatar użytkownika
haterkmp
Użytkownik
Posty: 652
Rejestracja: 08 sie 2008, 11:47
Lokalizacja: Wałbrzych

Post autor: haterkmp » 30 sie 2010, 14:42

a czy przypadkiem nie zablokowałeś sobie właśnie programowania przez ISP? kliknąłeś złego fusa i zablokowałeś procka... ale pewności nie mam. poszukaj jak były ustawione fusy ostatnim razem

younger0001
-
Posty: 60
Rejestracja: 05 cze 2010, 10:59
Lokalizacja: Chorzele
Kontakt:

Post autor: younger0001 » 31 sie 2010, 11:53

AVR studio ma cienką konfigurację fusków (ja się nie orientuje). w Elportalu znalazłem ciekawy artykuł:
Fuse Bits, czyli dramat AVR'ów w 3 aktach
zainteresował mnie program tam opisany. spróbuje pomajstrować

Awatar użytkownika
c4v2
Użytkownik
Posty: 426
Rejestracja: 22 lis 2005, 15:14
Lokalizacja: z przed monitora

Post autor: c4v2 » 31 sie 2010, 12:47

Dzień dobry-wieczór
Przypuszczam że programator nie widzi mikroprocesora ponieważ częstotliwość ISP programatora jest za wysoka. Z komunikatu wynika że ISP programatora powinna zawierać się w przedziale 1/4 częstotliwości programowanego mikroprocesora. Ustawienia częstotliwości magistrali ISP programatora pewnie znajdują się w jakimś okienku właściwości programatora. Trzeba poszukać.
Miałem podobną sytuację gdy zmieniłem kwarc w systemie mikroprocesorowym.
Tyle że w AVRstudio używam programatora "ere.co.th" i w ustawieniach dało się zmienić jego częstotliwość ISP tak że znów widział procesor.

Pozdrawiam.

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 31 sie 2010, 13:22

Spróbuj zainstalować PonyProg'a 2000. Świetny program do programowania AVR'ów i nie tylko. I bardzo dobra konfiguracja fuse'ów. Panujesz w zasadzie nad wszystkim. Jedyną wadą dla początkujących jest to, że aby dobrze ustawić fuse'y musisz konfigurować je na podstawie noty katalogowej. Jednak kiedy to opanujesz będzie Ci się na prawdę bardzo dobrze pracowało.

W tej chwili programuję ATMEGA32, ani razu jeszcze nie wyskoczył mi błąd zapisu. W zasadzie, ani razu jeszcze nie ratowałem mikroprocesora programując go z PonyProg'a.

Pozdrawiam ;-)

younger0001
-
Posty: 60
Rejestracja: 05 cze 2010, 10:59
Lokalizacja: Chorzele
Kontakt:

Post autor: younger0001 » 31 sie 2010, 16:18

Ustawienia częstotliwości magistrali ISP programatora pewnie znajdują się w jakimś okienku właściwości programatora. Trzeba poszukać.
Po kliknięciu Connect w zakładce main jest ustawienie częstotliwości o którym już wspominałem:
W Opisie napisali, że może być problem z częstotliwością. Zauważyłem że się przestawiło z 1.845 MHz na 460.8 KHz więc zmieniłem. ale nic...
zasugeruj jaka częstotliwość będzie najbardziej optymalna (jaki zakres)
poszukam jeszcze PonyProga.

Awatar użytkownika
c4v2
Użytkownik
Posty: 426
Rejestracja: 22 lis 2005, 15:14
Lokalizacja: z przed monitora

Post autor: c4v2 » 31 sie 2010, 16:33

Jaka jest częstotliwość taktowania mikroprocesora?

younger0001
-
Posty: 60
Rejestracja: 05 cze 2010, 10:59
Lokalizacja: Chorzele
Kontakt:

Post autor: younger0001 » 31 sie 2010, 16:49

kwarc jest 4MHz
a z tym ponyprogiem też mam problemy jakbyście pomogli...

Awatar użytkownika
c4v2
Użytkownik
Posty: 426
Rejestracja: 22 lis 2005, 15:14
Lokalizacja: z przed monitora

Post autor: c4v2 » 31 sie 2010, 17:07

W moim programatorze częstotliwość SPI jest ustawiona 57.6 kHz i programowałem procesory o częstotliwościach taktowania 8 i 18 MHz (AtMega8, AtMega168). Częstotliwość SPI programatora powinna być sporo mniejsza niż 1/4 częstotliwości taktowania mikrokontrolera (nie pamiętam czy fusebit CKDIV8 miał wpływ na proces programowania mikroprocesora, bo na działanie programu miał. Program wykonywał się osiem razy wolniej)
Załączniki
ProgISP.jpg

younger0001
-
Posty: 60
Rejestracja: 05 cze 2010, 10:59
Lokalizacja: Chorzele
Kontakt:

Post autor: younger0001 » 31 sie 2010, 18:37

zmieniłem na 57.6 kHz i cały czas nic. Do fusbitów nie mogę się dostać bo wyświetla się ta zakładka. z resztą nic nie mogę zrobić bo nie ma dostępu do procka przez ISP.
c4v2 daj najlepiej gg to pogadamy na spokojnie

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 31 sie 2010, 19:03

Witam ponownie,
nie jest możliwe, żebyś miał problemy z PonyProg'iem, chyba że ściągnąłeś złą wersję.
Proszę, oto link do wersji, z której korzystam: LINK. Po zainstalowaniu robisz tylko trzy rzeczy. W prawym górnym roku jest wybór pamięci, ustawiasz te okienko na AVR micro. Później wchodzisz do wyboru interfejsu Setup->Interface Setup... Klikasz i masz okienko, podejrzewam, że korzystasz z programatora STK200 więc ustawiasz na Parallel, niżej ustawiasz na Avr ISP I/O. Wybierasz port, na którym znajduje się programator. Przyciskasz OK.
Następnie wchodzisz do Setup->Calibration. Naciskasz Yes i czekasz, aż PonyProg przeanalizuje prędkość procesora. Klikasz OK.

Powinno wszystko być ok ;)

Pozdrawiam ;)

Awatar użytkownika
c4v2
Użytkownik
Posty: 426
Rejestracja: 22 lis 2005, 15:14
Lokalizacja: z przed monitora

Post autor: c4v2 » 31 sie 2010, 19:40

Czy da się odczytać sygnaturę procesora?
Warto również sprawdzić czy programator komunikuje się z innym egzemplarzem tego typu mikroprocesora.
Jeżeli będzie widział "inny egzemplarz" to najprawdopodobniej mikroprocesor z którym nie można nawiązać połączenia ma ustawiony fusebit na zewnętrzne źródło sygnału zegarowego.
Z tego co mi wiadomo to reanimować taki mikroprocesor da się dwoma metodami
1). programowanie równoległe (ale kto z hobbystów ma programator równoległy do AVR?)
2). programowanie szeregowe z dołączeniem zewnętrznego generatora TTL do wejścia XTAL1pozwoli na zmianę ustawień fusebit'ów. Niektóre programatory maja taką funkcję.

Tylko nie wiem jaki posiada Pan programator...

nr.GG mogę podać na (PW)
Załączniki
ISPAVRU1_Rescue_pin.gif
(14.34 KiB) Pobrany 377 razy

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 31 sie 2010, 20:22

younger0001, a masz jakiś inny procek ? jeśli tak to sprawe można szybko załatwić.
Aha ustaw tą czestotliwość na najniższą możliwą i spróbuj ponownie sprawdź też zasilanie na procku.
Miałem kiedyś taki przypadek ustawiłem złą częstotliwość programatora i wtedy wszytkie fusy były odczytane i zapisane haotycznie.
PS. do odblokowania procka (jelsi tylko pin reset nie jest ustawiony jako I/0) wystarczy jakiś inny procek.

younger0001
-
Posty: 60
Rejestracja: 05 cze 2010, 10:59
Lokalizacja: Chorzele
Kontakt:

Post autor: younger0001 » 01 wrz 2010, 19:53

Witam po przerwie (problem z netem)
Postanowiłem dokładnie przeanalizować artykuł o Fuse Bitach i dopatrzyłem się informacji
RSTDISBL (wartość początkowa 1) - Określa funkcję pinu Reset.

RSTDISBL Znaczenie
1 Pin PC6 używany jako wejście sygnału RESET
0 Pin PC6 używany jako zwykły port I/O

UWAGA! Należy starannie obchodzić się ustawianiem tego bitu konfiguracyjnego. Zaprogramowanie go wartością 0 skutkuje zablokowaniem sobie dostępu do mikrokontrolera poprzez programator szeregowy (w tym ISP). Aby taki mikrokontroler odblokować należy zastosować programator równoległy.
Zastanowiłem się, ale RESET działa mi OK, bo jest specjalny jumper i po zwarciu go z plusem układ się resetuje. ale pomyślałem by zaprogramować układ z LPT, gdyż program opisywany w artykule korzysta z LPT. Poza tym w książce programowało sie układ z BASCOM-AVR a nie z AVR studio. nie było też programatora więc po prosty łączyło się piny LPT z ISP zgodnie ze schematem:
Obrazek
Pin 5V (zasilanie) był podłączony do Portu gier (GAME PORT) ja nie mam takiego więc pomyślałem o USB (miałem kabel tylko z pinami zasilania ze starego podświetlacza). Dodam że masę kabla USB zwarłem z masą LPT czego autor nie zrobił z portem gier (tylko 1 kabelek). Jednak nie włączałem kompa i w ogóle nie sprawdzałem. Poza tym z programatora z artykułu też można skorzystać (i trzeba) ponieważ można ustawić porty LPT.
Obrazek
w miejscu STK200... trzeba wybrać Custom pins i poustawiać zgodnie z rysunkiem. tylko nie wiem co znaczy to SCK i czy to to samo co CLK (sygnał zegara)
Z tym pony progiem jeszcze zobacze (bo ma funkcje równoległego i szeregowego programowania)
Tylko nie wiem jaki posiada Pan programator...
AVT PROG2 tak naprawde to jest konwerter USB - RS232 i programator COM w jednym.

[ Dodano: 2010-09-01, 21:04 ]
A i jeszcze jedno.
nie jest możliwe, żebyś miał problemy z PonyProg'iem, chyba że ściągnąłeś złą wersję.
Proszę, oto link do wersji, z której korzystam: LINK.
Akurat wersję ściągnęłem dobrą (sprawdzałem). Tylko że zapewne korzystasz z programatora LPT gdyż napisałeś że wybierasz Paralell (równoległe) a ja korzystam (tak jak napisałem) z wirtualnego portu COM (mi się ustawiło COM4) czyli interfejsu szeregowego. jednak mogę sprawdzić na zmontowanym na drucikach łączu LPT.

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 02 wrz 2010, 0:00

Jak reset działa to jesteś w domu :)
wyglada na to że tylko fusy od zródła syganłu zegarowego się zmieniły.
c4v2, Już Ci napisał co trzeba zrobić.
Zorganizuj jakis inny procesor napisz coś takiego:

Kod: Zaznacz cały

$regfile = "twój procek "                                      'uc type
$crystal = 8000000                                   'crystal frequency

Config Portd.1 = Output 
portd.1=1   
lub jaki kolwiek inny pin 
do 
toggle portd.1
                                  
loop 
end                             
Teraz z tej nogi działającego procka podepnij do XTAL1.
Nie zapomnij o masie i zasilaniu
Podepnij programator do tego zablokowanego procesora odpal wszystko i spróbuj odczytać sygnature.
A i ustaw częstotliwosc programatora na najniższą możliwą tam jest chyba kilka Khz.
Musi działać.

ODPOWIEDZ