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

Atmega8 - Czy linie PB3-PB5 mogą być używane z ISP i innymi komponentami?

Atlantis86 26 Paź 2012 18:48 1998 10
REKLAMA
  • #1 11453328
    Atlantis86
    Poziom 19  
    Posty: 706
    Pomógł: 7
    Ocena: 23
    Przepraszam za głupie pytanie, ale nie mogę doszukać się jednoznacznej odpowiedzi. W podstawowych kursach nie znalazłem niczego na ten temat, a nie chciałbym czegoś namieszać (np. uczynić Atmegi nieprogramowalną).

    Krótko mówiąc: Czy fakt wykorzystania linii PB3, PB4 i PB5 jako elementów interfejsu ISP (MOSI, MISO i SCK) ma jakiś wpływ na ich normalne wykorzystanie? Mogę podłączyć do nich jakieś switche, diody albo piny wyświetlacza, czy też jest to niewskazane? Powinienem w jakiś konkretny sposób ustawiać wartości bitów rejestrów DDRB i PORTB odpowiadających tym liniom? Czy takie operacje mogą mieć jakiś wpływ na przebieg procesu programowania układu?
  • REKLAMA
  • #2 11453383
    Krauser
    Poziom 26  
    Posty: 508
    Pomógł: 124
    Ocena: 12
    Generalnie najlepiej jak te piny pracują w roli wyjść, a wyjścia te sterują czymś czego wysterowanie podczas programowania nie ma znaczenia np. LED. Należy unikać wykorzystania tych wyprowadzeń jako wejścia, a to dlatego, że jeśli to jest wejście to coś tam jest podłączone i to coś będzie podawać swój stan i zakłócać proces programowania np. przycisk wciśnięty podczas programowania wymusi stan niski (typowa aplikacja).
  • REKLAMA
  • #3 11453387
    xury
    Specjalista automatyka domowa
    Posty: 7073
    Pomógł: 877
    Ocena: 1487
    Śmiało możesz korzystać z tych pinów. Po to one są. Czasem jednak przy programowaniu może wystąpić problem, gdy te piny są obciążane przez zewnętrzne elementy. Najlepiej jest więc by na czas programowania odłączyć te elementy. Można projektując płytkę np. dać montażowy DIP Switch lub zworki.

    O widzę kolega mnie uprzedził. :)
  • REKLAMA
  • #4 11453549
    Atlantis86
    Poziom 19  
    Posty: 706
    Pomógł: 7
    Ocena: 23
    Czyli krótko mówiąc jeśli:
    - Będę używał tych pinów jako wyjść (z uwzględnieniem powyższego zastrzeżenia).
    lub
    - W roli wejścia użyję jedynie prostego switcha do masy, którego podczas programowania nikt ruszał nie będzie.

    To wszystko powinno być ok? ;)

    Domyślam się też, że raczej nie powinienem raczej stosować tych pinów jako wyjść sterujących zewnętrznymi urządzeniami, np. włączających jakiś moduł przez podanie odpowiedniego impulsu?
  • #5 11455849
    Konto nie istnieje
    Konto nie istnieje  
  • #6 11456115
    Atlantis86
    Poziom 19  
    Posty: 706
    Pomógł: 7
    Ocena: 23
    No tak, wiem.
    Tylko w czym niby może programatorowi przeszkadzać prosty switch, domyślnie rozłączony?
  • #8 11456304
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #9 11456415
    Atlantis86
    Poziom 19  
    Posty: 706
    Pomógł: 7
    Ocena: 23
    Wiem, wiem. Pytam w razie, gdyby jakieś pojemności między stykami miały tendencję do przeszkadzania itp.

    BTW odnośnie informacji z poprzedniego linku: czy pomylenie zworek w USBasp i przypadkowe podanie napięcia z USB programatora, gdy programowany układ ma własne zasilanie, stwarza bardzo niebezpieczną sytuację? A jeśli tak, to niebezpieczną dla układu, programatora, USB czy wszystkich razem?
  • #10 11463743
    snnaap
    Poziom 25  
    Posty: 677
    Pomógł: 83
    Ocena: 10
    Najczęściej do linii tych podłącza się układ który komunikuje się po SPI aby wykorzystać sprzętowy kontroler. Wtedy należy koniecznie zastosowywać rezystory na liniach współdzielonych a cs zewnętrznego układu niezależnie podciągnąć do vcc. Bo co będzie jeżeli tego nie zrobimy? Pojawienie się podczas programowania uK stanu niskiego na linii CS zewnętrznego układu spowoduje uaktywnienie tego układu który może "przejąć kontrole" nad liniami ISP, spostponuje to błędy na liniach ISP a co za tym idzie błędy w programowaniu uK- co często może prowadzić do zablokowania uK.

    Pozdrawiam
  • #11 11463893
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2203
    Atlantis86 napisał:
    Wiem, wiem. Pytam w razie, gdyby jakieś pojemności między stykami miały tendencję do przeszkadzania itp.

    BTW odnośnie informacji z poprzedniego linku: czy pomylenie zworek w USBasp i przypadkowe podanie napięcia z USB programatora, gdy programowany układ ma własne zasilanie, stwarza bardzo niebezpieczną sytuację? A jeśli tak, to niebezpieczną dla układu, programatora, USB czy wszystkich razem?


    Stwarza dosyć niebezpieczną sytuację, a zwykle wysiądzie najsłabszy element. Wiele płyt głównych nie ma żadnego ograniczenia przeciwzwarciowego na zasilaniu USB, ew. jest tam jakiś bezpiecznik polimerowy. Niestety aby przewidzieć co się stanie trzeba znać schematy poszczególnych elementów układanki. Po prostu należy nie dopuszczać do takiej sytuacji - a jeśli zaszła - no cóż, nie pozostaje nic innego jak sprawdzić czy coś się stało. Zazwyczaj nic się nie dzieje, ew. coś się tylko zaczyna grzać. Ale jak masz pecha...

Podsumowanie tematu

✨ Dyskusja dotyczy użycia linii PB3, PB4 i PB5 mikrokontrolera Atmega8, które są wykorzystywane jako interfejs ISP (MOSI, MISO, SCK). Uczestnicy podkreślają, że najlepiej jest używać tych pinów jako wyjść, na przykład do sterowania diodami LED, unikając ich użycia jako wejść, aby nie zakłócały procesu programowania. W przypadku użycia jako wejścia, zaleca się stosowanie prostych przełączników do masy, które nie będą aktywowane podczas programowania. Istotne jest również, aby na czas programowania odłączyć zewnętrzne elementy, aby uniknąć problemów z obciążeniem pinów. W przypadku podłączenia układów komunikujących się po SPI, konieczne jest zastosowanie rezystorów na liniach współdzielonych oraz podciągnięcie linii CS do VCC, aby zapobiec przejęciu kontroli nad liniami ISP przez zewnętrzne urządzenia. Wspomniano również o ryzyku związanym z podłączeniem zasilania z programatora USB do układu, który ma własne zasilanie, co może prowadzić do uszkodzenia komponentów.
Wygenerowane przez model językowy.
REKLAMA