logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Ustawienia fuse-bitów w mikrokontrolerach Tiny 0-series z interfejsem UPDI

robiw 11 Lis 2023 22:41 720 16
REKLAMA
  • #1 20810475
    robiw
    Poziom 26  
    Posty: 2032
    Pomógł: 25
    Ocena: 133
    Witajcie.
    Nie mogę znaleźć żadnego dokumentu opisującego ustawienia fuse-bitów nowych mikrokontrolerów serii Tiny 0-series z interfejsem UPDI. Potrzebuję wykorzystywać port RESET/UPDI, jako normalny port I/O i nie wiem, gdzie szukać tychże fuse-bitów. W datasheet od Tiny1604 ani w datasheet od 0-series nie znalazłem tego. Macie doświadczenie w tym temacie? R
  • REKLAMA
  • #2 20810493
    excray
    Poziom 41  
    Posty: 5502
    Pomógł: 739
    Ocena: 657
    Jaki uC? Przykładowo Attiny212:
    Zrzut ekranu dokumentacji ATtiny212/214/412/414 prezentujący podsumowanie bezpieczników.
    Jeżeli używasz Microchip Studio to od razu masz w oprogramowaniu wszystko opisane. UPDI może pracować jako wejście (z pewnymi ograniczeniami) bez zmiany funkcji.
  • REKLAMA
  • #3 20810515
    robiw
    Poziom 26  
    Posty: 2032
    Pomógł: 25
    Ocena: 133
    Hej,
    Już znalazłem w DS dla Tiny1604 (bo jego używam): sekcja Memories -> System Configuration 0. Widzę, że jest podobnie, jak w starych, po ustawieniu, jako I/O tylko HV. Ale akurat potrzebuję, jako I/O tyle, że wyłącznie wejście - gdzie znalazłeś to info o tym, że bez zmiany Fuse może pracować, jako wejście tylko ma ograniczenia? R
  • #4 20810525
    excray
    Poziom 41  
    Posty: 5502
    Pomógł: 739
    Ocena: 657
    Mozna mu włączyć podciąganie i czytaj jego stan, można zrobić wejście analogowe, niestety problem jest z ustawieniem go jako źródło przerwania wybudzającego.
  • REKLAMA
  • #6 20813303
    rolnik666
    Poziom 11  
    Posty: 21
    Pomógł: 1
    Ocena: 3
    To nie tak, że może pracować jako wejście jedynie, ale jako wyjście jest po prostu bardzo słaby w stosunku do innych GPIO. Popatrz do datasheetu, sekcja 31.10 I/O Pin Characteristics.
  • #7 20815281
    excray
    Poziom 41  
    Posty: 5502
    Pomógł: 739
    Ocena: 657
    excray napisał:
    UPDI może pracować jako wejście (z pewnymi ograniczeniami) bez zmiany funkcji.

    Może rozwinę temat. Bez zmiany funkcji pinu (pozostawiamy go w fusach jako UPDI) w dalszym ciągu możemy używać go w programie jako wejście z ograniczeniami o których pisałem - sprawdzone doświadczalnie, nie ma tego raczej w nocie.
  • #8 20815595
    rolnik666
    Poziom 11  
    Posty: 21
    Pomógł: 1
    Ocena: 3
    Przypomina mi to stare tricki z używaniem pinu RESET w tiny25/45/85 jako wejścia za pomocą ADC, tylko trzeba było pilnować napięcia stanu niskiego, żeby nie był na tyle niski, aby wyresetować procesor.

    Dokumentacja nie do końca nic na ten temat nie mówi, bo jeśli pin jest w trybie UPDI, to ten rozdział ma zastosowanie:
    https://ww1.microchip.com/downloads/aemDocume...4-06-07-DataSheet-DS40002312A.pdf#unique_1142
    i moim zdaniem to jest trochę "stąpanie po cienkim lodzie" - polegasz na "If the timing is violated, the UPDI is disabled to avoid unintentional enabling of the UPDI."
  • REKLAMA
  • #9 20826344
    robiw
    Poziom 26  
    Posty: 2032
    Pomógł: 25
    Ocena: 133
    rolnik666 napisał:
    i moim zdaniem to jest trochę "stąpanie po cienkim lodzie"

    Nie do końca, przecież UPDI nie jest blokowane "na zawsze" tylko do wyłączenia i włączenia zasilania, jak rozumiem. To nie pozbawia mikrokontroler możliwości programowania... R

    Dodano po 44 [sekundy]:

    excray napisał:
    nie ma tego raczej w nocie

    To byłoby słabe...
  • #10 20826545
    rolnik666
    Poziom 11  
    Posty: 21
    Pomógł: 1
    Ocena: 3
    Zgadza się, miałem na myśli raczej poleganie na tym, że UPDI się odłączy - chyba, że jesteś w stanie zagwarantować, że na tym pinie nie pojawi się nic, co by mogło przypominać transakcję UPDI.
  • #11 20826604
    robiw
    Poziom 26  
    Posty: 2032
    Pomógł: 25
    Ocena: 133
    rolnik666 napisał:
    chyba, że jesteś w stanie zagwarantować, że na tym pinie nie pojawi się nic, co by mogło przypominać transakcję UPDI

    Tam jest niezbędny bajt synchronizacji, jeśli dobrze pamiętam 0x55 i do spełnienia inne warunki. Raczej trudno będzie przypadkowo go zainicjować, co nie znaczy, że niemożliwe...
  • #12 20826805
    rolnik666
    Poziom 11  
    Posty: 21
    Pomógł: 1
    Ocena: 3
    A do tego musisz uwzględnić możliwość odłączenia tego czegoś co podłączasz do pinu UPDI na czas programowania, nawet zbyt mocny pullup będzie bruździł, zależy od programatora ale te od Microchipa są dość kapryśne i bez takich patentów.
  • #13 21437867
    szel
    Poziom 20  
    Posty: 516
    Pomógł: 13
    Ocena: 10
    Mikrokontrolery ATTINY serii 0/1 mają fabrycznie ustawiony pin RESET jako UPDI . Pozwala to na dostęp do mikrokontrolera. Zmiana przeznaczenia tego pinu, nie pozwala potem na dostęp do mikrokontrolera za pomocą prostego programatora UPDI np. jtag2updi. Microkontroler zachowuje się tak jakby był zablokowany podczas próby dostępu do niego, odczytu lub programowania. Układ działa, ale na ostatnich ustawieniach.
    Aby to zmienić wymagany jest programator tzw. wysokonapięciowy, pozwalający na podanie impulsu 12V na ten pin i przywrócenie go do trybu UPDI. Niektóre, kupione z niesprawdzonych źródeł układy, mogą być zaprogramowane i mieć zmieniony pin RESET na tryb inny od UPDI. Przez to są niedostępne. Spotkałem się z takim przypadkiem wielokrotnie. Fuse bity tych mikrokontrolerów różnią się znacznie od starszych mikrokontrolerów AVR.
  • #14 21438487
    kamyczek
    Poziom 38  
    Posty: 3995
    Pomógł: 394
    Ocena: 574
    A ja nie wiedzieć czemu nie mogę się przemóc do nowych AVR produkowanych przez Microchipa . Jakieś strasznie delikatne te mikrokontrolery się wydają . Znacznie bardziej odporne były te stare serie i znacznie trodniej było je uszkodzić . Nie wiem czy to tylko moje odczucia ???
  • #15 21440082
    excray
    Poziom 41  
    Posty: 5502
    Pomógł: 739
    Ocena: 657
    >>21438487 Na pewno trzeba bardziej zadbać o oscylator zegarkowy. Ale z drugiej strony pobór też sporo niższy niż w starych w tym trybie, więc coś za coś. Z nowych już kilka upaliłem więc rzeczywiście są trochę bardziej delikatne, ale biorąc pod uwagę, że stara atmega8 działała u mnie przez naście sekund z 12V na zasilaniu i się nie spaliła, to poprzeczka została wysoko podniesiona.
  • #16 21440359
    kamyczek
    Poziom 38  
    Posty: 3995
    Pomógł: 394
    Ocena: 574
    W starych avr udawało się uszkodzić co najwyżej porty . Ale poza tym na prawdę były niemal niezniszczalne , do tego odporne na zakłócenia pomyłki chwilowe zwarcia . Te nowe są o tyle lepsze ,że czesto mają w sobie upakowane więcej peryferii . Tylko ile rzeczy projektujemy na bateryjkę cr2032 a ile z bardziej rozsądnym zasilaniem . Owszem dla kogos kto walczy w uA przy zasilaniu moż być to jakiś krok , ale dla innych zastosowań to te parametry kosztem wrażliwości na wszystko i wszędzie są bardzo wysoką ceną . Stare atmegi z atmela lutowałeś hotem 20 razy i działały , nowe podgrzejesz raz delikatnie za mocno i są do śmietnika .
    Jak tylko mogę i mam w zapasach wybieram stary sprawdzony i pancerny układ atmela i działa . Jak to mówią zamienił stryjek siekierkę na kijek ...
  • #17 21443838
    excray
    Poziom 41  
    Posty: 5502
    Pomógł: 739
    Ocena: 657
    Ja tam wolę nowe. UPDI, CCL, EVSYS, bardziej rozbudowane peryferia robią robotę. Brakuje mi tylko czegoś w obudowie SOT23-6 z UPDI.

Podsumowanie tematu

LABEL_AI_GENERATED
W mikrokontrolerach serii Tiny 0 z interfejsem UPDI pin RESET jest fabrycznie skonfigurowany jako linia UPDI, co umożliwia programowanie i debugowanie. Aby używać tego pinu jako zwykłego portu I/O, konieczna jest zmiana ustawień fuse-bitów, jednak dokumentacja (datasheet Tiny1604 i innych modeli) nie zawiera szczegółowego opisu tych ustawień. Pin UPDI może być używany jako wejście bez zmiany fuse, ale z ograniczeniami, np. jako wejście analogowe lub z podciąganiem, natomiast jako wyjście jest słabszy niż standardowe GPIO. Zmiana funkcji pinu RESET na I/O powoduje utratę dostępu do programowania przez standardowy programator UPDI (np. jtag2updi), a przywrócenie funkcji UPDI wymaga programatora wysokiego napięcia (impuls 12V). Użytkownicy zauważają, że nowe mikrokontrolery AVR są bardziej wrażliwe na uszkodzenia niż starsze serie, co wymaga ostrożniejszego obchodzenia się z nimi, zwłaszcza w kontekście oscylatorów i napięć. Mimo to nowe modele oferują zaawansowane peryferia, takie jak CCL czy EVSYS, które są cenione w projektach.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA