ATmega128 i SPI

Wiem, wiem :) Miałem czytać manuala. No i czytałem. Już cały rozdział o SPI przeczytałem i nic :| Problem wygląda tak: mam układ w postaci łańcucha '595 (12 sztuk). Aby było łatwo, przyjemnie i szybko chcę go zaprogramowywac poprzez SPI. No łatwo to nie jest, przyjemnie nie wiem a czy szybko to mam nadzieje że się kiedyś dowiem. Jakkolwiek nie spróbuję skonfigurować SPI, to mi to ustrojstwo nie działa :/ Najpierw próbowałem poprzez klasyczną komendę Bascoma "Config SPI". Wałkowałem ją na wszelkie sposoby (chyba) i nic. Później spróbowałem przerobić przykład w postaci kodu asemblera z manuala. Też nic. Już nie wiem co począć, drugi dzień się z tym męczę (wiem, dla niektórych to mało :)) i nie wiem co począć. Dodam tylko że układ który ma być zaprogramowany działa, bo gdy ręcznie podawałem stany na poszczególne linie sterujące to mi sie wszystki '595 ładnie i posłusznie ustawiały. Za wszelką pomoc (np. w postaci działajacego kodu konfiguracji w bascomie :P) serdecznie dziękuję :)

Reply to
Mateusz Majchrzycki
Loading thread data ...

Pewnego dnia QmX snipped-for-privacy@interia.pl nastukał(a):

No żadne nadzwyczajne: ATmega '595 SCK (PB1) SH_CP MOSI (PB2) Ds PA7 /OE PA6 ST_CP PA5 /MR Liniami SCK i MOSI powinien sterować SPI, liniami PA7,6,5 steruję już ręcznie (wykasowanie wszystkich '595 na dzień dobry oraz wyrzucenie zawartości rejestrów '595 na wyjścia po zakończeniu transmisji).

Reply to
Mateusz Majchrzycki

Pewnego dnia QmX snipped-for-privacy@interia.pl nastukał(a):

No własnie. Wygląda, ale nie działa :/

No wszystkie 4 kombinacje przetestowałem i nic :/ A czy to normalne że na linii SCK mam -0,2V a na MOSI -0,6V?

Reply to
Mateusz Majchrzycki

wzgledem czego? masy? Skąd? Względem Vcc to moż być...

Reply to
Marek Lewandowski

Multimetr kłamie. Sprawdź oscyloskopem.

Reply to
Adam Dybkowski

Pewnego dnia Adam Dybkowski snipped-for-privacy@amwaw.edu.pl> nastukał(a):

Może i kłamie, ale oscyloskopu pod ręką niestety nie mam :( Ale jest jeszcze jedna sprawa. Gdy na tych samych dwóch pinach (czyli pb1 i pb2) zasymuluję sobie programowo ISP (ręczne zadawanie stanów i zegara) to wszysto ładnie działa. Czyli porty uszkodzone nie są. Tu jest kwestia czegoś innego... Tylko czego? :/

Reply to
Mateusz Majchrzycki

Pewnego dnia Marek Lewandowski snipped-for-privacy@onet.pl nastukał(a):

No właśnie się przyjżałem jeszcze raz i rzeczywiście, mierzyłem przez przypadek względem Vcc. Ale to i tak nie zmienia faktu ze coś nie działa :/ Już chyba wszystko przetestowałem i nic :/

Reply to
Mateusz Majchrzycki

Pewnego dnia QmX snipped-for-privacy@interia.pl nastukał(a):

A to ciekawe :D

Szczerze mówiąc nie mam pojęcia. Pisząc w Bascomie ejstem raczej zdany na jego łaskę i niełaskę. Ale spróbuję jeszcze sie pobawić ze wstawkami asemblerowymi. Moze konfiguracja przy ich pomocy coś da?

No własnie kod z przykładu zerżnąłem raz (z małymi poprawkami), ale i tak nie działało :/

Reply to
Mateusz Majchrzycki

Pewnego dnia Mateusz Majchrzycki snipped-for-privacy@spam.spam nastukał(a):

Nie wiem jak, ale w końcu zadziałało. Dla potomnych przedstawiam metode jak to zrealizowałem (niestety bascomowe config spi nie działa):

--------kod---------- $regfile = "m128def.dat" Config Portb = &B11110111 'Ustawiamy cały port b jako wyjście, a PB.3 (czli MISO) jako we. Portb = &B11111000 'SCK, MOSI i /SS ustawiamy na 0, resztę n 1. Spcr = &B01010011 'ustawiamy sobie rejestr kontrolny SPI

--------koniec-kodu------

Później aby coś wysłać robimy:

------kod-------- Spdr = do_wyslania 'do rejestru spdr zapisujemy bajt do wysłania $asm Wt1: sbis Spsr,Spif rjmp wt1 $end Asm 'i sobie czkamy na ustawienie SPIF (czyli na zakończenie transmisji)

----koniec-kodu--------

Tak się teraz zastanawiam czym to się różni od tego co robi Config Spi :/ Moze jak sie będę nudził to porównam. Ważne że działa i to się liczy :P

Reply to
Mateusz Majchrzycki

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.