CAN-BUS als Hausteuerung

olli1986

Neues Mitglied
04. Apr. 2010
13
0
1
Lübeck, Germany
Sprachen
Hi @all,

bisher habe ich mit Eagle noch nicht so richtig die Erfahrung und wollte euch mal fragen ob das so funktioniert rein von der Schaltung her? Vielleicht nicht ganz so schön aber das kommt nach und nach :).

Dieser CAN-BUS Knoten Sollte später in eine Unterputz Dose passen deshalb habe ich nur SMD Bauteile genommen und er soll Universal sein sprich hier als Sensor und da als Aktor, deswegen so viele Anschlüsse oder sollte ich da weniger nehmen.

Den Bus Wollte ich auf 12 Volt laufen lassen, oder sind andere Spannungen sinnvoller?

Gruß Olli
 

Anhänge

  • CAN-BUS Knoten.png
    CAN-BUS Knoten.png
    37,2 KB · Aufrufe: 53
Hallo Olli,

vorweg mal ein paar Tips:
Hier ist Dinos FAQ-sammel-Thread, da sollten sich auch nützliche Tips/Hinweise/Anregungen zu Eagle finden lassen...
Hier geht er auf die (Minimal-)Beschaltung der Controller ein...

-An die Stromversorgungspin-Pärchen gehört (also) je ein Abblockkondensator (deswegen sind die jeweils nebeneinander - da sollte sich auch ein Hinweis im Controller-Datenblatt und/oder der entsprechenden AppNote finden lassen). 100nF Keramik
-Wenn Du den internen ADC "sauber" verwenden willst, solltest Du die analoge Versorgungsspannung filtern. Über einen Tiefpaß (LC, oder zumindest RC). Also eine 10µH-SMD-Induktivität (oder einen R mit ca 30(?) Ohm) dazwischen. C ist dann der Abblockkondensator.
-Du hast zum programmieren den (alten) 10-Pin-ISP vorgesehen, willst jedoch Platz sparen - wäre hier der 6-Pin-ISP eine Option?
(ich hatte hier mal mit einer Eagle-Bibliothek angefangen - irgendwie komme ich da grad nicht so recht zu, weiß jetzt auch nicht, welche Version ich hochgeladen hatte, aber vielleicht willst Du sie Dir trotzdem ansehen? Ich würde bei wenig Platz 6Pin-MicroMatch nehmen - die sind in der lib aber definitiv noch nicht drin...)
-als Taktquelle hast Du den internen RC-Oszillator vorgesehen? Oder soll eventuell später noch eine externe Taktquelle dran?
-Atmel empfiehlt bei (zusätzlicher) Verwendung der SPI/ISP-Pins (neben dem Programmieren), hinter der Abzweigung Widerstände einzubauen. Ob das jetzt wirklich notwendig ist, kann ich nicht einschätzen, zumal da ja nur SPI-Slaves dranhängen (die Leitungen also dort beim Programmieren Tristate sein SOLLTEN (und Du sicher kurze Wege hast), ABER ich würde der CS-Leitung (PD7) einen externen Pullup verpassen, da sonst das Signal beim programmieren "in der Luft hängt" - beide Seiten sind Tristate. Du kannst also nicht sicher sein, daß der MCP2515 dann wirklich "Offline" ist, sondern Dir das Programmieren vermurkst...
-die Datenblätter von den beiden anderen ICs hab ich mir (noch) nicht angesehen - vielleicht brauchen die auch Abblockkerkos?
-Zur Wahl der verwendeten Controllerpins kann man nicht viel sagen, wenn man nicht weiß, was da später noch dazukommen soll. So hällst Du Dir zB die beiden TOSC... frei - da kann man also mit'nem entsprechenden Quarz 'nen genauen Sekundentakt (für 'ne Uhr) einbauen.
Du verbindest die beiden Interrupt-Pins, wer soll da wen unterbrechen können? (Int0 ist der Interrupt mit der höchsten Priorität im Controller).
Du belegst mit der CS-Leitung OC2, dafür stehen Dir aber alle ADC-Quellen offen. TWI ist auch frei. Außerdem hast Du die JTAG-Schnittstelle komplett frei. (Diese Pins haben außer JTAG keine weitere Hardware-Funktion - wenn man also auf JTAG verzichtet, sind diese Pins (nur) als konventionelle I/Os verwendbar, und somit erste Wahl zum Schalten irgendwelcher Signale (CS, das auslösen von Interrupts an anderen Chips, Schalten von LEDs/etc (wenn die nicht gedimmt werden sollen (PWM)))
Aber wie schon gesagt, ich kenne Deine weiteren Ziele nicht...(ich halte mir Pins mit interner Hardware möglichst für diese Hardware frei, bzw verwende die eben genau dafür)
 
Zum MCP2551:

Punkt 1: Vergiss die Abschlusswiderstände am CAN nicht.
Punkt 2: Dem MCP2551 einen Abblockkondensator zwischen VDD und VSS spendieren.
Punkt 3: Wie sind die VRef und RS beschaltet? Offen? Offen ist nicht gut. Willst Du High-Speed (1MBit) fahren, dann Rs nach GND bzw. VSS.

Zum MCP2515:

Punkt 1: Am MISO und MOSI soll ein Widerstand dran. Beim SCK bin ich mir nicht ganz sicher -> Datenblatt
Punkt 2: Den /RESET-Pin bitte an die MCU anschließen, es ist besser und Du wirst es brauchen.
Punkt 3: Warum schließt Du /CS an den OC2 an und lässt aber den SS-Pin frei? Der SS-Pin ist ja dazu da, gehört quasi zum SPI. Also /CS an den SS von MCU + PullUp.

Zum Atmega 32:
Punkt 1: Wo ist der Quarz? Ist zwar nicht unbedingt notwendig, aber besser ist.
Punkt 2: ISP 10-Pin gegen 6-Pin ersetzen.
Punkt 3: An JEDEN Vcc-Pin gehört ein 100nF Kondensator und das soll auch beim Routen berücksichtigt werden
Punkt 4: Du führst ein Sack voll Ausgänge raus. Ich würde sie nicht direkt beschalten, sondern über so was wie ein Darlingtontreiber oder ein Puffer. Ist besser für MCU. Hängt dann halt davon ab ob Ein- oder Ausgang. Und dann evtl. über Pull-Up oder Pull-Down nachdenken.
Punk 5: An AVcc gehört noch eine Drossel hin.

Zur Spannungsversorgung:
Punkt 1: Ich würde den 7805 rauswerfen, bin eh kein Freund von dem Ding und einen LM1117 verwenden. Er benötigt nur je einen Tantalkondensator mit 10μF pro Seite (am Ein- und Ausgang), liefert 800mA (je nach Hersteller bis über 1A), ist schön klein und wird nicht warm.
Punkt 2: Über Verpolschutz nachdenken
Punkt 3: Noch eine Sicherung und eine Z-Diode am Eingang vom Spannungsregler hinzufügen. Ich kenne jetzt Deine Spannungsquelle nicht, aber besser ist es.

Mehr fällt mir im Moment nicht ein. :)

Grüße
Heinrich
 
Nochmal zum Mega:
Punkt1:
Der interne RC läuft mit 8, 4, 2 oder 1MHz. Solange man nicht zwingend extrem genaue Frequenzen, oder eine höhere Taktfrequenz braucht, reicht der interne allemal. Was hier vielleicht interessanter wäre wäre, den Mega über eine externe Clock zu betakten. Ob der 2515 sich auch auf eine solche einstellen läßt, weiß ich nicht. Andererseits treibt er aber seinen Quarz zum schwingen (mit 16MHz) - kann man da dann nicht einfach den entsprechenden OSC-Pin auf den entsprechenden XTAL-Pin vom Mega legen? müßte man mal in die beiden Datenblätter schauen.
Punkt2:
Dann ist mir grad aufgefallen, daß SV1 KEIN 10-Pin-ISP ist. da liegen nämlich auch RXD/TXD mit drauf (wo eigentlich Gnd anliegt).
Punkt3 hatte ich schon
Punkt4 hätte ich so verstanden, daß er da 'ne Leiste Präzisionskontakte oder sowas dranhängt, und entsprechende Treiber etc. so nötig in der Peripherie realisiert.
Punkt5 ist nur nötig, wenn man (sehr) genaue Werte vom ADC braucht. Zu beachten ist dabei ggf der (zT Last-Schwankungsabhängige) Spannungsabfall an der Induktivität (also eine mit möglichst geringem ohmschen Widerstand nehmen). Im Datenblatt wird das zwar nicht extra angegeben, ich gehe jedoch davon aus, daß der gesamte PORTA durch den AVCC versorgt wird (dazu dann ggf der ADC und der Comperator.

Zu CS/SS: Der SS-Pin ist der Chip-Select bzw SlaveSelect-Pin, mit dem man den Mega in den Slave-Modus zwingen kann (wenn der Pin ein Eingang ist, und SS low ist). Wenn man also über den SPI-Bus mit einem anderen Master den Mega zum Slave zwingen will, würde man mit dieser Verbindung auch gleich den 2515 mitselektieren - was natürlich Quatsch ist...
Daß man sich mit dieser Wahl den OC2 nimmt, hatte ich schon angedeutet. Was mich noch zu der Frage bringt, warum es unbedingt ein Mega32 sein soll (oder ist der bereits/noch vorhanden?): Das aktuelle Pedant zum Mega32 ist der Mega324, oder? (bzw inzwischen der 324PA). Der bietet unter anderem deutlich mehr Hardware. Unter anderem hat man 2 UARTs und 4 8-Bit-PWMs, man kann jeden beliebigen Pin zum Auslösen eines PinChangeInterruptes verwenden.
 
Hallo,

Zum Atmega 32:
Punkt 1: Wo ist der Quarz? Ist zwar nicht unbedingt notwendig, aber besser ist.
Bei serieller Kommunikation würde ich immer ein Quarz verwenden weil der interne RC-Oszillator einfach zu ungenau ist. Wenn du den Atmel mit einem PC verbindest bekommst du sonst bereits bei 9600Baud Probleme.

Wenn du zwei Atmels miteinander sprechen lassen willst und einer geht in den positiven und einer in den negativen Toleranzbereich des internen RC-Oszillators dann wirst du definitiv Datenfehler bei höheren Übertragungsgeschwindigkeiten haben. Also tu dir was gutes und nimm einen Quarz.

Gruß
Dino
 
Hi @all,

die Erklärung zum Schaltplan hab ich ganz vergessen :(.

Die 10 Pol ISP hat einmal für die Programmierung die Anschlüsse und dann noch RXD und TXD die wollte ich zur Diagnose Verwenden, Programmieren tue ich mit dem USB AVR LAB da ist nur Pin 10 mit GND beschaltet.

Beim Atmega habe ich den Quarz weg gelassen aus Platz gründen, da sollte ich noch lieber mehr Rauslassen um Platz zu sparen und weil der in dem Fall nicht so genau laufen muss, die Knoten die in eine Unterputz dose Passen (sollen), sollen bloß den Taster abfragen und dann das Licht ein schalten oder oder oder. Dafür brauche ich eigentlich kein mega32 da würde ja auch ein kleinerer funktionieren denn die ganzen SMD Bauteile habe ich nicht und um Geld zu Sparen sollte ich mir so was besser durch den Kopf gehen lassen.

Den CS Pin vom MCP2515 habe ich jetzt nicht speziell auf OC2 gelegt (da hatte ich ehrlich gesagt nicht drauf geachtet), aufm Breadbord hatte ich das schon mal alles gesteckt und Probleme gehabt das ding zum laufen zu bekommen als der CS auf SS lag, da hatte ich irgend wo mal gelesen das es da wohl öfters mal Probleme geben soll.

Mir ist auch heute auf gefallen das ich einige Sachen irgend wie Vergessen habe, warum auch immer.

Oben im Schaltplan JP1 sollte dazu sein das ich den Knoten vom Bus aus mit Strom versorgen kann oder Jumper umstecken für direkte Versorgung.

Für andere Sachen außerhalb von der Unterputzdose brauche ich höchst war scheinlich mehr Anschlüsse als für so ein ollen Lichtschalter und Relais oder so.

Wegen dem SPI und ISP mit widerständen habe ich jetzt nur mal kurz rein geschaut und nur gefunden das die rein gesetzt werden wenn die Controller mit unterschiedlicher Spannung laufen, aber werde ich noch mal schauen und Datenblätter leider nur auf Englisch, da hätte ich mal besser in der Schule auf Passen sollen, übersetzte sie mir immer mit Google.

Mit dem CAN-BUS habe ich auch schon einige Ideen:
- Lichtschalter (1x drücken Decken licht AN/AUS, 2sekunden drücken Schrankwand AN/AUS)
- Steckdosen schalten
- Funksteckdosen schalten
- Jeden Raum Temperatur, Luftfeuchte, event. CO²
- Alarmanlage
- Netzwerk/Internet Schnittstelle wo ich mit einem Android App Alles verwalten kann
- Ein oder mehrere Touchdisplays wo der Grundriss zu sehen ist mit allen Relevanten Daten
-

Da habe ich auch noch eine Frage:
Der CAN-BUS hat ja Standart 0-8 Byte als Daten übertragen da dachte ich mir das so zu machen Byte1 für Raum (1 Küche, 2 Stube, usw.), Byte 2 Art (Schalter, Temp. Sensor, usw.), Byte 3-8 Daten von Schaltern etc. Was meint ihr dazu?

Dann werde ich mich noch mal an den Schaltplan machen und ein wenig überarbeiten

Schönen Abend noch
Olli
 
Hi @all,

habe jetzt den Plan mal überarbeitet, habe mir da noch mal alles durch den Kopf gehen lassen und eure Tipps hoffentlich alle umgesetzt.

Jetzt ist nur noch ein ATmega 168A in TQFP-32 Package der wird alle mal reichen, des Weiteren habe ich weniger Anschlüsse vorgesehen es werden ja nicht so viele gebraucht.

Das mit SS und CS habe ich noch mal probiert mit einem anderen Programm Code und da Funktionierte es dann auch.

Hoffe das es diesmal besser aussieht, langsam komme ich auch besser mit Eagle klar.

Gruß Olli
 

Anhänge

  • CAN-BUS Knoten.png
    CAN-BUS Knoten.png
    52,8 KB · Aufrufe: 34
Hallo Olli,

habe jetzt den Plan mal überarbeitet, habe mir da noch mal alles durch den Kopf gehen lassen und eure Tipps hoffentlich alle umgesetzt.
...
Hoffe das es diesmal besser aussieht, langsam komme ich auch besser mit Eagle klar.

- der C8 am Taktausgang des Oszillators ist tötlich. Der schließt dir die Taktfrequenz nach GND kurz. Also CPU ohne Takt.

- Pin 4 des Atmels liegt nicht an Vcc sondern hat nur den C3 dran. Das ist auch noch ein Fehler.

- Der Reset des Atmels liegt mit 10k an Vcc. Ich würde aber noch nen 47-100nF nach GND legen. 22k statt 10k wären auch OK.

- Bei C14 und C15 am Spannungsregler fehlt die Größenangabe (100nF?) Außerdem würd ich am Eingang noch nen 220-470µF dransetzen

- Beim Ausgang des Spannungsreglers würde ich auch noch zusätzlich nen 100µF für die Gesamtschaltung setzen und direkt am Atmel auch noch nen 10µF.

- Dem MCP2551 würde ich auch einen zusätzlichen 10µF spendieren da Treiber bekanntlich etwas mehr Strom benötigen.

- Den C7 am Quarzoszillator würde ich nicht als Elko sondern als Keramik ausführen. Ein Elko ist zu langsam.

- Beim SCK zum MCP2515 kannst du dir den 4k7 sparen da der SCK beim Wandler ein Eingang ist.

- Beim SI zum MCP2515 ist das identisch. Die können dir beide nicht in die Suppe spucken. Ein 1k...2k2 reicht aber und verunstaltet dir die Signale nicht so stark.

- Beim R6 (am MCP2551) fehlt die Größenangabe.

Das war erstmal alles was mir im ersten Moment aufgefallen ist ;)

Gruß
Dino
 
Hi Dino,

- der C8 am Taktausgang des Oszillators ist tötlich. Der schließt dir die Taktfrequenz nach GND kurz. Also CPU ohne Takt.
- den C8 Kondensator habe ich aus dem Datenblatt habe mich auch schon gewundert, vielleicht habe ich das auch falsch verstanden, Datenblatt habe ich angehängt (79638.pdf), und die angabe habe ich von 15nF auf 15pF geändert.

- Pin 4 des Atmels liegt nicht an Vcc sondern hat nur den C3 dran. Das ist auch noch ein Fehler.
- Das hatte ich über sehen und wurde behoben.

- Der Reset des Atmels liegt mit 10k an Vcc. Ich würde aber noch nen 47-100nF nach GND legen. 22k statt 10k wären auch OK.
- Hatte ich heute noch mal nachgesehen, den hatte ich wohl vergessen, der ist ja auch in der Grundschaltung drine.

- Bei C14 und C15 am Spannungsregler fehlt die Größenangabe (100nF?) Außerdem würd ich am Eingang noch nen 220-470µF dransetzen
- War schon spät ;), habe ich ergänzt.

- Beim Ausgang des Spannungsreglers würde ich auch noch zusätzlich nen 100µF für die Gesamtschaltung setzen und direkt am Atmel auch noch nen 10µF.
- dafür dachte das der 100nF reichen wird.

- Dem MCP2551 würde ich auch einen zusätzlichen 10µF spendieren da Treiber bekanntlich etwas mehr Strom benötigen.
- Muss ich mal schauen ob ich den später mit unter bekomme wenn ich das Board erstelle.

- Den C7 am Quarzoszillator würde ich nicht als Elko sondern als Keramik ausführen. Ein Elko ist zu langsam.
- Verkehrt aus gewählt, sollte eigentlich ein Keramik werden.

- Beim SCK zum MCP2515 kannst du dir den 4k7 sparen da der SCK beim Wandler ein Eingang ist.
- Beim SI zum MCP2515 ist das identisch. Die können dir beide nicht in die Suppe spucken. Ein 1k...2k2 reicht aber und verunstaltet dir die Signale nicht so stark.
- das hatte ich hier gesehen und dachte das wäre korrekt so, habe das so verstanden das man mit der ISP Probleme bekommen kann.

- Beim R6 (am MCP2551) fehlt die Größenangabe.
- R6 habe ich entfernt, so wie ich im Datenblatt verstanden habe ist der nicht nötig, hoffentlich richtig verstanden.

Danke schon mal für eure Hilfe.

Gruß Olli
 

Anhänge

  • 79638.pdf
    43,6 KB · Aufrufe: 26
Hi Olli,

- der C8 am Taktausgang des Oszillators ist tötlich. Der schließt dir die Taktfrequenz nach GND kurz. Also CPU ohne Takt.
- den C8 Kondensator habe ich aus dem Datenblatt habe mich auch schon gewundert, vielleicht habe ich das auch falsch verstanden, Datenblatt habe ich angehängt (79638.pdf), und die angabe habe ich von 15nF auf 15pF geändert.
auch falsch. Der Kondensator muß komplett weg. Du benötigst lediglich 2x 22pF wenn du einen Quarz anschließt. Das sind Bürdekondensatoren für den Quarz. Ein Quarzoszillator liefert dir aber ein TTL-Signal was du damit zusätzlich belastest.

In deinem Datenblatt steht da "Inclusive of jigging & equipment capacitance". Das ist in der Testschaltung (Test Circuit - HCMOS) also ein Kondensator der die in einer realen Schaltung anhängende Hardware simulieren soll.

- Beim Ausgang des Spannungsreglers würde ich auch noch zusätzlich nen 100µF für die Gesamtschaltung setzen und direkt am Atmel auch noch nen 10µF.
- dafür dachte das der 100nF reichen wird.
Ja und nein. Also normalerweise reicht der 100nF am Atmel. Ich hab mir aber angewöhnt dem Atmel noch nen 10µF zu spendieren. Bei größeren Atmels sogar nen 22µF. Der 100nF liefert dir lediglich Strom bei sehr kurzen Lastspitzen und ist dann schnell leer. Als Alternative könntest du statt dem100nF auch nen 4,7-10µF Keramik nehmen. Die haben einen kleinen Innenwiderstand und etwas mehr Kapazität. Die nennen sich "High-Caps" und gibts auch bei Reichelt. Die Baugrößen gehen von 0603 (10µF/6V - X5R-G0603 10/6) über 0805 (10µF/16V - X5RG0805 10/16) und 1206 (10µF/25V - X5R-G1206 10/25) bis zu 1210 (10µF/35V - X5R-G1210 10).

- Beim SCK zum MCP2515 kannst du dir den 4k7 sparen da der SCK beim Wandler ein Eingang ist.
- Beim SI zum MCP2515 ist das identisch. Die können dir beide nicht in die Suppe spucken. Ein 1k...2k2 reicht aber und verunstaltet dir die Signale nicht so stark.
- das hatte ich hier gesehen und dachte das wäre korrekt so, habe das so verstanden das man mit der ISP Probleme bekommen kann.
Kann man so machen. Muß man aber nicht komplett so übernehmen. Im Atmel App-Note "AVR910: In-System Programming" steht das man alle drei Leitungen (MOSI, MISO, SCK) mit Widerständen beschalten soll. Genau so wie es da zu sehen ist. 4k7 ist allerdings auch schon sehr viel. Ich würde auf 1k..2k2 runtergehen. Das sollte ein AVRISPmk2 problemlos treiben können. Ich hab glaube ich sogar mal nen 330 Ohm mit LED an den Leitungen gehabt. Die Widerstände sollen eigentlich nur den ISP-Leitungen die Möglichkeit geben die Signale einer angeschlossenen Hardware zu "überschreiben". Da du bei der Programmierung aber den MCP2515 auch unter Saft hast werden eventuell vorhandene Schutzdioden der Eingänge keine Wirkung haben. Die Eingänge SI und SCK des MCPs werden also einigermaßen hochohmig sein. Lediglich der SO könnte dir als Ausgang in die Suppe spucken. Also wird nach meiner Meinung der eine Widerstand in der Leitung wohl reichen. Auf jeden Fall werden die Signale bei kleinerem Widerstand sauberer.

- Beim R6 (am MCP2551) fehlt die Größenangabe.
- R6 habe ich entfernt, so wie ich im Datenblatt verstanden habe ist der nicht nötig, hoffentlich richtig verstanden.
Im Datenblatt steht "The slope is proportional to the current output at the RS pin.". Der Widerstand ist also notwendig. Siehe mal im Diagramm "FIGURE 1-1: SLEW RATE VS. SLOPE-CONTROL RESISTANCE VALUE". Dieser Widerstand regelt die Signalanstiegs-/-abfallzeit und verhindert damit unnötige Einstreuungen in andere Schaltungsteile. "Slope-control mode further reduces EMI by limiting the rise and fall times of CANH and CANL." Du mußt ihn allerdings auf deine Bedürfnisse anpassen.

Gruß
Dino
 
-> Ähm, was hast Du denn mit dem /RESET-Pin vom CAN-Controller angestellt? Der sollte an den "normalen" Pin vom Atmega, nicht an seinen /RESET-Pin. Das macht nicht so viel Sinn, bzw. keinen.

-> C14 und C15 sind Tantalkonsatoren, mit je 10uF.

Den Rest hat Dino schon gesagt. :)
 
Hallo,

-> Ähm, was hast Du denn mit dem /RESET-Pin vom CAN-Controller angestellt? Der sollte an den "normalen" Pin vom Atmega, nicht an seinen /RESET-Pin. Das macht nicht so viel Sinn, bzw. keinen.
was? Hab ich das übersehen? :p :rolleyes:

-> C14 und C15 sind Tantalkonsatoren, mit je 10uF.
Bei Tantals aufpassen. Wenn man die mal verpolt sind die Dinger verdammt nachtragend :to_pick_ones_nose:
Sind sowieso gegenüber den normalen Elkos kleine Mimosen ;)

Gruß
Dino
 
Hi @all

auch falsch. Der Kondensator muß komplett weg. Du benötigst lediglich 2x 22pF wenn du einen Quarz anschließt. Das sind Bürdekondensatoren für den Quarz. Ein Quarzoszillator liefert dir aber ein TTL-Signal was du damit zusätzlich belastest.

In deinem Datenblatt steht da "Inclusive of jigging & equipment capacitance". Das ist in der Testschaltung (Test Circuit - HCMOS) also ein Kondensator der die in einer realen Schaltung anhängende Hardware simulieren soll.
Ach so für die Testschaltung, weiter oben im Datenblatt hatte ich gelesen das max. 15pF steht, aber das ist dann die so zu sagen maximale Belastung die drauf hängen darf.

Im Datenblatt steht "The slope is proportional to the current output at the RS pin.". Der Widerstand ist also notwendig. Siehe mal im Diagramm "FIGURE 1-1: SLEW RATE VS. SLOPE-CONTROL RESISTANCE VALUE". Dieser Widerstand regelt die Signalanstiegs-/-abfallzeit und verhindert damit unnötige Einstreuungen in andere Schaltungsteile. "Slope-control mode further reduces EMI by limiting the rise and fall times of CANH and CANL." Du mußt ihn allerdings auf deine Bedürfnisse anpassen.
Hab mir das mit Google noch mal übersetzt und mir das gebrochene Deutsch bestimmt 10 mal durch gelesen bevor ich das einigermaßen verstanden habe.
Also für High-Speed auf Masse was Fehler anfälliger ist, für Slope-Control einen widerstand Größe X.
In meinem fall denke ich ein 20k dann sollte ich ca. 18,5 V/us habe oder sollte ich dort ein größeren nehmen?

-> Ähm, was hast Du denn mit dem /RESET-Pin vom CAN-Controller angestellt? Der sollte an den "normalen" Pin vom Atmega, nicht an seinen /RESET-Pin. Das macht nicht so viel Sinn, bzw. keinen.
Du hattest ja geschrieben das ich ihn an die MCU anschließen sollte, da hatte ich dich so verstanden gehabt.
Ist bestimmt so gedacht das wenn der MCP nicht mehr so reagiert wie er soll das ich dann den ATmega einen Reset auslösen lasse.


Inspiriert hatte mich das CAN_Testboard von kreatives-chaos erst dadurch bin ich auf das Thema gekommen.
 
Hi Olli,

Ach so für die Testschaltung, weiter oben im Datenblatt hatte ich gelesen das max. 15pF steht, aber das ist dann die so zu sagen maximale Belastung die drauf hängen darf.
nein. Wieder falsch verstanden. Die simulieren mit den 15pF die Last die durch die Kapazität der Leiterbahnen und IC-Eingänge bei einer normalen Schaltung auftreten würden.

Hab mir das mit Google noch mal übersetzt und mir das gebrochene Deutsch bestimmt 10 mal durch gelesen bevor ich das einigermaßen verstanden habe.
Also für High-Speed auf Masse was Fehler anfälliger ist, für Slope-Control einen widerstand Größe X.
In meinem fall denke ich ein 20k dann sollte ich ca. 18,5 V/us habe oder sollte ich dort ein größeren nehmen?
Mal als Hinweis: Diese V/µs findest du auch als SlewRate bei Operationsverstärkern. Das ist die Signalanstiegs-/Abfallgeschwindigkeit. Das Signal könnte also bei deiner Angabe innerhalb 1µs um 18,5V in der Höhe verändert werden. Wenn du also einen Pegel von 12V auf dem CAN-Bus fährst dann kann der Treiber die 12V in ...
12V / 18,5V/µs = 0,648µs erreichen. Also wäre deine maximale Frequenz auf dem Bus ...
2x 0,648µs = 1,296µs (einmal auf 12V und wieder zurück ... darum x2)
1 / 1,296µs = 771kHz
... dabei würde der Pegel aber wenn er oben ist sofort wieder runtersausen. Das ist aber Mist. Ich würde mal sagen das du so bei maximal 350kHz Datentakt bei der SlewRate arbeiten kannst. Wenn du also mehr Geschwindigkeit benötigst, dann mußt du die SlewRate höher stellen (mehr V pro µs).

Du hattest ja geschrieben das ich ihn an die MCU anschließen sollte, da hatte ich dich so verstanden gehabt.
Ist bestimmt so gedacht das wenn der MCP nicht mehr so reagiert wie er soll das ich dann den ATmega einen Reset auslösen lasse.
Genau das hat er gemeint. Der Reset-Pin des Atmels ist ein Eingang.

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)