SPI, dwa MSP430 i straszny problem!

Dec 05, 2003 4 Replies

Witam,



Mam straszny problem z komunikacja miedzy procesorowa po SPI, sprawa dotyczy procesorów MSP430F149 i MSP430F1232. F149 skonfigurowany jest jako master i jest najwazniejszym elementem calego ukladu, F1232 pracuje jako slave i ma za zadanie reagowac i odpowiadac na pytania tego pierwszego.



Je¶li chodzi o transmisje F149 -> F1232 czyli master->slave, wszystko pieknie pracuje, natomiast problem powstaje gdy slave ma wyslac cos do mastera. Otó¿ albo niewysyla, albo wysyla tylko czê¶æ. Dlaczeo tak sie dzieje? Siedze juz nad tym tydzien czasu i kombinowalem na rozne sposoby i nic ;-(



Moze jest kto¶ komu udalo sie cos podobnego wykombinowac.



Aha. My¶lalem ze mo¿na to zrobic w ten sposob: F149(master) -> dane -> F1232(slave) nastepnie F149 przelacza sie w tryb slave a F1232 w tryb master: F149(slave) <- dane <- F1232(master) i znowu przelaczenie, F149 master, F1232 slave i uklady s± gotowe do kolejnej rozmowy.



W teorii wyglada to pieknie, natomiast kompletnie nie dziala w praktyce, mo¿liwe ze cos zle robilem, tj jestem pewien ze co¶ zle robilem skoro ten sposob z przelaczaniem trybow nie zadzialal.



Kto¶ chêtny do pomocy?



Pozdrawiam Krzysiek



Pewnego piêknego dnia Krzysztof Gawry¶ przemówi³(a) ludzkim g³osem:

To tylko lu¼na my¶l, ale mo¿e F149 powinien odpytywaæ co jaki¶ czas czy F1232 nie ma nic do przekazania, albo F1232 móg³by osobn± lini± informowaæ, ¿e ma ochotê na konwersacjê, wtedy nie trzeba by by³o kombinowaæ z prze³±czaniem master<->slave.

Dobry pomysl, ale juz sobie poradzilem z problemem :-) A pozatym to master ma wa¿niejsze sprawy w core ni¿ pytaæ niewolnika oto czy ten przypadkiem cos niechce powiedziec, niewolnik nie ma prawa odpowiadac "kiedy mu sie chce", ma odpowiadac odrazu ;-D

Wystarczy³o zmieniæ 99,9% kodu i zacze³o dzia³ac :-) Oczywi¶cie ¿artuje. Ale problem by³ w tym ¿e strona slave SPI do poprawnego nadawania potrzebuje sygna³u segarowego, który jest przeciez generowany przez strone master.

Tak czy siak, strasznie zakrecona sprawa. Dzia³a mi to teraz tak na s³owo honoru ;-] ale my¶le ze jeszcze z 24h wa³kowania i bedzie GLANC ;-)

Pozdrawiam Krzysiek

potrzebuje

A poza tym SPI posiada 3 linie MISO i SIMO i oczywi¶cie CLK wiêc jednocze¶nie nadawane s± dane z Master do Slave i z Slave do Master. Moim zdaniem niepotrzebnie probujesz znieniaæ rolê Maste - Slave w zale¿no¶ci od kierunku nadawanej informacji. Podejrzyj przep³yw rozkazów np. przy pod³±czeniu MSP i przetwornika ADS1240

formatting link
Istnieje mozliwo¶æ przesy³ania informacji do i z rejestrów przetwornika poprzez wys³anie kilku bajtów: 1 bajt kod rozkazu (identyfikowany przez Slave) i dalej dane w zalezno¶ci od rozkazu nadaje je przetwornik b±d¼ procesor. Dane id±ce w drug± stronê s± ignorowane.

Marek

Opamiêta³em siê i zrobi³em jak potrzeba, czyli bez zadnego przelaczania master slave. Natomiast o full duplex w tym ukladzie niema mowy, gdy¿ jest to mi tu kompletnie niepotrzebne do szczê¶cia. Narazie moje rozwi±zanie dzia³a poprawnie.

Pozdrawiam

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required