SPI mezi dvěma mikrořadičů

U

UroBoros

Guest
Dělám kód pro komunikaci mezi dvěma 18F452s jednoho pána a jednoho otroka. paketu je 25 byte délka. Je založen přerušit. k výměně dat jediná věc, co potřebuji udělat, je nahrát první bajt mi 25 bajtové pole. Zbytek bude automaticky provedeno v přerušení SPI. 25 bytů je landiing bezpečně na otrok straně od master. Ale hlavní je dostat jen ozvěnu toho, co je poslat. pokud je obdržel byte byly vytaženy na přerušení v otrok, jsem načítání byte se poslat SSBUF. Ale zdá se, že se není přijat k odeslání. Myslím, že jsem chybí nějaký aspekt SPI. Díky
 
Se vám daří problém při čtení otroka? Myslím, že bez pochopení protokol nemohu odpovědět, tak prosím komplikovaný. Na zdraví, Akhil Kumar
 
Není jasné, co se snažíte udělat, nebo co jste očekávali. Říkáte, že data dorazí na otroka, což znamená, že 1) hostitel odesílá data správně, a 2) Otrok je přijímá data správně. Jaký je váš problém? Co myslíš tím "pán je stále jen ozvěnu". Je otrokem své vysílací přijatá data zpátky do hostitele? Je to to, co chcete dělat otroka?
 
Ok. Jsem podrobně. Master je zaslání 25 bajtů správně a slave přijímá správně. Tato část je v pořádku. Ale vracím se stejné množství dat, což je 25 bytů od slave zařízení k masteru ve stejném odkazu. (Současně jako hlavní odeslání). tj. na otrok přerušení, poté, co dostal jeden bajt od pána, já jsem SSPBUF nakládání s bytem pro master.It by měla dosáhnout pána kapitána vysílající další byte. (Něco špatného s mým předpokladem,?). Že návrat náklad není přijímána v pána. To je můj problém. Díky za váš čas
 
1) Používáte přerušení na MASTER určit, kdy obdrží data? Se, že přerušení povoleno? 2) Jste žádná data, nebo poškození dat na pána? 3) Už jste se podíval na své signály s osciloskopem ověřit otrok je vlastně odesílání dat? 4) Je třeba se ujistit, že máme data seřadily správně a máte vaše konfigurace nastavení registrů správně. Nejsem si zcela jasné, jak tento čip zvládá to, ale vypadá to, že používá SSPBUF jak odeslaných a přijatých dat, takže budete potřebovat nějaký způsob, jak zajistit, že nejste zápis dat do SSPBUF ve stejné době, kdy obdržel probíhá přenos dat do toho.
 
1. Ano. na přerušení jednoho byte dokončení, jsem načítání další bajt do všech 25 je pryč! 2.I jsem přijímá data ve správném pořadí. Ne nekazí, ale místo načítání dat z uložení, co je obdržel, je stejná data poslat otroka. To je, i když je SSPBF vložen otroka, není přijat. tak to vypadá. 3.Not zkoušel rozsahu dosud. 4.Data se postavili správně. SSPBUF je dvojité vyrovnávací paměti. Beru údaje na Slave (který je, jak se očekávalo) a okamžitě porovnat SSPBUF jako užitečného zatížení pro další převod z otroka. Ale to není "přijmout", nebo to tak alespoň vypadá. Ať už tam, se vrací. Díky
 
Jsem připájené pullup rezistory k datům a hodiny linky. To je v pořádku nyní. Ale ještě jeden problém. Začnu-li obě z nich (MCU) dohromady. Vše v pořádku. Pokud jsem resetovat pána, a pak otroka dat nedosáhne pána. Pak jsem třeba obnovit otroka také. Pak zase vše OK. Slave obnovit žádný problém, ale pokud mám resetovat pána, pak otrok by měl být také obnovit. Bude vypadat do toho. Ale zatím ok pro tento účel. Díky
 

Welcome to EDABoard.com

Sponsor

Back
Top