Hallo, ich möchte gerne folgende Platine erstellen. - Das Board soll über 2x High Speed CAN verfügen. - Das Board soll über 1x High Speed USB verfügen, mit dem es an einen Windows-PC angeschlossen werden kann. - Es soll ein USB Treiber und eine Bibliotheke für Windows verfügbar sin. - Die Flash Programmierung soll über USB durchgeführt werden. Dabei soll das Kommunikationsprotokol über USB von mir bestimmt und implementiert werden. Meine implementierung gibt die Übertragenden Daten dann weiter an die Routinen, die die Flash Programmierung durchführen. - Das Board soll für einen Temperaturbereich von -40° C .. 105° C ausgelegt sein. - Das Board soll über Hardware-Timer verfügen. - Das Board soll über USB mit Strom versorgt werden. - Das Board soll über einen niedrigen Energieverbrauch verfügen. Hierfür bin ich gerade auf der Suche nach Bauteilen. Ich habe jedoch keine Erfahrung und kenne mich nicht aus. Hättet ihr vielleicht vorschläge für Bauteile wie etwa den Micocontroller oder ggfs. externe Chips für USB und CAN? Ich hätte eine weitere Frage. Gibt es elegante und effiziente Möglichkeiten um vor der Kompilierung der Software einen Filter auf bestimmte IDs festzulegen (White List), die ich empfangen und verarbeiten möchte?
Was willst Du denn mit dem Board machen? Wenn Du von Windows aus auf zwei CAN-Busse zugreifen willst, nimm Dir doch was fertiges: http://www.peak-system.com/PCAN-USB-Pro.200.0.html Dazu gibt es auch genügend Treiber und Software - auch freie Software ist verfügbar.
Markus_AC schrieb: > Was willst Du denn mit dem Board machen? > Wenn Du von Windows aus auf zwei CAN-Busse zugreifen willst, nimm Dir > doch was fertiges: http://www.peak-system.com/PCAN-USB-Pro.200.0.html > Dazu gibt es auch genügend Treiber und Software - auch freie Software > ist verfügbar. Hallo, also ich würde gerne folgendes machen. - Ich möchte den Source Code für jeden Anwendungsfall neu kompilieren und den Flash neu programmieren. Bei der Flash Programmierung über USB möchte ich ein bestimmtes Protokoll verwenden. - Ein Anwendungsfall ist, dass bestimmte Signale aus dem Frame extrahiert und unter einer bestimmten Addresse im Ram abgelegt werden. Wenn das gleiche Frame wieder empfangen wird, wird das vorhandene Signal bzw. die vorhandenen Signale überschrieben. Es wird also immer das aktuellste Signal gespeichert. Parallel wird über mehrere Timer (z. B. 10, 20, 50, 100, 500 und 1000 ms) das aktuellste Signal über USB übertragen. Dabei kann ein Signal einen Timer haben und ein Timer mehrere Signale. Die Sgnale, mit dem gleichen Timer liegen im Speicher in einem fortlaufendem Bereich. - Ein weiterer Anwendungsfall wäre quasi das gleiche Prinzip, nur dass ich von bestimmten Frames das 8-Byte Datenfeld und nicht nur einzelne Signale speichere und zyklisch per USB übertrage. - Der letzte Anwendungsfall ist, dass ich von bestimmten Frames das komplette Frame sofort über USB weiterleite ohne es zu speichern.
Die Tiny-CAN API hat Funktionen zum filtern von CAN Nachrichten. Gefilterte Nachrichten werden in einen Puffer abgelegt der mit jeder neuen Nachricht überschrieben wird. http://www.mhs-elektronik.de/index.php?module=download&action=list Eine extra Firmware für jeden Anwendungsfall zu erstellen macht keinen Sinn, der PC kann ja ohne Probleme alles machen. Oder hast Du noch einen PC mit 8 Bit Prozessor :-) Gruß Klaus
Doch, gerade das Erstellen einer neuen Firmware für jeden Anwendungsfall ist der Sinn und Kern der Sache. Es wird eine Pre-Compiler-Time-Configuration vorgenommen.
STM32 kann entweder 2*Can + 1* USB FS oder 1*Can + 1* USB HS. Eine ULPI Pin, der fuer HS benotigt wir, kollodiert mit dem zweiten CAN Kanal.
Kannst Du ein bisschen mehr Details nennen, was Du unter "Pre-Compiler-Time-Configuration" verstehst und was der Vorteil des ganzen ist? Ist das ein Hobby-Projekt oder was kommerzielles? Soll nur 1 Stück entstehen oder mehrere davon? Wo/mit was/in was soll das ganze eingesetzt werden?
Es gibt mehrere formale Beschreibungsdateien, wie etwa DBC, Fibex oder A2L. Aus diesen Dateien wird Code generiert (Pre-Prozessor Konstanten, initialisierte Arrays und Strukturen). Dieser Konfigurations-Code wird von fertigen Modulen (.h + .c) importiert. Dann wird der kompiliert und die Zielplattform wird geflashed.
Was haltet ihr denn von folgenden Microcontrollern für meinen Anwendungsfall? Falls dieser Controller geeignet ist, würde ich ihn auch mal mit den Modellen von Texas Instruments und Freescale vergleichen... Type number Flash total Flash bank A Flash bank B Total SRAM LCD Ethernet USB0 (Host, Device, OTG) USB1 (Host, Device)/ULPI interface PWM QEI ADC channels Temperature range[1] GPIO LPC4327JET100 1 MB 512 kB 512 kB 136 kB no no yes no/no no no 4 J 49 LPC4325JET100 768 kB 384 kB 384 kB 136 kB no no yes no/no no no 4 J 49 LPC4323JET100 512 kB 256 kB 256 kB 104 kB no no yes no/no no no 4 J 49 Unterschiede gibt es beim Flash- und beim RAM-Speicher. Hier weiss ich noch nicht wieviel ich benötige.
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.