ISP w ATtiny2313

Witam,

w dejtaszicie w/w kości jest napisane że przy gdy programujemy ją w układzie, to na XTAL1 trzeba podać sygnał zegarowy. No i ja już nie wiem jak to jest. Mam ukłąd w którym uC jest pędzony z zewnętrznego kwarcu. No i programowanie działa OK. Działa również dobrze jeśli ustawię CKSEL[3:0] na wewnętrzny oscylator. Gdy podczas eksperymentów wyzerowałem w/w bity, czyli ustawiłem "external clock", to ISP przestało działać. Jak się domyślam, właśnie ze względu na brak zegara. Czyli tak naprawdę, podczas programowania, na XTAL1 trzeba podawać zewnętrzny zegar wtedy, gdy wymaga tego ustawienie CKSEL[3:0], a nie w każdym przypadku. Czy ktoś z AVRowców mógłby mnie oświecić jak to jest? W dejtaszicie jakoś nie zauważyłem jednoznacznej informacji na ten temat. No i jak ożywić taką kość bez używania programatora równoległego? Podać jej prostokąt (kilka MHz) z zewnętrznego generatora?

Regards, /J.D.

Reply to
Jan Dubiec
Loading thread data ...

Jan Dubiec napisal(a):

No tak. Musi miec tylko nie za niska czestotliwosc. W przypadku 51 od Atmela to jest 3MHz i pewnie w przypadku AVR jest podobnie.

Nawiasem mowiac, glupota projektantow interfejsu ISP w Atmelach jest zadziwiajaca.

Aha, mysmy zaliczyli kiedys inne 'uszkodzenie' kosci: przypadkiem zostal przeprogramowany pin resetu na I/O. Kosc do kosza poszla.

Reply to
Marcin E. Hamerla

Zasada jest bardzo prosta: do programowania przez ISP procesor musi dzialac z odpowiednia czestotliwoscia, w przypadku ATtiny2313 patrz do dataszita poczawszy od strony 171. Jak sobie ten procesor popedzisz to juz twoja sprawa - jezeli sa ustawione fusebity wewnetrznego taktowania to tyle wystarczy, jezeli fusebitami wybierzesz zewn. zegar - taki musisz dostarczyc, jezeli wybierzesz taktowanie kwarcem - musisz dac kwarc. Nie ma dolnego ograniczenia czestotliwosci taktowania (patrz tabela 79 na stronie 175 PDFa).

BTW: Poza tym popatrz na podpis pod rys 77: "If the device is clocked by the internal Oscillator, it is no need to connect a clock source to the XTAL1 pin". Chyba jasne.

Reply to
Adam Dybkowski

nie prosciej bylo ja przeprogramowac na programatorze rownoleglym??

Reply to
BYRRT!

Bardzo czesto taniej kupic nowy proc za 20 zl, niz programator rownolegly za 200 zl (lub wiecej). U nas w firmie lezy kilka prockow ATmega128 (z wylaczonymi ISP i JTAGiem) czekajac na lepsze czasy.

Reply to
Adam Dybkowski

Adam Dybkowski napisal(a):

W tym konkretnym przypadku to ATMEGA8 w TQFP. Kosztowala 7 czy 8PLN. Programator rownolegly mam, bo uzywam do programowania sepromow Altery, ale trzeba by kupic przejsciowke do programowania SMD. A to kosztuje bardzo duzo. No i oczywiscie trzeba czyscic kosc, itd.

Reply to
Marcin E. Hamerla

Adam Dybkowski napisal(a):

Ze co? Mozesz dowolnie maly zegar podlaczyc do procka i on sie zaprogramuje?

Reply to
Marcin E. Hamerla

BYRRT! napisal(a):

? Sadzisz, ze przeprogramowanie jest latwiejsze niz wyrzucenie do kosza???? Zapraszam zatem na prezentacje ;--). Kosc 8 PLN, a podstawka pewnie przynjamniej 300.

Reply to
Marcin E. Hamerla

A dlaczego by nie? Podaj, w którym miejscu PDFa Atmel pisze inaczej. Oczywiscie z czestotliwoscia taktowania proca musi byc zwiazane taktowanie transmisji ISP. BTW: Widzialem programatory low-cost ISP, w ktorych pecet wytwarzal takze zegar uC. Oczywiscie w dzisiejszych czasach to jest zbedne, bo chyba kazdy AVR ma standardowo wlaczony wewnetrzny generator RC.

Reply to
Adam Dybkowski

bywały takie, które składały się ze złącza DB25 i podstawki. zegar i zasilanie z portu.

w.

Reply to
Wojtek Kaniewski

Dokładnie o to mi chodziło.

Reply to
Adam Dybkowski

On Fri, 28 Jan 2005 23:36:48 +0100, Adam Dybkowski snipped-for-privacy@amwaw.edu.pl> wrote: [.....]

Dzięki. Trochę sobie doczytałem, podpiąłem generator kwarcowy i układ ruszył z kopyta. No ale znalazłem buga w Twoim ISP programmerze. :-) Dosyć subtelnego. Układ resetu w urządzeniu mam klasyczny: oporek 10k do zasilania, kondensator kilka(naście) uF od oporka do masy, węzeł "RC" jest połączony przez oporek 1k do nogi uC i do gniazda ISP. No i wszystko działa miodnie dopóki gdzieś w programie nie wpisze się do DDR-a portu B wartości np. 0xff, czyli takiej która ustawia nogi używane do programowania ISP jako wyjścia. Wtedy, przy następnej próbie programowania, Twój soft nie może odczytać sygnatury kości. Gdy wpisze się do DDRB np. 0x0f to wszysto działa OK. Gdy wywalę z układu resetu kondensator (22u lub 4.7u)[*], to też wszystko jest OK, niezależnie od ustawień DDRB. :-) Niewątpliwie coś jest schrzanione w obsłudze resetu - przetestowałem w identyczny sposób avrdude i przeszedł on pomyślnie wszystkie testy. Mój programator to "STK200 compatible dongle".

[*] Nie miałem pod ręką mniejszych elektrolitów aby się jeszcze trochę pobawić.

BTW. Po "zużyciu" w ten sposób czwartej kości zacząłem mocniej zastanawiać się co jest nie tak. :-)

Regards, /J.D.

Reply to
Jan Dubiec

Kto wie? Układ: tiny2313 taktowany z zewnętrznego generatora kwarcowego, trochę drobnicy, w tym 3 ledy podpięte pod nogi uC. Program klasy "hello world" - sekwencyjne zapalanie/gaszenie ledów co ok. 0.5 sek. Po odłączeniu generatora program się zatrzymuje, tzn. na stałe pali się jedna z diod; po ponownym podłaczeniu zegara program rusza od miejsca w którym się zatrzymał. Przynajmniej na oko tak to wygląda.

Regards, /J.D.

Reply to
Jan Dubiec

On Fri, 28 Jan 2005 14:45:19 +0100, Marcin E. Hamerla snipped-for-privacy@Xpoczta.Xonet.Xpl.removeX> wrote: [.....]

Ano. Nie mam pojęcia, po kiego jest im potrzebny drugi zegar do zwykłego programowania pamięci.

Regards, /J.D.

Reply to
Jan Dubiec

[...]

Dzięki za uwagi, przyjrzę się temu w wolnym czasie, którego niestety ostatnio mam niedobór. :|

Reply to
Adam Dybkowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.