Hallo Leute, also ich habe ein neues CAN - Board entwickelt und dabei den Transceiver TJA1050 verwendet! Hat auch alles super geklappt bis ich jetzt eine Anwendung bekommen habe die eine geschwindigkeit von 10kBaud verlangt und ich mit dem TJA leider nur bis 50K runter komme. Jetzt habe ich bei Peak-CAN mal nachgesehen (der CAN - USB Adapter von dennen kann von 5kBaud bis 1 MBaud) und die haben wohl den PCA82C251 verwendet. Bei diesem Transceiver steht das er bis zu 1 MBaud schnell ist aber leider nicht die untere Geschwindigkeitsgrenze. Da ich keinen Transceiver für 24V brauch habe ich mir dann den baugleichen PCA82C250 raus gesucht und auch bei dem steht im Datenblatt das er bis zu 1 MBaud Geschwindigkeiten unterstützt aber keine Grenze nach unten hin..... Kann man jetzt davon ausgehen, dass nach unten keine Grenze gibt und der alles kann oder gehen die davon aus das er nur bis 125kBaud runter geht, da Highspeed Transceiver??? Hat jemand den PCA schon verbaut und kann sagen wie weit man die Baudrate nach unten schrauben kann??? Also wäre für jeden recht schnellen Tip dankbar, wie gesagt suche einen Ersatztransceiver für den TJA1050, d.h. Pinkompatibel und der am besten die gesamte Geschwindigkeitsbandbreite abdeckt. Bedanke mich schon mal im voraus! Gruß Rafael
Woher sollte sich eigentlich eine untere Grenze ergeben? Ich habe beim Querlesen vom Datasheet des TJA1050 auch keine derartige Grenze gefunden. Nur wird aus einem Highspeed-CAN Transceiver durch niedrige Bitrate noch kein Lowspeed-CAN Transceiver. Die sind nun einmal verschieden.
Auf Seite 4 im Datenblatt steht oben links: It is primarily intended for high-speed automotive applications using baud rates from 60 kbaud up to 1 Mbaud. Wie gesagt bekomme ihn sogar bis 50K runter aber bei 10K ist der Bus immer sofort Heavy und nichts geht.... Gruß Rafael
Rafael L. schrieb: > It is primarily intended for > high-speed automotive applications using baud rates from > 60 kbaud up to 1 Mbaud. Das sehe ich nicht als technische Begrenzung sondern als vorgesehener Einsatzbereich. Das ist im Datasheet über das Timing definiert, auch die 1Mbps stehen nicht explizit drin. Damit ist praktisch der gesamte Bereich von Highspeed-CAN abgedeckt. Highspeed-CAN mit 10Kbps ist m.W. schlicht nicht vorgesehen. Bist du sicher, dass in der Timing-Spezifikation des Controllers kein Feld überläuft?
Hallo! Für mich klingt das eher nach einem Problem mit dem CAN-Controller und nicht mit dem Receiver. Bist du dir sicher, dass die TSEG-Einstellungen im CAN-Controller für die 10 kBit korrekt vorgenommen wurden? Und dann natürlich auch noch die obligatorische Frage nach den Abschlusswiderständen. Sind beide Leitungsenden korrekt mit 120 Ohm abgeschlossen? Bei uns ist der PCA82C251 im Einsatz und eine Kommunikation mit 10 kBit ist möglich. Gruß, Sven
Also ich benutze den Atmel AT91SAM7X als Controller und die Registerwerte zur Einstellung der Baudrate werden durch einen Baudratenrechner von Atmel ausgerechnet! Funktioniert ja auch bei allen Geschwindigkeiten von 50K bis zu 1MBaud wunderbar. Nur darunter halt nicht und denke nicht das es am Controller liegt aufgrund des Absatzes im Datenblatt..... Hoffe ich habe dich richtig verstanden... ;)
@Sven Ja sicher sind die Leitungen mit 120 Ohm abgeschlossen. Und wie oben schon geschrieben danke ich auch das die Registerwerte richtig sind. Aber das bei euch der PCA82C251 mit 10K funktioniert ist schon mal eine gute Information! Denke dann wird der PCA82C250 das auch schaffen und dann werde ich die mal Ordern und es damit ausprobieren. Ob der TJA1050 jetzt niedriger als 50K kann oder nicht, das kann ich halt nur aus eigener Erfahrung sagen und da geht es nicht. Oder hat jemand den TJA schon mal mit 10K betrieben??? Danke erst mal allen für die schnellen Antworten! Gruß Rafael
Na ja mit der Atmel-Berechnung ist das so eine Sache, bei dem AT91SAM9263 haut die hinten und vorne nicht hin für die Baudraten. Untersuch am besten die Leitungen vom Controller zum Transciever mit einem Oszi und mess dort die Länge der Bits und dann nochmal auf dem CAN-Bus. Ich würd auch sagen, dass es ein Problem mit dem Controller ist. MfG Stefan
Hey Stefan, verstehe jetzt nicht so ganz was mir das bringen soll und auch nicht wie ich es realisieren soll. 1. Wenn sich die Bits vor und nach dem Transceiver unterscheiden heißt das der Transceiver kann die Geschwindigkeit nicht und wenn sie gleich sein sollte das der Transceiver die Baudrate unterstützt aber der Registerwert im Controller falsch gesetzt ist. Oder wie soll ich das verstehen???? 2. Der CAN - Bus ist ja immer sofort Heavy und weiß jetzt nicht ob die kurze Zeit des Sendens reicht??? Wie regelt man das denn dann??? Gruß Rafael
so ungefähr, schnapp dir ein Oszi halt es an die Pins des Controllers wo der CAN anschluss ist und guck dir an wie Lang die Bits sind das selbe hinterm Tranciever wenn die Bits gut in den Transciever reinkommen ist er Schuld das es nicht geht, wenn die Bits schon falsch sind kann der Controller das nicht. MfG Stefan
Hallo.... also vielen Dank noch mal für die ganzen Tips.... Ich habe mit dem Oszi mal alles durchgemessen und festgestellt das vor und hinter dem Transceiver bei eingehenden Messages mit 10kBits die Bitzeiten gleich sind und somit das Problem wohl wirklich nicht bei dem Transceiver liegt. Bei ausgehende Nachrichten haben ich dann auch noch mal gemessen und festgestellt das die Bitzeit nicht bei 100µs liegt sondern viel kürzer ist. Daraufhin habe ich mir das Register vom Divisor noch mal genauer angesehen und festgestellt das es gerade mal 7 Bit groß ist aber bei 10 kBit und einem Masterclock von 48MHz ein Wert von 299 raus kommt und somit dann wohl wirklich das Register überläuft..... Erster Lösungsansatz ist jetzt zu prüfen ob und wie ich den Masterclock runter gesetzt bekomme und dann noch mal ausprobieren ob es dann geht. Oder hat einer von euch noch eine andere Idee wie man das Problem lösen könnte????
Der TJA hat ein Timeout, das die untere Baudrate begrenzt. Die PCA haben das nicht, gehen also ab >0Hz. Peter
Hallo Peter, kannst du mir auch zufällig sagen wo die untere Grenze vom TJA liegt???? Zu meinem vorherigen Beitrag jetzt noch ein Nachtrag: Also durch runtersetzen des Masterclocks habe ich jetzt mit dem AT91SAM7X und dem TJA 1050 ein Baudrate von 20KBit´s hin bekommen aber leider nicht die 10kBit. Werde mich jetzt erst mal weiter in diese Clockthematik einlesen und schauen ob sich das Problem damit verlünftig lösen läßt..... Gruß Rafael
Hi, bin zufällig auf diesen Thread gestossen. Der Timeout des TJA1050 liegt laut Datenblatt (siehe Seite 7, Timing characteristics) bei 250us <= tdom(TXD) <= 750us Wenn man vom Worst Case ausgeht, schlägt also bereits nach 250us dominamtem Level an TXD der Timeout an. D.h. wenn man zu lange versucht einen Dominanten Level auf den Bus zu geben, gerät der TJA1050 in einen Timeout. Da bei CAN max. 5 gleiche Bits erlaubt sind (Bit Stuffing), muss man diese Timeout-Zeit noch durch 5 teilen -> 250us/5 = 50us, was somit einer min. Datenrate von 20kBits entspricht. Datenraten über 20kBit sollten vom TJA1050 also sicher gehandelt werden, alles darunter wird kritisch. Grüße
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.