• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ATtiny10 - FUSEBITY
#1
Witam,

Mam pytanie jak można zresetować do ustawień fabrycznych FUSEBITY w ATtiny10?

ANT
Jeżeli pomogłem, to poproszę o punkt reputacji Big Grin
 
Odpowiedź
#2
W Attiny10 robię to zdalnie na odległość siłą woli, eeem, masz zresetowane - proszę bardzo. A tak na serio to ich nie ma, z tego co wiem...
Edit:
A jednak mi się przypomniało, że oglądałem jakiś filmik, gdzie Mirekk36 włączał pin reset jako normalny I/O, czyli ma jednego fuse. Coś takiego sobie zrobiłeś? On to resetował jakimś medkitem. Przypuszczam, że ma to związek z podaniem 12V na pin reset, poszukaj "HV reseter AVR", jest jakiś szkic do tego w Arduino, ale nie było to raczej do attiny10.
 
Odpowiedź
#3
Cytat:kaczakat
A jednak mi się przypomniało, że oglądałem jakiś filmik, gdzie Mirekk36 włączał pin reset jako normalny I/O, czyli ma jednego fuse. Coś takiego sobie zrobiłeś? On to resetował jakimś medkitem. Przypuszczam, że ma to związek z podaniem 12V na pin reset, poszukaj "HV reseter AVR", jest jakiś szkic do tego w Arduino, ale nie było to raczej do attiny10.

Mikrokontroler ATtiny10 posiada trzy FUSEBITy.

O MEDKIT'ie Mirka wiem od dawna. Jego konstrukcja jest chroniona przez autora i możliwa do wykorzystania w zestawach ATB.
Zestawu ATB nie posiadam.

Chciałem stworzyć niezależne urządzenie do przywracania FUSEBIT'ów w ATtiny10.

Posiadam wykonany własnoręcznie programator AVR ATMEGA HV DOCTOR,
który obsługuje bardzo wiele AVR'ków ale niestety bez ATtiny10.

[Obrazek: avr_atmega_hv_doctor.jpg]


Według poniżej zamieszczonych linków do stron:

https://github.com/james-tate/Arduino-TPI-Programmer
http://junkplusarduino.blogspot.com/p/at...urces.html

wykonałem programator TPI do ATtiny10 w formie shielda do umieszczenia go na Arduino UNO.
Programator działa zapisując i odczytując pliki HEX w procku.

[Obrazek: tpi_programmer.jpg]

Niestety nie chce przywracać mikrokontrolera do życia po wyłączeniu pinu RESET.
Oczywiście 12V jest podawane z przetworniczki napięcia na pin resetu podczas próby programowania.

Przeglądałem dokumentację PDF tego mikrokontrolera i ciężko się połapać w tych 250 stronach... Smile
Może ktoś podpowie jak sobie poradzić z tym problemem?
Jeżeli pomogłem, to poproszę o punkt reputacji Big Grin
 
Odpowiedź
#4
Odnośnie programowania wpisałem tylko w PDF "12V" i jest taki opis:
"The following sequence enables the Tiny Programming Interface (see Figure 15-3 for guidance):
• Apply 5V between VCC and GND
• Depending on the method of reset to be used:
– Either: wait tTOUT (see Table 17-4 on page 127) and then set the RESET pin low. This will reset the device and
enable the TPI physical layer. The RESET pin must then be kept low for the entire programming session
– Or: if the RSTDISBL configuration bit has been programmed, apply 12V to the RESET pin. The RESET pin
must be kept at 12V for the entire programming session
• Wait tRST (see Table 17-4 on page 127)
• Keep the TPIDATA pin high for 16 TPICLK cycles"

Jak to zrobiłeś na shieldzie z opisu wsadu do Arduino? Przełączasz jakoś zworkami tryb programowania "normalnego" i HV?
 
Odpowiedź
#5
(17-03-2019, 13:25)kaczakat napisał(a): Jak to zrobiłeś na shieldzie z opisu wsadu do Arduino? Przełączasz jakoś zworkami tryb programowania "normalnego" i HV?

Tak, przełączam. Słabo widać na zdjęciu ale z lewej strony jest zworka do podawania 12V z przetwornicy.
Dodatkowo dałem jeszcze zworkę do podłączania 5V do ATtiny10. Myślałem, że może najpierw trzeba włączyć 12V a potem 5V. Niestety nie działa nadal...
Jeżeli pomogłem, to poproszę o punkt reputacji Big Grin
 
Odpowiedź
#6
Z opisu w PDF Attiny 10 wynika, że programowanie różni się tylko stanem pinu RST, w jednym przypadku jest RST zwierany do GND, w drugim do 12V. Rozumiem, że toglujesz pinem HVP 9 (co powinno podawać 12V z przetwornicy, czy właściwie komunikuje programowi, że ma to robić gadając z prockiem) komendą H i nic się nie dzieje.
Zrobiłem sobie kiedyś taki programator typu MK2 :
"Może nie tak tani, ale chyba najprostszy jest wg mnie programator klon MKII zrobiony z klona Arduino MICRO z Atmega32u4. Bierzesz tego MICRO (3$) dwa rezystory 10k (opcjonalnie, jak chcesz by AS odczytywało napięcie układu programowanego, robi się dzielnik miedzy GND i VCC targetu do pinu A0, a jak nie to można spiąć A0 z VCC Micro, żeby AS się nie pluł), parę kabelków, wgrywasz hexa z załącznika i programator MK2 SPI gotowy (sprawdzony w AS 6.2, 7, Arduino z AVRDUDE 6.3, AVR LAB++). Reset idzie z pinu 8 MICRO, reszta to zwykłe SPI/ISP (MOSI, MISO, SCK z pinów 16, 14 i 15) zgodnie ze schematem Arduino MICRO. Miałem kiedyś zainstalowanego klona MK2, więc po włączeniu Arduino Micro z tym softem od razu wykrył znane urządzenie. Binarka jest przeróbką z projektu LUFA. Dodatkowo nie potrzebujesz żadnego innego programatora do zaprogramowania. W załączniku jest AVRDUDE i plik bat, a Micro przylatuje z bootloaderem. Po resecie przez 6-8 sekund zmienia port na inny COM do wgrywania softu. Trzeba sprawdzić jaki to i podmienić w pliku "start.bat" numerek, znowu zresetować, odpalić bat i gotowe. Oczywiście prościej jest mieć programator USBASP i wgrać np. AVRLAB++. Przywrócenie softu z bootloaderem to też już tylko innym programatorem, bo bootloader zostanie oczywiście nadpisany. W Win10 z AS7 nie miałem żadnego programatora wgranego, po podłączeniu zainstalował sobie wszystko sam (oczywiście był AS7 wgrany wcześniej). Nieco kłopotliwe jest użycie interfejsu TPI, bo istotny pin jest użyty do leda i nie jest wyprowadzony na pinheader. Trzeba dolutować kabelek jak na fotce pomarańczowy do rezystora po prawej (tu jest sygnał TPICLK), do tego wyprowadzić na wspólną linię sygnały RX/TX przez rezystory R220-470 (do TPIDATA), 8 do reset i można się bawić również z prockami Attiny10, itp. Ale jak ktoś przylutował Attiny10 to z tym pójdzie łatwiej. Jak widać niestety na fotce mojego rezystora tam już nie ma, bo miałem długi i gruby kabelek, którym majdałem po stykówce. Nie jest to dobry pomysł, po kilku takich został mi w ręce razem ze ścieżką, musiałem wlutować się dalej do ścieżki. Po dodaniu regulatora 3.3V i konwertera poziomów logicznych/bufora można również programować Xmega, ale to już by podrożyło programator o kolejnego $, bo całość trzeba by już jakoś ułożyć na płytce i dołożyć trochę scalaków. W najprostszej wersji do ISP to Arduino Micro + 5 kabelków żeńskich (bez zasilania układu). Wiem, nie ma bufora itp., jak coś pójdzie źle to dycha w plecy.
Dodatkowo na pinie 9 jest sygnał zegara 4MHz - na wypadek jakby komuś z fusami nie wyszło. PDI już mi się nie chciało testować. "
 
   
   

Teraz wystarczyło by podłączyć mosfeta PNP do pinu 8, resztę do 12V i RST Attiny10. Niestety dzisiaj nie przetestuję tej teorii. I tak urwałem ten led, więc schowałem całość do pudła by ewentualnie kiedyś wykorzystać. No  i nie wiem gdzie to pudło jest. Jak się będziesz nudził to możesz przetestować.


Załączone pliki
.zip   Leonardo.zip (Rozmiar: 330.53 KB / Pobrań: 1)
 
Odpowiedź
#7
Dzięki kaczakat Smile

Muszę tą Twoją teorię i całą bazę wiedzy przerobić na spokojnie Smile
Jeżeli pomogłem, to poproszę o punkt reputacji Big Grin
 
Odpowiedź
#8
Niestety mosfet jest słabym punktem tej teorii. Nie mam takiego P mosfeta, z PNP to nie działa, zasilanie jest względem emitera przy 5V na bazie i tak -7V co powoduje świetne działanie również wtedy gdy nie powinno. Płytkę znalazłem, pomyślę o układzie N-mosfet 12V + PNP, to już powinno wyłączać PNP. Zablokuję procka i dam znać czy zadziała (i tak wolę attiny13).
Dobra, poszedłem na skróty. Zablokowałem procesor, sprawdziłem, że nie da się programować, odłączyłem reset od programatora, podłączyłem baterię z pilota do bramy 12V, - do GND, + do reset, odczytało mi procesor, zmieniłem z powrotem fuse RSTDISBL. Do attiny10 używam Atmel Studio 6.2, ale programator z micro sprawdzałem też na AS7 w WIN10 i działał tak samo.
Zmieniłem też koncepcje jak to zrobić bez podłączania na stałe 12V, tylko mosfet logic level, muszę to sprawdzić.
 
Odpowiedź
#9
kaczakat jesteś WIELKI Big Grin

Znalazłem przyczynę, dlaczego nie mogłem wejść do procka w trybie programowania HV...
Podczas gdy podłączałem przez rezystor 12V do resetu, miałem podłączony również do niego rezystor połączony do pinu nr 10 w Arduino.

Zastosowałem zworkę do rozłączenia tego pinu i wszystko zagrało.
Dwie ATtiny10 wróciły do świata żywych Big Grin

WIELKIE DZIĘKI Smile
Jeżeli pomogłem, to poproszę o punkt reputacji Big Grin
 
Odpowiedź
#10
No a właśnie o to przełączanie pytałem, z opisu szkicu Arduino i PDF Atmela tam nie było wielkich czarów. Super że działają. Kupiłem kilka tych Attiny10 z ciekawości i przy okazji, ale wg mnie są bardziej kłopotliwe od Attiny13, samo lutowanie zajęło mi z pół godziny, ale jak to ma być gdzieś na czubku szpilki to może się czasem przydać. MK tak się nimi zachwycał raczej tylko po to by sprzedać parę kół ratunkowych po zablokowaniu. A czy pin 10 Arduino przeżył?
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości