Hi, ich habe 2 Boards auf denen sich jeweils ein ADuC831 befindet. Ich möchte diese µC nun zu Testzwecken miteinander mit dem SPI Bus verbinden. Da es mein erstes Projekt mit dem SPI Bus ist, möchte ich nun noch einige Fragen klären: - MISO und MISO gehören verbunden, nicht MISO und MOSI, oder? - MOSI und MOSI gehören verbunden, nicht MISO und MOSI, oder? - wohin mit dem SS? Soll ich beim Master irgendeinen Port nehmen? und beim Slave? - hätte irgendeiner vielleicht eine fertige SPI Routine (senden / empfangen) in C? Danke und liebe Grüße, christian
- MISO und MISO gehören verbunden, nicht MISO und MOSI, oder? - MOSI und MOSI gehören verbunden, nicht MISO und MOSI, oder? MasterInSlaveOut -> Master Eingang kommt an den Ausgang vom Slave MasterOutSlaveIn -> Master Ausgang kommt an den Eingang vom Slave - wohin mit dem SS? Soll ich beim Master irgendeinen Port nehmen? und beim Slave? Der SlaveSelect sorgt dafür,das der Slave aktiv wird.Wenn der Master den nicht setzt (bzw. setzt falls Low-Aktiv SS/),darf der Slave nix machen. Damit benötigt dann der Master jeweils ein Portpin pro Slave.Ob der SlaveSelect bei deinem Controller per Hardware gesteuert werden kann,weiß ich jetzt nicht.Ein normaler I/O tut es jedenfalls auch. Wenn es nur einen Slave gibt,kann der Master diesen auch dauerhaft aktiv halten. (Also SS per Pull-Down auf Low (SS/) oder High (SS) halten) - hätte irgendeiner vielleicht eine fertige SPI Routine (senden / empfangen) in C? Ohne mich mit dem Controller jetzt zu beschäftigen: Wahrscheinlich hat AnalogDevices für das Ding irgendwo ein paar Application Notes wo dann sicher auch Code-Schnipsel beiliegen. Nebenbei: Ich vermisse die Frage, welche Bedeutung das Signal Clk hat bzw wo das bei mehreren Slaves hingehört,wer den Takt erzeugt,etc .Schau dir vielleicht mal z.b. bei Wikipedia das Prinzip der SPI bzw. von synchronen seriellen Bussen generell an.
hi ronny, danke für deine antworten! den Clk habe ich schon verstanden, ist ja eigentlich immer gleich ;) bei AnalogDevices habe ich nur SPI-Bus Beispiele in Assembler gefunden. Ich bin ein "gelernter" C-Programmierer, also wäre ein C-Beispiel schon sehr hilfreich. Lg flo
so, ich habe den SPI Bus nun schon ziemlich gut hinbekommen ;) für die Codeoptimierung möchte ich nun aber den SPI-Interrupt benutzen. Wie kann ich den bei c einstellen? Interuptregister sind gesetzt und ich weiß, dass der Interruptvektor auf die Stelle 3Bh zeigt. in den Codebeispielen die ich gefunden habe (leider nicht von Analog Devices, sonst würden wohl die ganzen Fragen nicht aufkommen) steht "void it_SPI(void) interrupt 9" aber in diesen interrupt springt der µC nicht. lg flo
gelöst. war einfach zu blöd dazu. sorry ;) ich hoffe ich kann mich mit weiteren problemen an euch wenden!
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.