Hi, ich würde meinen R8C23 gerne mit der CAN Schnittstelle ansteuern. Die nötige Hardware (CAN Bustransceiver) ist schon aufgebaut jetzt hakt es nur noch an der Software... Habe leider vorher noch nicht mit CAN zu tun gehabt und mir deshalb erst mal eine Einführung in CAN von Renesas durchgelesen: http://documentation.renesas.com/doc/products/mpumcu/apn/rej05b0804_m16cap.pdf Dann habe ich noch ein AppNote bei Renesas gefunden, wo eine CAN API erklährt wird - dort werden einige Funktionen beschrieben die man für den Datenverkehr über die CAN Schnittstelle braucht: http://documentation.renesas.com/doc/products/mpumcu/apn/reu05b0063_mcuap.pdf Leider ist dort kein Code enthalten nur der Hinweis: "The demonstrations “Streaming A-D” and “Playcatch Net Test” for both R8C/M16C/M32C/R32C and SH RCAN-ET/TL MCUs are available and demonstrate usage of the API." Allerdings finde ich diese Beispiele bei Renesas nicht. Unabhängig davon scheint die Sache mit CAN ziemlich kompliziert zu sein - jedenfalls wenn man noch keine Ahnung davon hat. Ich glaube auch das mir eine simple Lösung genügen würde, denn mein CAN Bus bzw. das was ich damit vorhabe ist ziemlich simpel: Ein Datenaustausch zwischen zwei µC, wobei einer als Master fungiert und eine Anfrage an den anderen sendet. Nur auf diese Anfrage antwortet der zweite µC (er fängt also nicht von sich aus an zu reden). Jeder µC wartet immer solange ab, bis er ein komplettes Telegramm vom anderen bekommen hat. Wenn ein Übertragungsfehler auftritt, wird das Telegramm einfach verworfen. Wenn also µC A eine Anfrage an µC B sendet und es zu einem Übertragungsfehler kommt, dann antwortet µC B einfach nicht. Durch ein TimeOut stellt µC A dann fest das ein Problem vorliegt. Das ganze was ich gerade beschrieben habe läuft im Moment über RS485 - der Code dazu steht schon ich will jetzt nur auf CAN umsteigen. Ich habe also kein CAN Bus mit x Teilnehmern, brauche keine zig CAN Slots und auch keine Automatische Antworttelegramme oder Fehlerfunktionen usw.... Das ich mich an das CAN Telegrammformat mit ID, aribitrierung usw. halten muss ist mir auch klar, trotzdem denke ich das ich ein haufen davon was in den von mir genannten AppNotes steht garnicht brauche.... Also falls ihr schon mal was mit CAN gemacht habt würden mir einige Beispiele sicher weiterhelfen. Und bitte keine Fragen wie "warum brauchst du denn CAN dazu". Vielen Dank ;)
Hmm hier tut sich ja nich viel :( Für alle die sich auch für CAN interessieren, ich habe hier eine gute und leicht verständliche kleine Einführung gefunden. Wahrscheinlich wird hier zwar nur ein kleiner Teil beschrieben, aber wenn man keine Ahnung hat ist es sehr gut ;) http://www.thomas-wedemeyer.de/uploads/File/CAN.PDF
http://www.renesasrulz.com/docs/DOC-1698 CAN_UART_Bridge_R8C23.zip Gibts auch für viele andere Controller, ist aber nicht interruptgesteuert, wenn ich mich recht erinnere. Es gibt aber noch enige andere CAN-Beispiele, auch für R8C23, z.B. Flash-over-CAN. Google müsste das eigentlich alles ausspucken, bei richtiger Bedienung ;-)
Nachtrag: Die Beispiele die Du nicht gefunden hast sind wahrscheinlich auf der CD des Evaluation Board/RSK. Die sollte man hier runterladen können: http://www.renesas.eu/support/downloads/download_results/C2014101-C2014200/an_ree05b0018_r8c23_code_example.jsp Für das was Du vorhast ist aber das im vorherigen Post genannte Beispiel UART-Bridge recht nah dran. Glyn hatte mal recht günstige Dev-Boards mit R8C23, drauf sollte das mit evtl. kleineren Anpassungen auch laufen. Falls Du also kein USB-CAN Converter nebst Software hast könntest Du so mittels zwei dieser Boards und einem PC mit 2 RS232 (oder USB-RS232) deine CAN-Frames über Terminalprogramme hin und her schicken. Das wäre ein schöner Einstieg mit Testmöglichkeit für Deine spätere Anwendung.
Markus Wi*** schrieb: > Hi, > > ich würde meinen R8C23 gerne mit der CAN Schnittstelle ansteuern. Die > nötige Hardware (CAN Bustransceiver) ist schon aufgebaut jetzt hakt es > nur noch an der Software... > > Habe leider vorher noch nicht mit CAN zu tun gehabt und mir deshalb erst > mal eine Einführung in CAN von Renesas durchgelesen: > http://documentation.renesas.com/doc/products/mpumcu/apn/rej05b0804_m16cap.pdf > > > Dann habe ich noch ein AppNote bei Renesas gefunden, wo eine CAN API > erklährt wird - dort werden einige Funktionen beschrieben die man für > den Datenverkehr über die CAN Schnittstelle braucht: > http://documentation.renesas.com/doc/products/mpumcu/apn/reu05b0063_mcuap.pdf > > Leider ist dort kein Code enthalten nur der Hinweis: "The > demonstrations “Streaming A-D” and “Playcatch Net Test” for both > R8C/M16C/M32C/R32C and SH RCAN-ET/TL > MCUs are available and demonstrate usage of the API." > > Allerdings finde ich diese Beispiele bei Renesas nicht. > Hi, also ich kann dir für die Renesas Controller das Tool Applilet2 ans Herz legen. Das Tool ist selbst von Renesas und da kann man alle Einstellungen für den Controller vornehmen und sich den Code autoamtisch generieren lassen. Dann muss man ihn nur noch nach seinen Wünschen anpassen. Du kannst dann zum Beispiel auch nur den Teil der CAN API verwenden. Markus Wi*** schrieb: > Unabhängig davon scheint die Sache mit CAN ziemlich kompliziert zu sein > - jedenfalls wenn man noch keine Ahnung davon hat. Ich glaube auch das > mir eine simple Lösung genügen würde, denn mein CAN Bus bzw. das was ich > damit vorhabe ist ziemlich simpel: > > Ein Datenaustausch zwischen zwei µC, wobei einer als Master fungiert und > eine Anfrage an den anderen sendet. Nur auf diese Anfrage antwortet der > zweite µC (er fängt also nicht von sich aus an zu reden). > Jeder µC wartet immer solange ab, bis er ein komplettes Telegramm vom > anderen bekommen hat. Wenn ein Übertragungsfehler auftritt, wird das > Telegramm einfach verworfen. Wenn also µC A eine Anfrage an µC B sendet > und es zu einem Übertragungsfehler kommt, dann antwortet µC B einfach > nicht. Durch ein TimeOut stellt µC A dann fest das ein Problem vorliegt. > > Das ganze was ich gerade beschrieben habe läuft im Moment über RS485 - > der Code dazu steht schon ich will jetzt nur auf CAN umsteigen. > > > Ich habe also kein CAN Bus mit x Teilnehmern, brauche keine zig CAN > Slots und auch keine Automatische Antworttelegramme oder > Fehlerfunktionen usw.... > Das ich mich an das CAN Telegrammformat mit ID, aribitrierung usw. > halten muss ist mir auch klar, trotzdem denke ich das ich ein haufen > davon was in den von mir genannten AppNotes steht garnicht brauche.... > > Also falls ihr schon mal was mit CAN gemacht habt würden mir einige > Beispiele sicher weiterhelfen. > > Und bitte keine Fragen wie "warum brauchst du denn CAN dazu". > > Vielen Dank ;) Außerdem muss ich diese Frage nun trotzdem stellen... Warum steigst du denn von RS485 auf CAN um, wenn du es dann doch nur für sequenzielle Übertragung nutzt? Der Vorteil von CAN ist ja, dass man Informationen gleichmässiger und einfacher auf dem BUS verteilen kann. CAN hat sozusagen eine automatische BUS-Last-Steuerung, was RS485 nicht hat. Ansonsten sind es aber beide differenzielle Signale mit 3 Leitungen. Der Vorteil an CAN ist eben, dass nach dem Einstellen der Controller Register, man so gut wie keine Ablaufsteuerung für das Senden und Empfangen von Informationen vornehmen muss. CAN ist garnicht dafür gedacht einen Anfrage-Antwort Ablauf durchzuführen. Es ist zwar eventuelle etwas overpowered für deine Anwendung, aber wenn du dennoch solch ein Protokoll über CAN umsetzen möchtest, dann kann ich dir auch CANopen bzw. CANFestival (ein Open Source Framework für CANopen) empfehlen. Da gibt es das sogennante SDO, das für solche Sachen gedacht. Gruß m0nKeY
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.