- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 25

Thema: UART-Bootloader in Bascom AVR

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Ja brennen heißt übertragen oder flashen

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.03.2006
    Ort
    Hinsdorf
    Alter
    49
    Beiträge
    381
    hi,

    wenn Du den Bootloader von Bascom nehmen willst so musst Du bei den Fusebit für die Bootloadergröße 1024 (Fusebit High FE) einstellen. Mit dieser Einstellung sagst Du dem ATmega zu welcher Adresser er nach einem Reset springen soll und den Code, der darin steht, ausführen soll. Dann musst Du noch mit den Fusebit High D sagen, dass er nach dem Reset nicht an der Adresse $0000 beginnen soll sonder bei nem Mega 8 bei $c00.
    Danach musst Du den Bootloader per ISP auf den Mega übertragen. Der Bootloader sitzt am Ende vom FlashRom und hier liegen die Gefahren! Dein Programm darf jetzt nicht mehr 8k groß sein sonder 8k minus den 1024byte vom Bootloader. Ist Dein Programm größer, überschreibst Du den Bootloader. Das Programm wird nach dem Brennen laufen aber Dein Bootloader wird nicht mehr funktionieren!!!
    Wenn Du den Bootloader nicht mehr benötigst, dann kannst Du Deine Einstellungen der Fusebits so lassen und immer noch per ISP flashen.
    Wie funktioniert der Bootloader....:

    1. nach einem Reset springt der Programmzeiger zu dem Bootloader
    2. der Bootloader wartete nun auf ein Zeichen=====>>>>> 123 von der seriellen schnittstelle
    3. in einer Schleife fragt er nun 5 mal ab, ob etwas ankommt, kommt nichts dann springt er nach $0000 und beginnt mit dem Programmablauf
    4. bekommt er nun ein 123 dann wird der Bootloadercode geflasht


    nun kannst Du in Deinem Code auch den Interrupt der Seriellen Schnittstelle dazu nutzen, um ohne ein Reset den Programmcode zu flashen:

    Code:
    'Interrupt declarieren
    Enable  Urxc                                                                                                                                            'urxc1 für com2
    On Urxc Rxd_isr
    Dim Rx_data As Byte
    
    'Interruptroutine
    Rxd_isr:                                                                                                                                               '
    Rx_data =  Udr0                                                                                                                                         'Zeichen aus UART1 holen; udr1 = UART2
    If Rx_data = 123  Then                                                                                                                                  'vom MCS-Programmer geschickte "123" empfangen?
       Goto &H1800
    End If
    Aktivierst Du jetzt über Bascom den Upload des Programms über die Serielle Schnittstelle so springt Dein Programm nach dem Empfang des Rx-data "123" an die Speicherstelle wo der Bootloader liegt und das Programm was darin steht übernimmt alles weitere.

    Noch ein kleiner Tipp von mir:

    in dem Bootloadercode in Bascom musst Du folgendes einstellen:
    * dein verwendeter Quarz
    * die Baudrate mit der Du die Schnittstelle betreiben willst
    ==>> die baudeinstellungen musst Du dann auch in Deinem Programmcode so nutzen und natürlich auch als Parameter in den Einstellungen vom Programmierfenster!

    Danach den Code compelieren und dann per ISP flashen...

    Viel Spassssss

    MAT

Ähnliche Themen

  1. Bascom Bootloader
    Von fiatx im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 21.03.2011, 10:12
  2. BASCOM 2te UART oder software UART
    Von Snecx im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 18.02.2009, 23:25
  3. bascom bootloader problem
    Von Rasieel im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 20.10.2008, 19:56
  4. bascom bootloader installiern
    Von aphex-world im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 21.09.2008, 17:24
  5. BASCOM-Bootloader M8 AN#141
    Von stupsi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 17.12.2005, 17:53

Berechtigungen

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

Labornetzteil AliExpress