Senden empfangen über SPI

Gast #3878900
Lesenswert?

Guten Tag,
Ich möchte seit Tagen eine 32 bit frame über SPI zu einem Sensor senden 
und empfangen. Ich habe das über den CAN Bus schon geschafft. Leider 
wenn ich jetzt die 32 bit frame über die SPI sende bekomme ich immer die 
gleiche Antwort F8 80 00 03 (auch wenn ich unterschiedliche Frame 
sende). Meine frame sende ich über ein Input in meiner 
Benutzeroberfläche. Also ich habe noch keine Funktion implementiert und 
weiß auch nicht wie ich überhaupt anfangen soll. Das ganze möchte ich in 
CAPL schreiben.
Kann mir bitte jemand weiterhelfen?
Ich freue mich auf eure Antwort und vielen Dank für eure Hilfe.
Gast #3878919
Lesenswert?

Mein Code sieht bis jetzt so aus

void Send_SPI32 (byte BUSADR, byte ADR, word DATA, byte CRC)
{

    message  0x100 message_out;
    Byte Output_Array[4];
    int i;

    message_out.DLC = 4;

    message_out.CAN = 1;

    Output_Array[0] = CRC;
    Output_Array[1] = DATA;
    Output_Array[2] = DATA >> 8;
    Output_Array[3] = BUSADR;

    For(i = 0; i<4 ; i++)
    {
        message_out.Byte(i) = Output_Array[i];
    }
    output(message_out);
}

Es gibt dann 2 Controller, eins ist im Sensor eingebaut (Cortex-M0) und 
der zweite ist der der Renesas (Renesas r8c).
Gast #3879000
Lesenswert?

Wie kommt man denn von CANanalyzer/CANOE auf den SPI?
Um jemanden zu finden der sich damit auskennt wäre auf jeden Fall 
hilfreich zu beschreiben, auf welcher Hardware das überhaupt passieren 
soll.
Gast #3879209
Lesenswert?

mit einem Signal Umwandler kommt man von den CAN zu SPI.
Also wie schon erwähnt das soll auf einem Sensor passieren. In dem 
Sensor drin ist der microcontroller Cortex M0 eingebaut! Der Signal 
umwandler enthält auch ein microcontroller renesas r8c.
Es sollen aus dem Sensor Daten ausgelesen werden und auch geschrieben 
werden das ist das Ziel.
Danke

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren