problemy s HW SPI

Tak sa problem nasiel.

Pre informovanost sirokej verejnosti uvadzam ze,
nejde o problem s optimalizaciu, v tomto smere sa na C nepravom hadzu hromy blesky (casovanie sa musi principialne robit inak :slight_smile: ).

Cely problem je v tom, ze /SS MUSI byt aspon na chvilu po restarte v log.1 pred tym ako bude prepnuty na vystup, aby SPI pracoval podla ocakavania. Da sa to dosiahnut aj dvojitym nastavenim na vystup, ale to treba odlaborovat. Potom je mozne s /SS cvicit ako s vystupnou nozickou do lubovole. A o tom, ake ma dosledky /SS ako IN pre SPI v rezime MASTER je napisane v datasheete.
Vymysleli to tak asi preto, aby cez SPI mohlo k jednej Flash prisupovat viac procesorov, co sa moze niekedy hodit, napriklad ak dva procaky komunikuju s jednou MMC kartou, alebo si cez SPI FRAM odovzdavaju haldy parametrov a ich priama komunikacia nie je priliz vhodna.

Len chcem podotknut, ze ak je /SS ako vstup a nastane zapis do vystupneho registra pocas urovne /SS v log.0 a nasledne po zapise nadobudne /SS hodnotu log.1, bajt sa z bufera automaticky neodvysiela. Treba si dat na to pri takychto aplikaciach bacha a nespoliehat sa iba na testovanie bitu SPIF, lebo to nie je ucinne a program sa tam moze krasne zaseknut (odskusane).

Myslim, ze ak sa navrhne HW tak, ze je /SS ako vystupny (napr. ako nejaky /CS) a ma odpor o 5V, s hore uvedenymi problemami sa nestretnete a vsetko bude spolahlivo fungovat.

Martin