Skocz do zawartości

2x atmega, spi odbiera tylko jedną watrość "255"


Pomocna odpowiedź

Tak mam odłączony programator. Zasilanie czerpię z zasilacza 12v stabilizowanego na 5v. próbowałem już chyba wszystkiego ale taki mały szczegół może doprowadzić do nerwicy.

'config the SPI in master mode.The clock must be a quarter of the slave cpu

Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 128

To mnie zastanawia co napisał Sabre jak zegar ma być podzielony przez 4 ? >ja już próbowałem na wszystkie sposoby chyba. Mi to zawsze musi się tak coś na prawie koniec przydarzyć

Nie znam Bascoma i nie będę czarował z kodem, ale kilka prostych kroków do sukcesu:

1. Dokumentacja pewnie ma na myśli, że zegar SPI na masterze musi być 4x wolniejszy niż częstotliwość pracy slavea. Czyli jak slave ma 4MHz (stabilne - kwarc) to maksymalna prędkość SPI to 1MHz. Oczywiście slave softwareowy pewnie działa dużo, dużo wolniej...

2. Skoro masz błąd to zacznij sprawdzać wszystko krok po kroku.. zakładam, że nie masz oscyloskopu/analizatora logicznego, ale masz multimetr:

a) Napisz program na master, który nadaje cały czas liczbę 0x55 po SPI (czyli naprzemiennie bit "0" i "1")

b) Sprawdź miernikiem czy na pinie mastera SCLK jest 2,5V (skoro 50% czasu mamy 5.0V i 50% czasu mamy 0.0V to miernik to uśredni i da 2.5V... ) Jak nie masz SCLK to ewidentnie SPI nie działa wcale, albo masz źle ustawione piny

c) Sprawdź miernikiem pin MOSI. skoro nadajesz tak samo na przemian "0" i "1" miernik uśredni to do 2.5V. Jak nie to masz źle ustawione piny SPI (bo SCLK jest, więc SPI działa)

d) Jak master jest ogarnięty to dopiero wtedy podłącz slave do SPI. Jak samo SPI na slave działa, ale zawsze zwraca 255 to znaczy, że nie czyta z poprawnego portu.

PS. Oczywiście wszystkie testy rób z odłączonym programatorem... (odłączonym fizycznie a nie tylko od zasilania)

Powodzenia.

Wykonałem wszystko co napisał MirekCz i było coś nie tak z napięciami jakieś dziwne wartości . Zamówiłem nową atmegę i okazało się , że ta wcześniejsza była jakaś trafiona. Na nowej wszystko śmiga jak powinno.

Dzięki wszystkim za pomoc !!!

Temat zamknięty

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...