- 3D-Druck Einstieg und Tipps         
Seite 5 von 7 ErsteErste ... 34567 LetzteLetzte
Ergebnis 41 bis 50 von 68

Thema: CAN - Controller Area Network

  1. #41
    Benutzer Stammmitglied
    Registriert seit
    15.12.2005
    Ort
    Bayern
    Alter
    41
    Beiträge
    86
    Anzeige

    E-Bike
    hat keiner einen tipp für mich, ich weiss nichtmehr weieter. ich weiss nichtmehr wo ich weitermachen kann. ich glaub nicht das es am spi liegt, da ich es ja schaffe die led an und auszuschalten. ich hab die chips schon ausgetauscht um einen hardware schaden auszuschließen. das einzigste was unterschiedlich zu deinen grundaufbau ist, ich hab 27pF kondensatoren an den quarz und die resetleitung des mcp2515 nur mit 10k gegen 5V+ ohne kondensator gegen masse. ich kann gerne mal den schaltplan hier posten.

  2. #42
    Benutzer Stammmitglied
    Registriert seit
    15.12.2005
    Ort
    Bayern
    Alter
    41
    Beiträge
    86
    hier noch der schaltplan. spi bus wird softwaremäßig gemacht deswegen bitte nicht wundern warum in und out vertauscht sind.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken canattiny.png  

  3. #43
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2005
    Ort
    Bayern
    Alter
    38
    Beiträge
    795
    Hallo rathma,

    ich würde dir gerne helfen, leider kann ich Basic nicht so gut....

    Mal eine blöde Frage vonmir:
    Warum machst du Software SPI, und nicht Hardware-SPI ?
    ( Rein aus Interesse )

    Tipp,
    Versuch mal eine Funktion zu bauen, die nach der initialisation
    die Register des MCP2515 liest, und sie dir auf die Serielle Schnittstelle
    zum PC ausgibt. Dann kannst du überprüfen, ob die Register auch
    wirklich so gesetzt sind, wie du es wolltest.


    Noch eine Frage,
    Dein Problem liegt einzig und allein darin, dss du die 166kbps nicht hinbekommst?
    Gruß,
    Franz

  4. #44
    Benutzer Stammmitglied
    Registriert seit
    15.12.2005
    Ort
    Bayern
    Alter
    41
    Beiträge
    86
    also mein problem liegt darin das ich nur 500kbit(und das auch nur duch zufall) hinbekomme.
    mit 166k wollte ich nur testen weil ich mein laptop gerade auf diese boud eingestellt hatte. für das was ich vor hab brauch ich verschiedene baudraten, aber leider nicht 500kbit

    warum verwende ich kein hardware spi: eigendlich ganz einfach, da ich noch alte at90s2313 hatte die kein spi haben und die attiny2313 haben angebich auch kein richtiges. die haben nur die spi um sie selber zu sprogrammieren glaub ich.

    gruss
    markus

  5. #45
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2005
    Ort
    Bayern
    Alter
    38
    Beiträge
    795
    Hallo,

    Also, ich habe gerade mal im
    "Microchip CAN Bit Timing Calculator" nachgeschaut.

    Hier mal meine Theorie:
    Weder mit 16MHz, noch mit 20Mhz Quarz kommt man auf die 166kbps.
    Das geht einfach rechnerrisch nicht auf. Es gibt für diese Quarze
    anscheinend keine Lösung für 166kbps, die 0% Error hat...

    166,667kb war das Beste glaub ich, wären sogar nur -0,4016% Error.
    Mit 20MHz, BRP-1 = 5, 10Tq.
    Mit 16MHz, BRP-1 = 1, 24Tq.

    Kannst es ja mal versuchen... Einige Pakete werden evtl Fehlerhaft übertragen. Eben 0,4% der Pakete... Also ca. 1 von 250Paketen.
    Ich glaube aber, dass der MCP2515 in einem Solchen fall dann den sendevorgang wiederholt!

    ( Sorry, dass ich dir das erst jetzt sage :-/ )

    Das ist vergleibar mit dem UART.
    Setzt man für den ATMEL zB 8MHz quarz ein, kann man
    keine üblichen Baudraten erzielen, die 0% Error liefern.

    Du müsstest als mit den Formeln im Datenblatt zurückrechnen,
    welches Quarz du einsetztn müsstest, dass 166kbps "als ganze Zahl" rauskommt... Aber mir 0,4% Error dürfte es schon funktionieren!


    Probier einfach mal folgendes aus:
    Mit 16MHz:
    BRP-1 = 1;
    Proporgation Delay = 7 Tq;
    Phase Segment 1 = 8 Tq;
    Phase Segmant 2 = 6 Tq;
    Syncro Jump Width = 1 Tq;

    Mit 20MHz:
    BRP-1 = 2;
    Proporgation Delay = 3 Tq;
    Phase Segment 1 = 8 Tq;
    Phase Segmant 2 = 8 Tq;
    Syncro Jump Width = 1 Tq;

    Mach auch mal ein Probeprogramm, welches dir die
    Register aus dem MCP wieder ausliest, zur Kontrolle.
    Gruß,
    Franz

  6. #46
    Benutzer Stammmitglied
    Registriert seit
    15.12.2005
    Ort
    Bayern
    Alter
    41
    Beiträge
    86
    hatte schon mit 166,66 kbit probiert. hab auch schon mit 250kbits 125kbit und 62.5kbit getested und ging nichts :/ und bei diesen werten dürfte 0% fehler sein.
    von der thorie hab ich her auch schon alles kapiert und der vergleich mit urat ist mir auch bewust, es kommen aber leider keine daten an.(ausser wenn ich meinen pc auf 500k stelle und den mcp2515 auf 166,66kbit)

    ich werd mal deinen tipp ausprobieren und die geschriebenen register wieder auslesen.

    ich war heute den ganzen tag in der nähe von straubing, da hätte ich eigendlich gleich bei dir vorbeischauen können *duck*

  7. #47
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2005
    Ort
    Bayern
    Alter
    38
    Beiträge
    795
    Jup,
    teste das mal mit den Registern!

    Ich versuche mal das basicprogramm zu verstehen
    (Nichts gegen Dein Programm, ich kann nur Basic nicht so gut )


    Nebenbei:
    Wo genau warst denn unterwegs? Hättest leicht vorbeischaun können
    Auf ein, zwei oder drei Bier
    Gruß,
    Franz

  8. #48
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2005
    Ort
    Bayern
    Alter
    38
    Beiträge
    795
    Okey,

    Laut Deinem Programm setzt du Folgendes:
    CNF1 = 0x02 = 0b00000010
    CNF2 = 0xBA = 0b10111010
    CNF3 = 0x07 = 0b00000111



    Aus CNF1 = 0b00000010 folgt:

    BRP0 = 0
    BRP1 = 1
    BRP2 = 0
    BRP3 = 0
    BRP4 = 0
    BRP5 = 0
    SJW0 = 0
    SJW1 = 0

    Daraus folgt:
    BRP = 3, da BRP1 ist, wenn im Register 0 steht.
    SJW entspricht 1 TQ


    Aus CNF2 = 0b10111010 folgt:

    PRSEG0 = 0
    PRSEG1 = 1
    PRSEG2 = 0
    PHSEG10 = 1
    PHSEG11 = 1
    PHSEG12 = 1
    SAM = 0
    BTLMODE = 1


    Daraus folgt:
    Proporgation Segment Length = 3TQ
    PS1 = 8 TQ


    Aus CNF3 = 0b00000111 folgt:

    PHSEG20 = 1
    PHSEG21 = 1
    PHSEG22 = 1
    -
    -
    -
    WAKFIL = 0
    SOF = 0

    Daraus folgt:
    PS2 = 8,

    FAZIT:
    Alle TQs zusammen ergeben: 1TQ +3TQ + 8TQ + 8TQ = 20TQ

    BRP = 3.

    Schauen wir mal in den Calculator:
    Ich male mal die Spalte bei 20TQ hin:

    [(BRP-1) =0] : 500kb
    [(BRP-1) =1] : 250kb
    [(BRP-1) =2] : 166,667kb

    Müßte tatsächlich 166,667kb sein.
    Offenbar stimmt was mit der Übertragung zum CNF1 nicht.
    Der haut Dir da ne 0 rein, anstatt ne 2...



    Das Problem könnte darin bestehen, dass du vergessen hast,
    den MCP2515 in Konfigurationsmodus zu versetzen.

    Bei mir sieht der INIT-Vorgang so aus:

    1. Den Chip Resetten
    2. den Chip in Configurationsmodus versetzen: REQOP2 in CANCTRL auf 1 setzen.
    2. CNF1, 2, 3 usw... Filter, Masken usw.. setzen
    3. Wieder in Normalmodus versetzen.
    Gruß,
    Franz

  9. #49
    Benutzer Stammmitglied
    Registriert seit
    15.12.2005
    Ort
    Bayern
    Alter
    41
    Beiträge
    86
    ohh richtig peinlich, ich hab den punkt 2 vergessen. einen reset mache ich noch aber in den config modus schalte ich ihn nicht, nur dann aus. *und noch paar mal mit den kopf gegen die mauer hau*

    ich sag jetzt lieber nicht wielange ich schon vor den quellcode war und gekrübelt habe. ich werd das heute abend gleich testen.

    schon mal 1000x danke für deine hilfe

    gruss
    markus

  10. #50
    Benutzer Stammmitglied
    Registriert seit
    15.12.2004
    Beiträge
    30
    Funktioniert das bei dir ohne delay nach dem reset? Bei mir hat's erst gefunzt als ich nach dem reset noch ein _delay_ms( 1 ) eingefügt hab. Dafür spar ich mir den 2. Schritt, da der chip nach einem reset automatisch im config modus ist.

Seite 5 von 7 ErsteErste ... 34567 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests