Napisałem prosty kod i wszystko na to wygląda, że SPI działa:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
------------------------ [ Dodano po: 55 minutach ]Zealota napisał(a):
Widzę, że kod zaczerpnięty z poradnika Szczywronka i powinien być poprawny przy wysyłaniu.
Skądś trzeba czerpac wiedze
Zealota napisał(a):
Przed chwilą sprawdziłem na BluePill i u mnie działa wysyłanie poprzez spi_write().
Z tego wynika, że musisz mieć zwarcie na linii MOSI i dlatego cały czas ten sam stan. Nie można też wykluczyć uszkodzenia pinu mikrokontrolera, ale zacząłbym od sprawdzenia połączeń oraz modułu SD, jeśli to moduł.
Teraz sprawdziłęm jeszcze raz stykówkę i okazało się, że miałem odwrotnie podpięte piny MISO i MOSI w samym chińskim analizatorze "saleae". Grafika z pierwszego postu powinna wyglądać następująco (A więc na MOSI pojawia się wartość 0xFF) Jutro ( a właściwie dzisiaj rano) podepnę oscyloskop to dokładniej zobacze przebiegi bo ten analizator coś oszukuje.

Zealota napisał(a):
Ciekawe też jak realizujesz podciąganie dla linii MISO, w module od Atnela do SD, jeśli dobrze pamiętam, były zewnętrzne rezystory.
Rzuciłem teraz okiem na płytkę ATB to nie zauważyłem tam żadnego rezystora:

A ja korzystam z chińskiej przejściówki.

Aczkolwiek podłączałem czytnik z płytki ATB i był taki sam efekt - czyli karta nie przechodziła inicjalizacji.
Zealota napisał(a):
Niestety do odbierania możesz mieć kłopot, bo funkcja gpio_pin_cfg jest w poradniku niepoprawnie, źle ustawia podciąganie dla pinu jako wejścia, tak wygląda poprawna:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Dzięki za korektę

Jak znalazłes ten błąd i co oznacza zapis:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.