www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PCA82C250 und PCA82C251


Autor: Rafael L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rafael L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Sven Meier (smeier)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rafael L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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... ;)

Autor: Rafael L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan Kunz (syliosha)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rafael L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan Kunz (syliosha)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rafael L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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????

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der TJA hat ein Timeout, das die untere Baudrate begrenzt.

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


Peter

Autor: Rafael L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Fuddler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.