- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 9 von 18 ErsteErste ... 7891011 ... LetzteLetzte
Ergebnis 81 bis 90 von 177

Thema: Funktionierendes CAN Bus Projekt entwickeln unter Bascom

  1. #81
    Benutzer Stammmitglied
    Registriert seit
    25.09.2007
    Ort
    Oldenburg
    Alter
    50
    Beiträge
    80
    Anzeige

    E-Bike
    Ha ! So, den Fehler habe ich schonmal gefunden. Die /SS Leitung vom Mega8 hing in der Luft und war nicht als Eingang geschaltet. Somit wurde immer das MSTR Bit gelöscht und der SPI wollte nicht senden. Das tut er jetzt.

    Hat es eigentlich irgendeinen Vorteil, das SPDR Register manuell zu laden und eine Zeitschleife zu programmieren, die auf das SPIF Bit wartet ? Man kann doch sicherlich genauso den Bascom Befehl SPIout nutzen, oder ?

    Jetzt kann ich dann als nächstes den MCP wieder anklemmen. Noch eine Frage, eher Hardware: So ganz habe ich den Zusammenhang mit der /SS Leitung noch nicht erfasst - wozu ist die denn gut, wenn man die nur auf high klemmt ? Oder kann man damit noch etwas anfangen ?

    Und noch eine prinzipielle Frage zum SPI Bus: Das muss doch eigentlich auch ohne die /CS Leitung gehen, oder wie klemmt man mehrere Slaves an einen Bus ? Im Bascom Buch von Kühnel sind wir Slaves mit 4 einzelnen /CS Leitungen angeschlossen, aber das kann doch nicht Sinn und Zweck eines Bussystems sein ? (Hat sich erledigt - weiß Bescheid )
    Alles wird gut... Gruß Alex

  2. #82
    Benutzer Stammmitglied
    Registriert seit
    25.09.2007
    Ort
    Oldenburg
    Alter
    50
    Beiträge
    80
    Hier nochmal der aktuelle Code. Jetzt läuft die SPI, allerdings ist auf dem CAN noch Ruhe (Skop) - offenbar sendet der MCP nichts. Hat jemand eine Idee ? Sieht jemand auf Anhieb einen Fehler ?
    Angehängte Dateien Angehängte Dateien
    Alles wird gut... Gruß Alex

  3. #83
    Benutzer Stammmitglied
    Registriert seit
    25.09.2007
    Ort
    Oldenburg
    Alter
    50
    Beiträge
    80
    Ein weiterer Fehler war schonmal die falsche Nachrichtenlänge 0x04h, die muss natürlich 0x02h sein. Trotzdem bislang kein Erfolg
    Alles wird gut... Gruß Alex

  4. #84
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.03.2006
    Ort
    WOB
    Beiträge
    630
    Die routine zum Senden sieht nicht falsch aus. Aber überprüf mal deine CNF config des MCP. Eine Gültige Config muss mind. 6 X TQ haben laut Datenblatt. Ich bin nicht sicher ob du das eingehalten hast.
    Gruß Thomas \/

    Alles über AVR, PIC und CAN
    blog.cc-robotics.de

  5. #85
    Benutzer Stammmitglied
    Registriert seit
    25.09.2007
    Ort
    Oldenburg
    Alter
    50
    Beiträge
    80
    6*TQ ? Gib mir doch mal einen Tip, auf welcher Seite ich dazu was finde Ich Suche hektisch...
    Alles wird gut... Gruß Alex

  6. #86
    Benutzer Stammmitglied
    Registriert seit
    25.09.2007
    Ort
    Oldenburg
    Alter
    50
    Beiträge
    80
    Ah, OK... Seite 37ff - die Bit Timings meinst Du, ja ? Das habe ich jetzt zumindest nach einmaligem Lesen noch nicht komplett verstanden. Ich hatte gedacht, man stellt nur die gewünschte Bitrate ein uns gut ist ?

    Da hätten die auch gut mal ein Beispiel reinpacken können, denn das erschließt sich mir irgendwie nicht....

    Ich werde nochmal weitergrübeln, danke einstweilen für den Hinweis !
    Alles wird gut... Gruß Alex

  7. #87
    Benutzer Stammmitglied
    Registriert seit
    25.09.2007
    Ort
    Oldenburg
    Alter
    50
    Beiträge
    80
    Ich bekomme es einfach nicht hingefummelt.... die Beschreibung im Datenblatt finde ich einfach nur kryptisch. Ist BRP gleich NBR ? Könnte mir das nicht mal jemand in einfachen Worten erklären, wie ich mit meinem Takt von 16MHz diese Forderung für die Konfiguration erfülle ? Die Details kann ich mir dann sicherlich rückwärts erarbeiten...

    /edit/

    Nach knappen zwei Stunden habe ich einige Fortschritte erzielt, denke ich. Ein paar Dinge konnte ich jetzt begreifen:

    Bei einer Fosc von 16MHz und einer gewünschten Bitrate von 125kbit/s berechne ich also TQ wie folgt: (2*125)/62,5ns=4

    Das SyncSegment muss 1TQ sein, PropSeg setze ich mit 2TQ, PS1 auf 4TQ (BTLMode auf 0) und um die unter 5.3 gelisteten Regeln zu erfüllen also PS2 auf 3. Dann sähe das so aus:

    CNF1 = &B00000100
    CNF2 = &B01100010
    CNF3 = &B00000011

    Aber: Was ist Tdelay unter Punkt 5.3 ? Und wie kommen die bei Punkt 5.3 auf folgende Aussage: "Tosc=50ns, choose BRP<5:0>=04H, then TQ=500ns. To obtain 125kHz, the bit time must be 16TQ" ?? Wäre super, wenn mir das jemand erklären könnte...
    Alles wird gut... Gruß Alex

  8. #88
    Benutzer Stammmitglied
    Registriert seit
    25.09.2007
    Ort
    Oldenburg
    Alter
    50
    Beiträge
    80
    Trotz der Änderungen schreibt er wie es aussieht nichts in den MCP.

    Dieser Part:
    Code:
    Print "Call mcpinit..."
    
    Call Mcpinit()
    
    Print "done!"
    
    Post = Canread(caninte)
    Print "CANINTE:" ; Post
    
    Post = Canread(canintf)
    
    Print "CANINTF:" ; Post
    
    Post = Canread(cnf1)
    Print "CNF1=" ; Post
    Post = Canread(cnf2)
    Print "CNF2=" ; Post
    Post = Canread(cnf3)
    Print "CNF3=" ; Post
    mit MCPinit wie folgt:
    Code:
    Sub Mcpinit()
       Local Can_tmp As Byte                                    'Lokale Variable
       Reset Mcp_cs                                             'MCP Chip select an (aktiv)
       Waitus 10                                                'Warten bis Pegel stabil
       Can_tmp = Cmd_reset
       Spdr = Can_tmp                                           '&HC0 ins SPI Data Register laden
       Do                                                       'Warte bis
       Loop Until Spsr.spif = 1                                 'SPI Interrupt cleared (Transfer abgeschlossen)
       Waitus 10                                                'Warten bis Pegel stabil
       Set Mcp_cs                                               'Chip select wieder an (inaktiv)
       Led_gelb = 1
       Waitms 500
    '   Canwrite Canctrl , &B10001000
       Canwrite Cnf1 , &B00000100                               'Timing &H13=50kbit/s, &H07=125kb/s, &H01=250kb/s
       Canwrite Cnf2 , &B01100010                               '&H90
       Canwrite Cnf3 , &B00000011                               '&H02
       Canwrite Caninte , &B00000011                            'Interrupt einstellen
       Canwrite Rxb0ctrl , &B01100000                           'Buffer 0: Empfangen aller Nachrichten
       Canwrite Rxb1ctrl , &B01100000                           'Buffer 1: Empfang aller Nachrichten
    
       Canwrite Rxm0sidh , 0                                    'Kein Filter, Empfängeradresse Null
       Canwrite Rxm0sidl , 0
       Canwrite Rxm0eid8 , 0
       Canwrite Rxm0eid0 , 0
       Canwrite Rxm1sidh , 0
       Canwrite Rxm1sidl , 0
       Canwrite Rxm1eid8 , 0
       Canwrite Rxm1eid0 , 0
    
       Canwrite Bfpctrl , 0                                     'Deaktivieren der RXnBF Pins (High Impedance)
       Canwrite Txrtsctrl , 0                                   'TXnRTS Bits als Inputs schalten
       Canmod Canctrl , &B11100000 , &B00000000                 'Device zurück in den normalen Modus versetzen
       Led_gelb = 0
    End Sub
    bringt dieses Ergebnis:

    Call mcpinit...
    done!
    CANINTE:0
    CANINTF:0
    CNF1=0
    CNF2=0
    CNF3=0
    Alles wird gut... Gruß Alex

  9. #89
    Benutzer Stammmitglied
    Registriert seit
    25.09.2007
    Ort
    Oldenburg
    Alter
    50
    Beiträge
    80
    Ich bin sicher, daß die Initialisierung des SPI ansich noch fehlerhaft ist. Zwar wird etwas gesendet, aber der MCP scheint einfach nichts zu empfangen / verstehen. Könnte darauf nochmal jemand einen Blick werfen ? Am Montag werde ich mir nochmal genau die Timings der SPI Schnittstelle anschauen...
    Alles wird gut... Gruß Alex

  10. #90
    Benutzer Stammmitglied
    Registriert seit
    25.09.2007
    Ort
    Oldenburg
    Alter
    50
    Beiträge
    80
    Also ich finde einfach nichts, es ist zum Mäusemelken - die SCK Leitung taktet sauber und auf MOSI gehen auch sinnvolle Datenpakete raus. Trotzdem reagiert der MCP auf nichts. Ich würde mich wirklich sehr über Hilfe freuen !

    Testhalber habe ich das Programm von feitzi mal angepasst, das scheint zu laufen, auch wenn ich mit den Ausgaben (noch) nicht wirklich etwas anfangen kann. Vielleicht war der SPI bei mir zu langsam oder zu schnell, keine Ahnung. Oder es liegt einfach an der Ein- und Ausgaberoutine...
    Alles wird gut... Gruß Alex

Seite 9 von 18 ErsteErste ... 7891011 ... LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test