Problem z SPI
Problem z SPI
Witam,
mam pewien układzik który ma komunikować się z uC poprzez SPI. Wszystko po podłączałem i pojawił się problem. uC odbiera jakieś różne dziwne rzeczy. Po wysłaniu dwóch bajtów pod 2 kolejne adresy a następnie odczytywaniu ich w kółko na wyświetlaczy (podłączonym do mikroprocesora) pokazują się poza prawidłowymi wartościami również nieprawidłowe, wartości cały czas się zmieniają. Nie mam pojęcia, co może stanowić problem. Używam sprzętowego SPI i kodu który na 99% działa, układ jest złożony na płytce stykowej. Jedyne przypuszczenia takie mam to zakłócenia, ale żeby aż takie?
Pozdrawiam
DarkJarek
[ Dodano: 2009-04-14, 19:49 ]
Uporałem się częściowo z problemem. Okazało się, że problemy były związane z nóżkami które zostawiłem w powietrzu (dokładnie to chyba 1 nóżka). Ale pozostał pewien problem. Owe nóżki zostały podłączone do masy, mimo to problem nie znikł dopóki nie przytknąłem do tejże nóżki kabla podłączonego do masy przy stabilizatorze (czym dalej od stabilizatora tym pojawiały się częstsze przekłamania). Zauważyłem również, że problem występuje tylko w najstarszym bicie, wartości mniejsze od 0x80 przechodzą bez problemu. SPI taktowane jest zegarem 5MHz(20MHz z preskalerem 4).
mam pewien układzik który ma komunikować się z uC poprzez SPI. Wszystko po podłączałem i pojawił się problem. uC odbiera jakieś różne dziwne rzeczy. Po wysłaniu dwóch bajtów pod 2 kolejne adresy a następnie odczytywaniu ich w kółko na wyświetlaczy (podłączonym do mikroprocesora) pokazują się poza prawidłowymi wartościami również nieprawidłowe, wartości cały czas się zmieniają. Nie mam pojęcia, co może stanowić problem. Używam sprzętowego SPI i kodu który na 99% działa, układ jest złożony na płytce stykowej. Jedyne przypuszczenia takie mam to zakłócenia, ale żeby aż takie?
Pozdrawiam
DarkJarek
[ Dodano: 2009-04-14, 19:49 ]
Uporałem się częściowo z problemem. Okazało się, że problemy były związane z nóżkami które zostawiłem w powietrzu (dokładnie to chyba 1 nóżka). Ale pozostał pewien problem. Owe nóżki zostały podłączone do masy, mimo to problem nie znikł dopóki nie przytknąłem do tejże nóżki kabla podłączonego do masy przy stabilizatorze (czym dalej od stabilizatora tym pojawiały się częstsze przekłamania). Zauważyłem również, że problem występuje tylko w najstarszym bicie, wartości mniejsze od 0x80 przechodzą bez problemu. SPI taktowane jest zegarem 5MHz(20MHz z preskalerem 4).
Witaj.
Niestety nie potrafię odpowiedzieć Ci dlaczego tak jest, ale należy przyjąć że wiszące nóżki procesora to źródło zakłuceń.
Mam natomiast prośbę czy mógłbyś poradzić jak rozwiązać komunikację między dwoma mikroprocesorami Atmega8 tak aby w określonej chwili przez Mastera, Slave wysłał 2 bajtową zmienną i została ona prawidłowo odebrana po czym wykonywał dalej swój program główny. Dzięki za zrozumienie.
Niestety nie potrafię odpowiedzieć Ci dlaczego tak jest, ale należy przyjąć że wiszące nóżki procesora to źródło zakłuceń.
Mam natomiast prośbę czy mógłbyś poradzić jak rozwiązać komunikację między dwoma mikroprocesorami Atmega8 tak aby w określonej chwili przez Mastera, Slave wysłał 2 bajtową zmienną i została ona prawidłowo odebrana po czym wykonywał dalej swój program główny. Dzięki za zrozumienie.
Sprawa wygląda dość dziwnie. Zasilacz który był podłączony do układu strasznie się grzał i po czasie przestał wyrabiać, musiał się ostudzić i tak w kółko. Podłączyłem więc układ do zasilacza ATX co eliminowało problem mocy, po dołożeniu jeszcze kilku kondensatorów układ o dziwo zaczął działać normalnie bez żadnych dodatkowych przewodów ale po pewnym czasie problem powrócił. Tylko tym razem jakby było mniej zakłóceń. Ale podejrzewam, że jak zaprojektuje końcową płytkę to wszystko powinno już działać bez problemu.
Zasilacz AT nie może pracować bez obciążenia, natomiast ATX może, jednak nie powinien.
Jeśli masz możliwość, to obciąż każdą linie (każde napięcie wyjściowe) obciążeniem rezystancyjnym (na żarówki po kilka watów, na odpowiednie napięcia).
Obciążenie nie zmniejszy tętnień, natomiast powinno pomóc na szpilki i nierówne obciążenie poszczególnych napięć.
Jeśli masz możliwość, to obciąż każdą linie (każde napięcie wyjściowe) obciążeniem rezystancyjnym (na żarówki po kilka watów, na odpowiednie napięcia).
Obciążenie nie zmniejszy tętnień, natomiast powinno pomóc na szpilki i nierówne obciążenie poszczególnych napięć.
Zasada działania zasilacza impulsowego jest taka, że generuje on impulsy wtedy, gdy są potrzebne (spadek napięcia).
Wiele zasilaczy może pracować bez obciążenia, lecz niektóre typu AT nie będą się zachowywać poprawnie, jeśli prąd odciążenia będzie zerowy (kondensatory filtrujące bez upływu i odłączenie wiatraczka gdy zasilacz jest zimny), gdyż wtedy tracą stabilizację napięcia wyjściowego.
innym ważnym czynnikiem poprawności pracy zasilacza jest poprawna stabilizacja napięcia. Przy różnym obciążeniu wyjść jedno napięcie będzie napięcie będzie poprawne, a inne nie będą się mieścić w zakresie tolerancji.
Niektóre zasilacze pilnują tylko jednego wyjścia (zwykle 5V), inne wyłączają się gdy po korekcie pilnowanego napięcia inne wyjdzie poza dopuszczalny zakres.
Wiele zasilaczy może pracować bez obciążenia, lecz niektóre typu AT nie będą się zachowywać poprawnie, jeśli prąd odciążenia będzie zerowy (kondensatory filtrujące bez upływu i odłączenie wiatraczka gdy zasilacz jest zimny), gdyż wtedy tracą stabilizację napięcia wyjściowego.
innym ważnym czynnikiem poprawności pracy zasilacza jest poprawna stabilizacja napięcia. Przy różnym obciążeniu wyjść jedno napięcie będzie napięcie będzie poprawne, a inne nie będą się mieścić w zakresie tolerancji.
Niektóre zasilacze pilnują tylko jednego wyjścia (zwykle 5V), inne wyłączają się gdy po korekcie pilnowanego napięcia inne wyjdzie poza dopuszczalny zakres.
- joon
- Użytkownik
- Posty: 2076
- Rejestracja: 30 cze 2007, 22:56
- Lokalizacja: Kraków, Przemyśl, Warszawa
- Kontakt:
1:Nawet najstarsze zasilacze mają zbocznikowane wyjścia rezystorami do masyM@rek pisze:Zasada działania zasilacza impulsowego jest taka, że generuje on impulsy wtedy, gdy są potrzebne (spadek napięcia).
Wiele zasilaczy może pracować bez obciążenia, lecz niektóre typu AT nie będą się zachowywać poprawnie, jeśli prąd odciążenia będzie zerowy (kondensatory filtrujące bez upływu i odłączenie wiatraczka gdy zasilacz jest zimny), gdyż wtedy tracą stabilizację napięcia wyjściowego.
innym ważnym czynnikiem poprawności pracy zasilacza jest poprawna stabilizacja napięcia. Przy różnym obciążeniu wyjść jedno napięcie będzie napięcie będzie poprawne, a inne nie będą się mieścić w zakresie tolerancji.
Niektóre zasilacze pilnują tylko jednego wyjścia (zwykle 5V), inne wyłączają się gdy po korekcie pilnowanego napięcia inne wyjdzie poza dopuszczalny zakres.
2:99% zasilaczy sprawdza jedynie poprawność na linii 5V
3:Jeśli już obciążać to po co wszystkie linie? I po co żarówkami jak wystarczy rezystor 2R o mocy 2-5W?
4: Trochę OT zrobił się w tym temacie..
5: Jeśli musisz już uruchomiany układ zasilać z ATXa, to rób to przez linie 12V plus stabilizator 7805, wyeliminujesz w ten sposób potencjalne zakłócenia
Tak właśnie zrobiłem, przy czym stabilizator wydziela spore ilości ciepła po chwili działania układu. Na +5 w zasilaczu było coś koło 5.3V bez obciążenia co było wartością za dużą z uwagi na to, że uC komunikuje się z układem zasilanym z 3.3V. W tej chili mam chyba 4.92 co mnie zadowala.joon pisze: 5: Jeśli musisz już uruchomiany układ zasilać z ATXa, to rób to przez linie 12V plus stabilizator 7805, wyeliminujesz w ten sposób potencjalne zakłócenia
Zasilacza ATX musiałem użyć z uwagi na brak innego źródła zasilania o odpowiedniej mocy.
Ostatnio zmieniony 24 kwie 2009, 23:11 przez DarkJarek, łącznie zmieniany 1 raz.
Zauważyłem ciekawą rzecz, czym lepsze jest połączenie układu z masą tym mniejsze są zakłócenia. W związku z tym mam pytanie czy problemem może być to, że układ jest podłączony do zasilania cienkimi kabelkami ze skrętki, podczas gdy pobiera on około 200mA przy 5V ?
Jako, że obraz mówi więcej niż 1000 słów więc zamieszczam zdjęcie z opisem, może to coś pomoże.
http://img209.imageshack.us/img209/5465/20090428217.jpg
Jako, że obraz mówi więcej niż 1000 słów więc zamieszczam zdjęcie z opisem, może to coś pomoże.
http://img209.imageshack.us/img209/5465/20090428217.jpg
Re: Problem z SPI
To zdanie w połączeniu ze zdjęciem które zamieściłeś sprawia, że w ogóle nie jestem zdziwiony że to nie działaDarkJarek pisze:SPI taktowane jest zegarem 5MHz(20MHz z preskalerem 4).