Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 17 sty 2025, o 20:26


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 
Autor Wiadomość
PostNapisane: 7 sie 2013, o 22:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sie 2012
Posty: 245
Lokalizacja: Kielce
Pomógł: 6

Witam
Buduję układ w którym mikro kontroler steruje przez SPI driverami LED. Skoro jest, to oczywiście używam SPI sprzętowego. Program jest napisany tak że od razu po uruchomieniu wysyła coś na SPI. W związku z tym po programowaniu zanim jeszcze zdążę odpiąć programator niby jest konflikt z ISP. Napisałem "niby" bo robiłem testy na płytce stykowej z m32 wgrywając taki program i nie było problemów.

Teraz mam już m32 (dodatkowo powierzchniowo) wlutowane w gotowe PCB i boje się że coś uszkodzę. Jak powinienem postępować żeby wszystko było OK?
Jakby co to mam zrobiony USBasp dokładnie zgodnie ze schematem ze strony autora (soft też od autora) - czy wyjścia tego programatora ustawiają się jako wejścia zaraz po programowaniu? - bo to by przecież załatwiło sprawę.

_________________
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sie 2013, o 23:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 sie 2013
Posty: 44
Lokalizacja: RFN
Zbananowany użytkownik

Pomógł: 2

Ja ten problem (lub ryzyko zwarcia) wykluczyłem w ten sposób:

Obrazek

Korzystam z AVRISP mkII Atmela i równocześnie portu SPI - dlatego trochę się nad tym głowiłem. Rezystor R2 (390 Ohm) jest w sumie niepotrzebny, bo jest R12, ale już mi się nie chce go wyciągać - na początku miałem tylko ten rezystor jako zabezpieczenie dla linii RESET, bo też nie wiem jak programator podaje na niej napięcie (zwiera tylko do masy czy ma pełne wyjście i być może podaje przez krótki czas stan wysoki), a później doszedłem do wniosku, że i na liniach SCK, MOSI i MISO może być konflikt i tam przy gniazdku ISP (6pin) dałem te wszystkie oporniki. W przypadku kiedy są dane oporniki, ewentualny prąd zwarcia jest dodatkowo przez nie ograniczany (tranzystory CMOS w układach też jakoś tam ten prąd ograniczają, no ale pewne to nie jest, przede wszystkim nie wiadomo ile tego prądu rzeczywiście może wtenczas popłynąć). Programator sprawdziłem na maksymalnej szybkości (4MHz) dla mojego procesora (18,432MHz) - programuje bez zarzutów, a podłączony mam na SPI układ ISD1760. Na liniach CS (SS) i SCK od strony ISD1760 mam kondensatory 100-150pF do masy, bo w czasie sprawdzania fusów lub programowania procesora włączał mi się układ ISD1760 i zaczynał gadać (głośnik).

PS: procesor na schemacie to Atmega1284P, choć to w sumie jest nieistotne jaki, bo problem wszędzie taki sam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 00:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sie 2012
Posty: 245
Lokalizacja: Kielce
Pomógł: 6

W sensie chodzi o te 4 rezsystory przy MOSI MISO SCK i RESET.
Ale MKII chyba ustawia się w stan wysokiej impedancji po programowaniu? - problem w tym że nie wiem jak jest z usbasp

_________________
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 00:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 sie 2013
Posty: 44
Lokalizacja: RFN
Zbananowany użytkownik

Pomógł: 2

Wojtek001 napisał(a):
Ale MKII chyba ustawia się w stan wysokiej impedancji po programowaniu?

Powinien, ale dokładnie nie wiem jak szybko się to dzieje, a niespodzianek nie lubię, mówimy o mikrosekundach. Może i sam programator takie zwarcie wytrzyma, ponoć jest zabezpieczony, no ale moje scalaki na SPI mogą tego nie przeżyć, niektóre CMOSy nie lubią większego prądu jako zwarcie. ISD17xx to nie jedyny układ, który tam będę podłączał - ta płytka to uniwersalny układ na Atmedze do sterowania, budowania i testowania różnych układów. Cały PortB (tam gdzie jest SPI) mam na wtyczce i teoretycznie mógłbym go na czas programowania wyciągać, no ale mi się nie chce, poza tym takie gniazdo ma ograniczoną żywotność.

------------------------ [ Dodano po: 56 minutach ]

Wojtek001 napisał(a):
W sensie chodzi o te 4 rezsystory przy MOSI MISO SCK i RESET.

RESET tylko wtedy, kiedy masz klawisz resetowania do masy, bo programator może podać stan wysoki (choć nie powinien, już z samego założenia powinien mieć wyjście typu OC) a klawiszem zwieramy do masy. Oczywiście rzadko kiedy naciskamy RESET w trakcie programowania, no ale przy eksperymentowaniu i męczeniu układu zawsze można zrobić coś nietypowego - a z opornikami to raczej spokojna czaszka. Nie bez powodu jest też w układzie zenerka 5,6V, mimo że mam stabilizowane napięcie z portu USB komputera... no ale to już zupełnie inna para kaloszy. We wszystkich moich układach na procesorach jest zawsze jedna zenerka na zasilaniu, a wskazane jest to szczególnie wtedy, kiedy zasilanie jest brane z zasilacza impulsowego.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 08:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 sie 2013
Posty: 44
Lokalizacja: RFN
Zbananowany użytkownik

Pomógł: 2

squeez napisał(a):
Bo chyba najrozsądniejszym rozwiązaniem przy korzystaniu z ISP i SPI (na tych samych pinach) jest użycie buforów trój stanowych.

Czy wiesz o czym piszesz? Magistrala SPI jest dwukierunkowa i w powyższysz przykładach właśnie jest ryzyko kolizji z tego powodu, że nie wiadomo kiedy który master i slave może zadziałać albo jeszcze działać a włączyć się nowy. Z powodu tej niewiadomej użycie buforów trójstanowych może mieć zupełnie odwrotne działanie, bo skoro nie wiemy kiedy się coś i w jakim kierunku (nie tylko master nadaje, slave w tym czasie zazwyczaj daje sygnał/bajt zwrotny) może podłączyć na linię SPI, to i tych buforów nigdy tak nie uda nam się zrealizować, żeby było na 100% bezkolizyjnie. No chyba że zaingerujemy w programator i tam coś dorobimy. Na dodatek bufory mają i potrafią zazwyczaj podać większy prąd od zwykłej bramki (często z tego powodu sięga się po bufory) i wtenczas przy niefortunnym podłączeniu dopiero może być konkretne zwarcie, a nie takie tylko pseudo/mini zwarcie. Poza tym, bufory ingerują w port SPI i związane z nim parametry, takie jak szybkość przełączania się stanów, stromość zbocza etc. Do tego dochodzi jeszcze problem, że jak bufory masz sterowane nie z programatora (a np. z procesora) i wyłączone, to w pewnym momencie może się okazać, że nie zaprogramujesz procesora. Musiałbyś tak zrobić te bufory, żeby przy resecie zawsze było przejście między programatorem a mikroprocesorem, później musiałbyś je albo programowo albo hardwarowo odłączać, co oznacza że, potrzebujesz dodatkowe elementy albo jakiś pin z procesora do tego celu. Wątpię, żeby to było rozsądne rozwiązanie, to raczej tylko komplikuje wszystko, na dodatek dochodzi kilka nowych niewiadomych, a co najgorsze: samo ryzyko zwarcia jeset nadal, bo bufory albo inwertery to też nic innego jak tylko bramka z wyjściem - w pewnym momencie stoisz przed tym samym problemem co powyżej, a masz bufory.

Być może układ Wojtka001 (ten driver LED) jest tylko sterowany w jednym kierunku, czyli on sam nie nadaje z powrotem do mastera bajtów (są takie układy, np. przetworniki DAC), wtedy raczej z samym driverem LED nie ma problemu, ale jako nadający na linię partner zostaje oprócz programatora jeszcze procesor, który - wg podanej informacji przez Woktka001 - się zaraz po resecie włącza jako master (teoretycznie tutaj w programie Wojtek mógłby zrobić opóźnienie i miałby chyba problem z głowy).

Jeśli uważasz, że rozsądne jest zastosowanie buforów, to proszę o narysowanie takiego rozwiązania, napisanie krótko jak to ma działać i zapodanie nam tego tutaj na forum, żeby nie być gołosłownym - chętnie się z takim układem zapoznam, jestem otwarty na nowe rzeczy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 09:10 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27346
Lokalizacja: Szczecin
Pomógł: 1041

Grzegorz napisał(a):
Jeśli uważasz, że rozsądne jest zastosowanie buforów, to proszę o narysowanie takiego rozwiązania, napisanie krótko jak to ma działać i zapodanie nam tego tutaj na forum, żeby nie być gołosłownym - chętnie się z takim układem zapoznam, jestem otwarty na nowe rzeczy.


W przypadkach gdzie są drivery LED do których TYLKO WYSYŁANE są dane po SPI a dokładniej mówiąc poprzez MOSI, w ogóle nic nie trzeba robić i nic się nie stanie ... co najwyżej diody pomigają sobie w trakcie programowania. A jeśli miałoby to przeszkadzać to zawsze można sygnał CS podciągnąć rezystorem do VCC aby w trakcie resetu procka układ SLAVE był odłączony.

Jeśli zaś chodzi o zastosowanie buforów trójstanowych - proszę bardzo:

http://atnel.pl/micro-sd-adapter.html

http://atnel.pl/karta-sieciowa-ethernet.html

w czym problem ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 09:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 sie 2013
Posty: 44
Lokalizacja: RFN
Zbananowany użytkownik

Pomógł: 2

mirekk36 napisał(a):
Grzegorz napisał(a):
Jeśli uważasz, że rozsądne jest zastosowanie buforów, to proszę o narysowanie takiego rozwiązania, napisanie krótko jak to ma działać i zapodanie nam tego tutaj na forum, żeby nie być gołosłownym - chętnie się z takim układem zapoznam, jestem otwarty na nowe rzeczy.

w czym problem ?

W tym, co opisałem powyżej. Ty zapodałeś linki do układów I/O z buforami a problem jest tutaj trochę innej natury, chodzi też o włączenie się procesora na SPI zaraz po zaprogramowaniu, więc taki układ buforowania jakiejś peryferii nic do tego nie wnosi. Zapomniałem może tylko dodać, że przy użyciu buforów jesteś raczej zmuszony do użycia dodatkowego układu scalonego - i w pewnym momencie robi się absurdalny układ, bo jest bardziej rozbudowany niż sam właściwy układ na procesorze, np. na małym Attiny.


mirekk36 napisał(a):
A jeśli miałoby to przeszkadzać to zawsze można sygnał CS podciągnąć rezystorem do VCC aby w trakcie resetu procka układ SLAVE był odłączony.

O tym też powyżej napisałem - samo podciągnięcie sygnału CS może nie wystarczać, poza tym podciągnięcie sygnału CS do plusa to jest standard i mus, a nie wybór. U mnie tak było, miałem opornik 10k do plusa a i tak mi się układ ISD1760 przy programowaniu mikroprocesora wzbudzał. Dopiero po dodaniu pikowego kondensatora przestał - prawdopodobnie robią się jakieś szpilki na liniach/zasilaniu w trakcie lub po programowaniu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 10:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 sie 2013
Posty: 44
Lokalizacja: RFN
Zbananowany użytkownik

Pomógł: 2

squeez napisał(a):
Przecież pisałem, że podpinasz bufor pod reset procesora. Bufor "odłączy" SPI na czas programowania uC a po zaprogramowaniu, będzie niejako "transparentny" dla SPI. Nie musisz nic dodatkowo programować, tylko wstawić jeden bufor.

Co dokładnie odłączy bufor? SPI do osprzętu? I co znaczy jeden bufor - jedna bramka czy jeden układ scalony? Narysuj to albo sprecyzuj, bo nie wiadomo co masz na myśli. Czy to rozwiązuje ewentualny konflikt, o którym pisze Wojtek w pierwszym poście - procesora z programatorem? Wątpię, ale chętnie zobaczę i przeanalizuję taki układ.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 10:55 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27346
Lokalizacja: Szczecin
Pomógł: 1041

Panowie, panowie a szczególnie panie Grzegorz - proszę ociupinkę spokojniej ...

rozwiązań jest sporo. To że w twoim przypadku nie sprawdziło się podciąganie rezystorem 10K sygnału CS nie oznacza że zawsze w każdym wypadku jest taki kłopot. Ja też opisałem kilka rozwiązań ... pomagamy sobie - nawzajem a nie na siłę przekonujemy do jednego NAJ.....lepszego rozwiązania. Taka jest zasada tego forum - chciałbym grzecznie przypomnieć. Więc proszę o ton niżej i bez takich zaczepnych wypowiedzi :

Grzegorz napisał(a):
Czy wiesz o czym piszesz?


ok? proszę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 11:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sie 2012
Posty: 245
Lokalizacja: Kielce
Pomógł: 6

Tak wygląda moja sytuacja:
Obrazek
Z driverem SCT2010 nie ma problemu ponieważ jego wyjście nie jest podłączone. Problem pojawia się moim zdaniem między programatorem a uC na liniach które zaznaczyłem czerwonym x'em czyli wyjścia mikrokontrolera.
Na LEDach i tak nic nie będzie migać podczas programowania gdyż linia zatrzaskująca jest na zupełnie innym pinie.


Mirku, napisałeś że nic nie trzeba robić ? Na pewno?
Wydaje mi się że sprawę załatwiły by rezystory, prawda?

_________________
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 11:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 sie 2013
Posty: 44
Lokalizacja: RFN
Zbananowany użytkownik

Pomógł: 2

squeez napisał(a):
74HC126 czyli poczwórny bufor.

[uC] ---SPI--- [BUFOR] ---SPI---[Peryferia na SPI]

Masz cztery bufory do wykorzystania dla linii SPI (MOSI, MISO, SCK) CS pewnie na pinach w zależności od ilości urządzeń na linii, czyli to nam nie będzie potrzebne. RESET programowanego uC podpinasz pod pod wyjścia G w buforach układu 74HC126.
W chwili programowania uC to co jest za wyjściem z bufora jest niejako "odłączone" od SPI (stan wysokiej impedencji) czyli nie ma żadnego konfliktu w trakcie programowania. Po zakończeniu programowania bufory przechodzą w stan normalnej pracy (G jest podciągnięte do VCC przez rezystor przy pinie resetu) czyli stan jaki pojawia się na wejściu bufora przekazywany jest na jego wyjście.


No jest to na tyle proste, że robienie schematu to chyba strata czasu. Jeśli nie rozumiesz tego co napisałem już chyba trzy razy to napisz w którym momencie tego nie rozumiesz.

No a gdzie jest podpięty programator? I czy jest on też buforowany, bo przeca o to chodzi. Zarzucasz mi nie rozumienie czegoś tam a tymczasem może sam czegoś nie rozumiesz? Przemyśl na spokojnie.

------------------------ [ Dodano po: 18 minutach ]

Wojtek001 napisał(a):
Tak wygląda moja sytuacja:
Z driverem SCT2010 nie ma problemu ponieważ jego wyjście nie jest podłączone. Problem pojawia się moim zdaniem między programatorem a uC na liniach które zaznaczyłem czerwonym x'em czyli wyjścia mikrokontrolera.
Na LEDach i tak nic nie będzie migać podczas programowania gdyż linia zatrzaskująca jest na zupełnie innym pinie.

W takim razie jest sprawa uproszczona, tak jak podejrzewałem z tymi LEDami. Problemu na pewno nie będzie jak dasz opory na SCK, MISO i MOSI. Do MISO procesora nawet byś nie musiał dawać, bo to jest Master Input, czyli jego wejście w trybie Master, a w takim chyba chodzi po resecie i w tym trybie zostaje, czyli tylko dwa oporniki: SCK i MOSI (tak jak dobrze postawiłeś krzyżyki na swoim rysunku). Możesz też zmienić program, dać opóźnienie - np. 0,1 sekundy - włączenia magistrali SPI; najpierw robisz ustawienia SPI, a po upłynięciu tego czasu zapalasz bit SPE w SPCR, albo ustawiasz wszystko w SPI dopiero po upłynięciu tego wybranego przez Ciebie czasu. Jeżeli będziesz korzystał również z trybu Slave procesora, to rezystory można dla pewności na wszystkie trzy linie lecące do programatora dać, na SCK, MISO i MOSI. Czy dasz 220, 330 albo 270 Ohm nie ma większego znaczenia, za duże jednak nie powinny być, bo mogą powstawać problemy z zaprogramowaniem procesora przez programator. W celu zminiaturyzowania tego wszystkiego można nawet użyć miniaturowych oporników - SMD.

PS: linia CS wyświetlacza przez np. 10k do plusa i 100pF do masy, jeżeli jest wybieranie układu stanen niskim; w przeciwnym razie - odwrotnie: opór do masy (kondensator może zostać do masy)



Ostatnio edytowano 8 sie 2013, o 12:04 przez Grzegorz, łącznie edytowano 7 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 11:45 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27346
Lokalizacja: Szczecin
Pomógł: 1041

Wojtek001 napisał(a):
Mirku, napisałeś że nic nie trzeba robić ? Na pewno?


Takie problemy, których się obawiasz to mogą wystąpić i występują np gdy ktoś podłącza sobie (taki przykład z życia wzięty) moduł radiowy RFM12 albo RFM70. Wiadomo wtedy wykorzystana jest także linia MISO .... no to nie dziwne że bez rezystora podciągającego CS do VCC - one też mogą sobie chcieć "pogadać" czyli ponadawać coś po MISO do procka - i w trakcie programowania robi się czasem ZONK.

Zwykle ten rezystor wystarcza

no ale ty nie używasz MISO tylko SCK i MOSI - więc absolutnie nic nie grozi w trakcie programowania - no nic - bo co mogłoby ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 11:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sie 2012
Posty: 245
Lokalizacja: Kielce
Pomógł: 6

mirekk36 napisał(a):
Wojtek001 napisał(a):
Mirku, napisałeś że nic nie trzeba robić ? Na pewno?


Takie problemy, których się obawiasz to mogą wystąpić i występują np gdy ktoś podłącza sobie (taki przykład z życia wzięty) moduł radiowy RFM12 albo RFM70. Wiadomo wtedy wykorzystana jest także linia MISO .... no to nie dziwne że bez rezystora podciągającego CS do VCC - one też mogą sobie chcieć "pogadać" czyli ponadawać coś po MISO do procka - i w trakcie programowania robi się czasem ZONK.

Zwykle ten rezystor wystarcza

no ale ty nie używasz MISO tylko SCK i MOSI - więc absolutnie nic nie grozi w trakcie programowania - no nic - bo co mogłoby ?

Nie w trakcie programowania tylko w czasie odkąd uruchomi się program do czasu zanim zdążę odpiąć programator a także
od momentu gdy wepnę programator do momentu rozpoczęcia programowania.

Jaki jest stan spoczynkowy na programatorze? GND lub VCC ? No to wtedy dojdzie do zwarcie kiedy układ będzie gadał na MOSI i będzie też zwarcie na SCK. Prawda? Ja mam b. podstawową wersje usbasp bez żadnych dodatkowych zabezpieczeń. (proszę spojrzeć na moją laurkę - zaznaczyłem tam linie przy wtyczce od programatora)
Moim zdaniem należało by użyć tych rezystorów - ale jeśli to zbędne to chciałbym żeby mi ktoś wytłumaczył dlaczego.

_________________
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 14:17 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27346
Lokalizacja: Szczecin
Pomógł: 1041

stan spoczynkowy na liniach SPI/ISP w programatorze to stan HiZ. I nie wiem czego się obawiasz jeśli chodzi o SCK i MOSI podłączonych do drivera LED noż to przecież są WEJŚCIA a więc też masz tam stan HiZ. O jakich ty problemach tu mówisz ???

Problemem byłoby gdybyś miał podłączone jakieś WYJŚCIA do linii ISP. Nie ważne jakie czy z drivera LED czy z czegokolwiek. Wyjścia, które mogą wystawiać np na siłę stan wysoki. To I TAK elektrycznie by się nic nie stało żadnemu scalakowi co najwyżej byłoby zakłócone programowanie.

A teraz pomyśl sobie - wyobraź sobie że nie masz podłączonego drivera - a do ISP podłączyłeś sobie diody LED, czyli linie ISP ustawiłeś jako WYJŚCIA i załóżmy że w czasie pracy n MOSI, MISO i SCK masz stan WYSOKI, NISKI, WYSOKI czy tam na przemian....

toż gdyby to miał być jakiś problem to nikt by nie robił programatora ISP. Tymczasem producent czyli ATMEL dopuszcza taki stan i nie ma żadnych obaw....

REASUMUJĄC - jeszcze raz powtarzam - twój przypadek jest w ogóle absolutnie poza jakimkolwiek podejrzeniem że coś się stanie elektrycznie po podłączeniu programatora i to NAWET gdyby na jego wyjściach ISP były wymuszone jakieś stany NISKIE i WYSOKIE. Co najwyżej gryzłoby się to TYLKO z PROCKIEM, a twój driver to CZOCHRA - bo on ma tam podłączone tylko swoje wejścia.

------------------------ [ Dodano po: 1 minucie ]

Wojtek001 napisał(a):
Moim zdaniem należało by użyć tych rezystorów


A takich rezystorów szeregowo na liniach ISP przy procku owszem można używać ale właśnie wtedy gdy czasem podłączasz do linii ISP WYJŚCIA. Wtedy rezystory separują sygnały z programatora.


Autor postu otrzymał pochwałę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 14:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sie 2012
Posty: 245
Lokalizacja: Kielce
Pomógł: 6

mirekk36 napisał(a):
stan spoczynkowy na liniach SPI/ISP w programatorze to stan HiZ. I nie wiem czego się obawiasz jeśli chodzi o SCK i MOSI podłączonych do drivera LED noż to przecież są WEJŚCIA a więc też masz tam stan HiZ. O jakich ty problemach tu mówisz ???

Właśnie tego się nie obawiam od początku tego tematu. Cały czas piszę o problemie pomiędzy programatorem a procesorem ale jeśli jest HiZ to OK. Ktoś tam jeszcze pisał o mikrosekundach zanim programator wejdzie w stan HiZ - to mnie dodatkowo zaniepokoiło, ale przecież zanim procek wstanie to miną dziesiątki minisekund.
Teraz już wiem,dziękuje.

_________________
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 14:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 sie 2013
Posty: 44
Lokalizacja: RFN
Zbananowany użytkownik

Pomógł: 2

Przy wchodzeniu w tryb programowania za pomocą ISP, czyli podawaniu RESET na procesor jest klucz SCK=0 - trzeba podać krótko stan niski. Procesor nie reaguje od razu na RESET - jego reakcja może trwać nawet kilka mikrosekund, zanim zostaną odłączone porty. Jeżeli tak się głupio złoży, że programator wchodzi w tryb programowania i podaje wg zaleceń dokumentacji stan niski na SCK a procesor jest akurat w trybie master, nadaje na porcie SPI i podaje akurat stan wysoki na SCK, to teoretycznie w tym momencie jest ten konflikt poziomów logicznych. Trudno powiedzieć jaki programator w jaki sposób się tej zalecanej procedury trzyma i na ile są jego wyjścia zabezpieczone - prawdopodobnie większość temu podoła, ale może nie wszystkie. Poniżej zrzuty z dokumentacji:

Obrazek

Obrazek

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 14:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sie 2012
Posty: 245
Lokalizacja: Kielce
Pomógł: 6

Grzegorz napisał(a):
Przy wchodzeniu w tryb programowania za pomocą ISP, czyli podawaniu RESET na procesor jest klucz SCK=0 - trzeba podać krótko stan niski. Procesor nie reaguje od razu na RESET - jego reakcja może trwać nawet kilka mikrosekund, zanim zostaną odłączone porty. Jeżeli tak się głupio złoży, że programator wchodzi w tryb programowania i podaje wg zaleceń dokumentacji stan niski na SCK a procesor jest akurat w trybie master, nadaje na porcie SPI i podaje akurat stan wysoki na SCK, to teoretycznie w tym momencie jest ten konflikt poziomów logicznych. Trudno powiedzieć jaki programator w jaki sposób się tej zalecanej procedury trzyma i na ile są jego wyjścia zabezpieczone - prawdopodobnie większość temu podoła, ale może nie wszystkie. Poniżej zrzuty z dokumentacji:

Obrazek

Obrazek

Obrazek


Czyli ten problem rozwiązał by rezystor ok 300 ohm? Ale wystarczy na MOSI i SCK.

_________________
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 15:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 sie 2013
Posty: 44
Lokalizacja: RFN
Zbananowany użytkownik

Pomógł: 2

Wojtek001 napisał(a):
Czyli ten problem rozwiązał by rezystor ok 300 ohm? Ale wystarczy na MOSI i SCK.

Tak, dajesz sobie te dwa oporniki i śpisz spokojnie - oczywiście musisz zrobić próbę czy z tymi opornikami Ci programator programuje, bo masz inny niż ja. Jak już masz gotową płytkę, to przeważnie da się gdzieś przeciąć ścieżkę (jak jest odpowiednio gruba) i włożyć w to miejsce małego SMD. Ja mam opornik na każdej linii, bo ja dużo eksperymentuję, odpinam porty pod napięciem, wypinam USB od programtora, wyłączam napięcie na układzie a programator jest nadal podpięty i zasilany z USB itp. Ten mój programator to niby wszystko bezproblemowo znosi, nawet napięcie układu mierzy i automatycznie dopasowuje poziomy napięć na swoich pinach, wg dokumentacji, ale i tak dałem sobie oporniki.



Ostatnio edytowano 8 sie 2013, o 15:26 przez Grzegorz, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2013, o 15:25 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27346
Lokalizacja: Szczecin
Pomógł: 1041

Grzegorz napisał(a):
Jeżeli tak się głupio złoży, że programator wchodzi w tryb programowania i podaje wg zaleceń dokumentacji stan niski na SCK a procesor jest akurat w trybie master, nadaje na porcie SPI i podaje akurat stan wysoki na SCK, to teoretycznie w tym momencie jest ten konflikt poziomów logicznych


No i dokładnie tak się złoży w takim właśnie przypadku "NAJGORSZYM" że i tak NIC a NIC się nie stanie z pinami procka AVR. Tzn gdy nastąpi taki konflikt stanów pomiędzy WYJŚCIEM programatora wymuszającym np ZERO i WYJŚCIEM procka wymuszającym JEDYNKĘ. Oczywiście wszystko zależy jaką rezystancję wyjściową będzie miało WYJŚCIE programatora. Jeśli tym wyjściem będzie bezpośrednio pin ATmega8 w najprostszym USBASP to nie ma w ogóle o co się martwić i to nawet nie jeśli chodzi o te krótkie czasy pomiędzy reakcją na RESET. Ale nawet jeśli na dłużej taki stan się utrzyma to na oscylu będzie widać fajne uśrednione napięcie pomiędzy 0 a 5V. Ale ta średnia będzie zwykle walką pomiędzy rezystancją wyjścia jednego i drugiego pinu. W efekcie będą to stany nieustalone no i KLOPS z programowaniem procka.

W przypadku programowania NAWET zwarcie na siłę LINII ISP np do GND nadal nic się nie stanie jeśli to będą przebiegi jakieś tam czasowe, krótkie.

Za to na pewno kłopoty mogą się zacząć jak na SZTYWNO zewrzemy wyjście procka do GND gdy jest na nim stan wysoki albo do VCC gdy jest na nim stan NISKI. Czasem przecież i tak się (szczególnie na) stykówkach zdarza ;) .... Wtedy to już łut szczęścia/nieszczęscia no i czas tego zwarcia decydują czy pin/procek się upali czy nie upali.

------------------------ [ Dodano po: kilkunastu sekundach ]

Grzegorz napisał(a):
Tak, dajesz sobie te dwa oporniki i śpisz spokojnie


I też się zgodzę - że gdy kiedykolwiek nie czujemy się pewnie to jak najbardziej - zawsze można dać szeregowo te rezystory ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO