Forum: Mikrocontroller und Digitale Elektronik PCA82C250 und PCA82C251


von Rafael L. (Gast)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

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.

von Rafael L. (Gast)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

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?

von Sven M. (smeier)


Lesenswert?

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

von Rafael L. (Gast)


Lesenswert?

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... ;)

von Rafael L. (Gast)


Lesenswert?

@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

von Stefan K. (syliosha)


Lesenswert?

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

von Rafael L. (Gast)


Lesenswert?

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

von Stefan K. (syliosha)


Lesenswert?

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

von Rafael L. (Gast)


Lesenswert?

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????

von Peter D. (peda)


Lesenswert?

Der TJA hat ein Timeout, das die untere Baudrate begrenzt.

Die PCA haben das nicht, gehen also ab >0Hz.


Peter

von Rafael L. (Gast)


Lesenswert?

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

von Fuddler (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.