- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 17 von 18 ErsteErste ... 715161718 LetzteLetzte
Ergebnis 161 bis 170 von 177

Thema: Funktionierendes CAN Bus Projekt entwickeln unter Bascom

  1. #161
    Anzeige

    E-Bike
    Hab's gefunden. Der Reset eines MCP2515's hing in der Luft und nicht via Widerstand an VDD.

  2. #162
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2010
    Beiträge
    10
    Hallo!
    ich versuche mich gerade damit auch auseinander zu setzen.
    kann mal Jemand, bitte, den Schaltplan angucken?
    ich habe die RS232 und ISPL von Atmega weggelassen, weil ich die Schaltung möglichst klein haben möchte. Der Atmega8 wird auf dem STK500 geflasht und einfach in den Sockel auf der Platine eingesetzt.
    Sieht da Jemand Fehler im Schaltplan?

    Wenn der Taster gedrückt wird, möchte ich eine CAN-Bootschaft absenden.

    Passt das so?
    Gruss
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken canboard.jpg  

  3. #163
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.10.2007
    Alter
    51
    Beiträge
    128
    Hallo a4b68e,

    die Schaltung passt! Jett mal ans Programmieren

  4. #164
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2010
    Beiträge
    10
    So, die Schaltung habe ich vor 3 Tagen fertiggelötet.

    Nun habe ich mich gestern an das Programmieren gesetzt und wusste nicht, wie ich anfangen soll.

    Ich will KEINE fertige Lösung. ich bin so ein Mensch, der ein Beispiel braucht, um Etwas zu verstehen.
    Könnt Ihr mir sagen welches Quellcode von oben geposteten ich am besten nehmen soll?
    Dann werde ich mich mal hinsetzen und das Studieren.
    Trocken Datenblatt (MCP2515) zu lesen bringt bei mir leider nicht viel.
    Durchgelesen habe ich es aber schon (nur nicht VIEL schlauer geworden).

    Wie ich oben schon geschrieben habe, ich möchte nichts empfangen, sondern erst mal nur senden.

    das Programm wollte ich so aufbauen (ganz grob):

    1. µC configuration
    2. Dim xxx as xxx
    3. CAN configuration
    4. ABFRAGE:
    do
    if Taster=0 then
    goto SENDEN
    5. Senden
    Goto ABFRAGE
    6. End

    Warum nehmen die meisten die 7,3728 MHz Quarze?
    Kann ich auch die 8,000 Mhz nehmen, oder gar den internen 1 Mhz Oszillator verwenden?

    Gruss Alex

  5. #165
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2010
    Beiträge
    10
    Hallo!
    Kann mit jemand was zum Quarz sagen?
    Frage ist oben.
    Gruss

  6. #166
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2010
    Beiträge
    10
    Hallo!
    habe mich mal wieder an das Projekt hingesetzt.
    Die Hardware ist fertig.
    Wie soll ich mit der Software anfangen?
    Gruss Alex

  7. #167
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.10.2007
    Alter
    51
    Beiträge
    128
    Hallo,

    wenn du ganz neu mit dem CAN anfängst würde ich dir empfehlen die den Code aus diesem Beitrag zu nehmen, mit vielen "Print"-Kommentaren zu versehen und einfach mal zu verfolgen was da im Programm so alles passiert.
    Ganz ohne Datenblatt wirst du nicht auskommen da es sehr viele Konfigurationsmöglichkeiten gibt.

    Fang einfach mal klein an und frag wenn du etwas nicht verstehst!

  8. #168
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2010
    Beiträge
    10
    ja, ich fange so zu sagen von 0 mit dem Can-Bus an.
    Mit den µC habe ich aber schon Erfahrung.
    Welchen Code sollte ich genau als Beispiel nehmen?
    Meistens sind es doch spezielle Sachen, die mich "ablenken" und für den Anfang zu kompliziert sind.
    Danke
    Gruss Alex

  9. #169
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2010
    Beiträge
    10
    Hallo!
    ich kenne mein Code schon fast auswendig, aber ich habe das programm immer noch nicht zum Laufen bekommen.
    Ich habe schon alles probiert, was mir nur einfallen konnte.
    Habe jetzt den gesammten Code so weit gekürzt wie es nur geht.
    Ich hoffe ich habe nichts "falsches" weggekürzt.

    für mich scheint das Programm logisch zu sein, und müsste laufen. Tut es aber nicht.
    ich habe am TX vom MCP2515 kein Signal.

    Falls Jemand Zeit hat, BITTE durchgucken. Ich bin schon Ratlos.

    Code:
    $regfile = "m8def.dat"                                      ' ATMega8
    $crystal = 16000000                                         ' Baudratenquarz der AVR (mega8 mit 16MHz)
    $hwstack = 40                                               ' default use 32 for the hardware stack
    $swstack = 80                                               ' default use 10 for the SW stack
    $framesize = 90
    $baud = 9600
    
    
    ' Allgemeine Config ************************************************************
    
    Config Pind.2 = Input                                       'Taster
    Config Portb.0 = Output                                     'LED
    Taster Alias Pind.2
    Led Alias Portb.0
    
    Led = 0                                                     'Grundstellung
    
    
    
    'CAN relevante Config **********************************************************
    
    Declare Sub Mcp2515_write(byval Reg_add As Byte , Byval Reg_val As Word)
    Declare Sub Mcp2515_bitmodify(byval Reg_add As Byte , Byval Reg_mask As Byte , Byval Reg_val As Byte)
    
    
    Mcp2515cs Alias Portb.2                                     'CS am Mega8
    Config Mcp2515cs = Output
    
    
    Const Cmd_write = &H02                                      ' Write Command
    Const Cmd_bitmodify = &H05                                  ' Bit-modify Command
    Const Cmd_reset = &HC0                                      ' Reset Command
    Const Cmd_rts0 = &H81
    Const Cmd_rts1 = &H82
    Const Caninte = &H2B
    Const Canctrl = &H0F
    Const Canstat = &H0E                                        ' Statusregister
    Const Eflg = &H2D                                           ' Error Flag Register
    
    Const Cnf3 = &H28                                           ' Configuration Register 3
    Const Cnf2 = &H29                                           ' Configuration Register 2
    Const Cnf1 = &H2A                                           ' Configuration Register 1
    
    
    Const Txb0ctrl = &B00110000                                 ' Transmit Buffer 0 Control Register
    Const Txb0sidh = &B00110001                                 ' Transmit Buffer 0 Std Identifier High
    Const Txb0sidl = &B00110010                                 ' Transmit Buffer 0 Std Identifier Low
    Const Txb0dlc = &B00110101                                  ' Transmit Buffer 0 Data Length Code
    Const Txb0d0 = &B00110110                                   ' Transmit Buffer 0 Data Byte 0
    
    
    ' Hardware SPI-Schnittstelle konfigurieren**************************************
    
    Config Portb.4 = Input                                      'MISO  von 2515
    Config Portb.3 = Output                                     'MOSI  von 2515
    Config Portb.5 = Output                                     'SCK
    Spcr = &B01010001                                           'Bit7=0:IntAus, Bit6=1:SPIAn, Bit5=0:MSBfirst,
                                                                 'Bit4=1:Masterfunktion, Bit3=0:SCK=0wennIdle,
                                                                 'Bit2=0:L-H-Flanke, Bit1+0=01:AVRClock/16
    
    
    'Programm Start*****************************************************************
    Gosub Can_init
    
    Abfrage:
    Do
    If Taster = 0 Then
    Set Led
    Wait 1
    Reset Led
    Waitms 500
    Gosub Data_send
    Else
    Goto Abfrage
    Loop
    End If
    
    End
    
    'CAN Initialisieren *****************************
    
    Can_init:
    
    Reset Mcp2515cs                                             ' Reset MCP2515
    
       Spdr = &HC0                                              ' IC reset
       Do
       Loop Until Spsr.spif = 1
       Set Mcp2515cs
    
       Waitms 2000
       Mcp2515_write Canctrl , &B10001101                       ' set configuration mode, osm=1, clkout enabled, prescaler /2
    
       ' CAN 100 kbit/s
       Mcp2515_write Cnf1 , &B00000001                          ' Can Geschwindigkeit einstellen (Cnf1-Cnf3)
       Mcp2515_write Cnf2 , &B10111010                          ' Cnf2 = &H29
       Mcp2515_write Cnf3 , &B00000111                          ' Cnf3 = &H28
       Mcp2515_write Caninte , &B00000000                       'Can interrupt disabled
       Mcp2515_write Canctrl , &B00001101                       ' set normal operation mode, osm=1, clkout enabled, prescaler /2
    
    Return
    
    
    'Daten ubertargen    ***********************************************************
    Data_send:
    
       Mcp2515_bitmodify Txb0ctrl , &B00000011 , &B00000011     ' TX-Konfiguration
       Mcp2515_write Txb0sidh , &B10101010                      ' Empfangeradresse setzen
       Mcp2515_write Txb0sidl , &B10101010                      ' Empfangeradresse setzen
       Mcp2515_write Txb0dlc , &B00000001                       ' Paketlange festlegen fur ein Byte
    
    
    'Daten zur Uebertragung************************
       Mcp2515_write Txb0d0 , &B01011101                        ' Zu ubertragende Daten setzen
    
    
       ' Ubertragung auslosen
       Reset Mcp2515cs
       Waitms 20
       Spdr = Cmd_rts0                                          '!!!!! DIESE STELLE IST MIR UNKLAR
    
       Do
       Loop Until Spsr.spif = 1
       Waitus 20
       Set Mcp2515cs
    
       Waitms 2
       Set Led                                                  'LED als Anzeige "Gesendet"
       Waitms 200
       Reset Led
       Waitms 100
    
    Goto Abfrage                                                'Zurück zur Abfrage
    
    
    
    
    
     Sub Mcp2515_bitmodify(reg_add , Reg_mask , Reg_val)
       Local Can_tmp2 As Byte
       Mcp2515cs = 0
       Can_tmp2 = Cmd_bitmodify
       Spdr = Can_tmp2
       Do
       Loop Until Spsr.spif = 1
       Waitms 2
       Spdr = Reg_add
       Do
       Loop Until Spsr.spif = 1
       Spdr = Reg_mask
       Do
       Loop Until Spsr.spif = 1
       Spdr = Reg_val
       Do
       Loop Until Spsr.spif = 1
       Mcp2515cs = 1
    End Sub
    
    Sub Mcp2515_write(reg_add , Reg_val)
       Local Can_tmp2 As Byte
       Mcp2515cs = 0
       Can_tmp2 = Cmd_write
       Spdr = Can_tmp2
       Do
       Loop Until Spsr.spif = 1
       Waitms 2
       Spdr = Reg_add
       Do
       Loop Until Spsr.spif = 1
       Spdr = Reg_val
       Do
       Loop Until Spsr.spif = 1
       Mcp2515cs = 1
    End Sub
    Im Anhang ist der Schaltplan.
    Danke schön
    Gruss Alexander
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken canboard_607.jpg  

  10. #170
    Neuer Benutzer Öfters hier
    Registriert seit
    20.04.2009
    Ort
    Lübeck, Germany
    Alter
    38
    Beiträge
    7

    Schaltpläne für Can Knoten

    Hi @ all,
    ich heiße Oliver bin 27 Jahre jung.
    Immer wenn ich mal Zeit habe beschäftige ich mich mit Elektronik und co.

    So dann wollen wir mal

    Ich weiß das dieses Thema schon älter ist, aber wie man sieht immer noch nicht abgeschoben

    Beschäftige mich schon länger mit dem CAN-BUS, wie gesagt wenn zeit war.
    Habe jetzt ein par Schaltpläne erstellt die ich später mal selber Ätzen möchte usw.
    Wollte jetzt gerne eure meinung zu den Schaltplänen hören, vom Grund her sind sie alle gleich
    es sollen nur verschiedene Knoten sein.

    CAN Atmega USB soll als verbindung zum PC dienen
    CAN Mini Knoten soll nachher in ein Unterputz gehäuse passen
    CAN Uni Knoten soll ein Universal Knoten sein für alles wo ich ein wenig mehr platz habe als in einer Unterputzdose.

    Anstat des Atmega 168 soll ein Atmega 328P-AU in gleicher Form zum einsatz kommen.

    Gruß Olli
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken CAN Atmega USB.jpg   CAN Mini Knoten.jpg   CAN Uni Knoten.jpg  

Seite 17 von 18 ErsteErste ... 715161718 LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test