AVR, resetowanie fuse'ow

Witam,

Mam problem z moim układem na ATMEGA8. Po n'tym programowaniu przez ISP układ się zablokował i nijak go nie można ruszyć. Przeglądając archiwum grupy natknąłem się na posty z podobnym problemem z rozwiązaniem w postaci programatora równoległego. Ponieważ takiego nie posiadam, zbudowałem prosty układ na at90s2313 który ma mi tylko ustawić fusy do wartości domyślnych. Mikrokontroler ten nie ma odpowiedniej ilości wyjść, więc dla lini DATA zastosowałem układ ekspandera PCF8574A. Napisałem program w c który ma to wykonać, niestety (jeszcze) nie działa. Może czegoś w nocie katalogowej nie wyczytałem, może źle podłączyłem.

Na początku połączenia (wg noty):

- PAGEL do PD7

- XTAL do XTAL1

- BS2 do PC2

- XA1 do PD6

- XA0 do PD5

- BS1 do PD4

- WR do PD3

- OE do PD2

- RDY do PD1

- DATA7 do PC1

- DATA6 do PC0

- DATA5 do PB5

- DATA4 do PB4

- DATA3 do PB3

- DATA2 do PB2

- DATA1 do PB1

- DATA0 do PB0

A teraz co robię w programie:

  1. Na początku ustawiam wartości początkowe: OE=1 (stan wysoki), WR=1, BS1=0, BS2=0, XA0=0, XA1=0, XTAL=0, PAGEL=0, RESET=0, DATA=0x00
  2. Zakładam że reset w ATMEGA8 jest zablokowany, więc ustawiam: PAGEL=0, XA1=0, XA0=0, BS1=0, XTAL=0, WR=1. Podaję 12V na RESET i czekam przez ~1ms.
  3. Kasuję chip: XA1=1, XA0=0, BS1=0, DATA=0x80, XTAL=1, czekam ~1ms, XTAL=0, WR=0, czekam aż na RDY pojawi się stan wysoki, WR=1.
  4. Ustawiam fusy: XA1=1, XA0=0, BS1=0, DATA=0x40, XTAL=1, czekam ~1ms, XTAL=0, XA1=0, XA0=1, DATA=0xE1, XTAL=1, czekam ~1ms, XTAL=0, BS1=0, BS2=0, WR=0, czekam aż na RDY pojawi się stan wysoki, WR=1, RESET=0.

Wszystkie wyjścia 2313 działają, 12V jest, ekspander też działa. Może ktoś z grupowiczów zetknął się z podobnym problemem i może wskazać miejsce gdzie popełniłem błąd?

Pozdrawiam, Krzysiek

Reply to
Entliczek Pentliczek
Loading thread data ...

Entliczek Pentliczek napisał(a):

Tak , ten problem jest wymieniany ciągle na tej grupie, ciągle tu go widzę, nawet nie podobny tylko identyczny. A popełniony błąd to używanie AVRów.

Oczywiście żartuję. Nie mogłem się powstrzymać, bez obrazy. AVRy są szybsze troche nawet od PICów.pzdr

Reply to
szlovak
Reply to
invalid unparseable

Entliczek Pentliczek napisał(a):

Ja tez zablokowalem ale atmega32 :) Generalnie z tego co widze w dejtaszicie :) to przez SPI nie mozesz wyrzadzic wiekszych szkod (zresetowac SPIEN). Najczesciej problemem jest ustawienie zewnetrznego generatora (mi sie udalo to "zrobic" w spieprzonym sofcie do Combo (v2004) ktory on default zeruje wszystko...) Problem do rozwiazania w pare minut (prosty generatorek na TTL-ach...)

Reply to
Artur Lew

Dziekuję wszystkim za odpowiedzi (to o pic'ach też, ale się nie zastosuję :D ). W sumie nie próbowałem użyć zewnętrznego generatora. Podłączę ten mój układ na 2313 do XTAL żeby generował zegar. ~0.8MHz powinno wystarczyć. Chyba znalazłem głupi błąd i jeden powód dla którego nie będzie mój kasownik działać już mam - 12V podłączyłem do reseta a zapomniałem odłączyć 5V.

Pozdrawiam, Krzysiek

Reply to
Entliczek Pentliczek

Artur Lew napisal(a):

Nieprawda. Mozesz przeprogramowac pin Reset i wtedy procek idzie do kosza.

Reply to
Marcin E. Hamerla

Entliczek Pentliczek snipped-for-privacy@NOSPAM.gazeta.pl> napisał(a):

Napewno tak podłączyłeś ? XTAL->wyprowadzenie nr.5 AT90S2313 ?

Pozdrawiam Piotrek

Reply to
Piotrek Sz.

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.