Hallo miteinander, ich bin dabei an mein LPC2148 Board von Olimex den Max7219 über SPI0 anzuschließen. Irgendwie ist das aber ein wenig merkwürdig, da ich zwar ein Zeichen über die SPI schicken kann, dann aber auf dem Max nichts angezeigt wird. Schicke ich das Zeichen 2 mal, dann steht es plötzlich da. Etwas genauer untersucht ergab sich, dass es ausreichend ist, wenn man mit dem Tastkopf einfach mal den CS des Max antippt, dann wird plötzlich das Zeichen ausgegeben. Es ist also immer nur das letzte Zeichen das nicht mehr ausgegeben wird. Schicke ich mehrere hintereinander, geht es (bis auf das Letzte halt). Die Initialisierung ist in Ordnung, wenn er den was anzeigt, ist dies richtig. Hat jemand ne Idee woran das liegt, und vieleicht auch noch nen Tip, wie man das beheben könnte. Schönes Wochenende, botro.
"Etwas genauer untersucht ergab sich, dass es ausreichend ist, wenn man mit dem Tastkopf einfach mal den CS des Max antippt, dann wird plötzlich das Zeichen ausgegeben." Dann hast Du vergessen, den Pin zum CS als Ausgang zu definieren und er floatet frölich vor sich hin. Peter
Hallo Peter, danke für die Antwort. Vergessen habe ich das nicht, aber es hätte durchaus eine Ursache sein können. Inszwischen geht es übrigens, auch wenn ich mir noch nicht 100% klar bin wieso. Scheinbar ist der max ein wenig zu langsam, denn wenn ich nach dem Rausschieben der Bits, nachdem das SPIF-Flag gesetzt wurde, einen kleinen Moment warte und dann erst CS auf High setzte, dann werden die Daten ordentlich übernommen. Warte ich nicht, geht es nicht. Dabei scheint die notwendige Wartezeit nur sehr gering zu sein. Ich habe eine for-Schleife eingebaut, die aber nur einmal angesprungen wird, das reicht schon aus. Laut Datenblatt vom max steht da zwar nix von einer notwendigen Zeit zwischem letzten Bit und CS auf high, aber nunja, es geht ja jetzt. gruß botro
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.