-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Ganz einfach: Programm starten

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    16.12.2009
    Beiträge
    34

    Ganz einfach: Programm starten

    Anzeige

    Hi,

    ich nutze z.Zt. die M32 Platine als Testplatine für ein paar Dinge - OHNE die robot BASE.

    Nun wenn ich mit dem rp6 loader das prog auf die m32 lade und autom. starte ist alles ok.
    Aber wie kann ich ohne die Base das programm starten.

    Mit "low legen" des MRESET Pins am XBUS1 Stecker kann ich den Controller komplett neu starten, auf dem Display kommt "bootloader 1.4" usw.
    Aber wie kann ich von diesem Punkt an in die Main-Schleife starten? Also welches Signal muss an welchen Pin?

    Gruß

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    16.12.2009
    Beiträge
    34
    manchmal ist beim ab- u. aufstecken das programm auch so gestartet.

    Mein Gedanke war dass es durch den MRESET passiert, so würde es ja auch nach schaltplan sinn machen.
    Jetzt habe ich festgestellt dass das Programm zuverlässig startet (nach dem bootload bildschirm "ready to.." wenn ich den Pin 12 am XBUS1, sprich SDA auf GND lege, entweder direkt oder per Widerstand, zb 100k. Ich verstehe es einfach nicht. Wäre super wenn mir jemand sagt was dahinter steckt

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    32
    Beiträge
    1.514

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    16.12.2009
    Beiträge
    34
    Vielen Dank!
    Nur mir stellt sich noch die Frage (weil ich das etwas unschön finde den SDA pin auf low zu ziehen der ja evtl. grundsätzlich mal für I2C genutzt wird) WO im Programm der M32 befindet sich die Stelle an der es heißt:

    "wenn sda= low, starte programm"

    Ich würde dafür nämlich sehr gerne einen anderen Pin verwenden.

    Danke schonmal!

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    32
    Beiträge
    1.514
    Das ist im Bootloader integriert. Das muss so gemacht werden da auf dem RP6 ja ggf. mehrere Controller gleichzeitig (und nur über einen zentralen Taster oder per Kommando) gestartert werden sollen.
    Der I2C Bus wird dadurch NICHT gestört.

    Einzige andere Alternative ist ein "s" über die serielle Schnittstelle zu senden - oder den Bootloader löschen und dann nur noch über ISP programmieren.

    MfG,
    SlyD

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    16.12.2009
    Beiträge
    34
    Super danke.

    Es führt genau zu dem Thema hin wo ich nicht fit bin.

    Wie genau kann ich mir den Bootloader vorstellen, wo und wie wird er erstellt, draufgeladen, wie lösche ich ihn, wie wird das programm mit dem bootloader "verbunden".. In dem Bereich bin ich ehrlich gesagt nicht sehr fit.
    Hast du hierfür einen guten link den ich mir mal in Ruhe zu Gemüte führen kann?

    Du hast es auch schon angesprochen "den bootloader löschen" und über spi programmieren.

    Da soll das Ziel hingehen. Ich würde gerne später über einen Atmel Programmer (weiß nicht genau welchen wir haben) den Controller über die SPI schnittstelle programmieren. Wie genau gehe ich da vor? Die kleinen Hardware Änderungen machen und den Bootloader löschen, das wars?

    Wäre super wenn du mir für diese Thematik ein paar links bereitstellen könntest, vielen Dank!

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    32
    Beiträge
    1.514
    Der Bootloader ist schon ab Werk im RP6 Controller drin - damit man den Prozessor auch einfach nur mit dem USB Interface programmieren kann (und mit demselben Interface auch die serielle Ausgabe möglich ist).
    Den kann man nur über ISP löschen sonst nicht.

    http://www.rn-wissen.de/index.php/Bootloader
    http://www.rn-wissen.de/index.php/RP6
    http://www.roboternetz.de/community/...RP6-Bootloader

    Im RP6 Artikel steht auch was zum ISP Anschluss.

    Du musst da aber etwas aufpassen - nicht die Fusebits verstellen da kannst Du Dich leicht "aussperren" (noch ein Grund für den Bootloader: damit kein Anfänger unabsichtlich den Prozessor "zerfused").

    MfG,
    SlyD

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    16.12.2009
    Beiträge
    34
    Ok danke, sind denn im Bootloader noch andere Programm-relevante Dinge enthalten, zusätzlich zum Programm start bei SDA low.

    Also wenn ich mich entscheiden würde den Bootloader runterzuschmeißen und über ISP zu programmieren.
    Mein Programm ist nach wie vor das selbe, dann müsste ich schonmal die Änderung vornehmen dass ich das programm nicht über den SDA starten muss, sondern anders. Meine Frage ob ich dann noch andere Änderungen, zusätzlich zu der SDA_low Geschichte vornehmen müsste damit alles so funktioniert.

    Gruß

    edit:
    In zusammenhang mit ISP wird oft auch "bootloader löschen" genannt. Aber es ist doch auch möglich "alles so zulassen" und lediglich die Hardware umzubauen, damit ich per Uart(bootloader) oder eben ISP programmieren kann - wahl per steckbrücke. Wenn ich nun per ISP programmiere ist der bootloader ja dann völlig außer acht - d.h. mein Programm würde in diesem Fall automatisch starten?
    Geändert von morten1027 (15.09.2011 um 07:37 Uhr)

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2008
    Alter
    32
    Beiträge
    563
    Ich bin in dem Thema auch nicht 100% fit. Aber so habe ich es damals verstanden:

    Der Bootloader initialisiert einen Teil der Hardware (u.a. die Kommunikation über UART und Co.) damit du über den USB-Adapter oder was halt beiliegt programmieren kannst. Der Bootloader ist im Prinzip auch "nur" ein normal geschriebenes Programm welches aber in einem speziellen Bereich des Speichers abgelegt wird.

    In den Fuses kannst du einstellen, dass
    a) der Bereich mit dem Bootloader geschützt wird (so kannst du auch über ISP Programme flashen ohne den Bootloader zu beeinflussen) und
    b) wie groß der reservierte Bereich für den Bootloader sein soll.

    Wie es beim RP6 ist kann ich nicht genau sagen, ich weiß nur, dass wir bei einem Projekt auf Basis eines Asuros (ich war für die Mechanik zuständig) Teile des Bootloaders brauchten damit die vorgegebenen Funktionen (wie MotorSpeed(); MotorDir(); ect. funktioniert haben.
    Alles ist möglich. Unmögliches dauert nur etwas länger!

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    32
    Beiträge
    1.514
    Hallo,

    die RP6Library ist unabhängig vom Bootloader das funktioniert auch ohne (das geht natürlich auch auf dem ASURO Du musst nur die Hardware richtig initialisieren).

    Den RP6Loader / RobotLoader kannst Du dann nur noch als Terminal verwenden, aber nicht zum Flashen.


    Die normalen ISP Programmer löschen übrigens den ganzen Speicher, per ISP kannst Du keine einzelnen Speicherbereiche löschen wie im Bootloader da wird immer der ganze Chip gelöscht - inklusive Bootloader.
    Nein das können keine Fusebits verhindern die sind nur um den Bootloader vor sich selbst oder verrückt spielenden Anwenderprogrammen zu schützen.
    Wenn die Lockbits gesetzt sind ist ohnehin über ISP vorher ein komplettes löschen notwendig.

    Jaja man kann das device erase deaktivieren (bringt aber aus oben genanntem Grund nix) - das willst Du aber auch nicht wirklich machen denn Flash Speicher MUSS vor dem neuprogrammieren gelöscht werden. Man kann da nur Nullen speichern. Einsen werden gelassen wie sie sind. Daher muss vorher der Speicherbereich (eine Page oder der ganze Chip) komplett gelöscht werden damit zu beginn alles auf 1 steht.


    Du kannst aber natürlich den Bootloader mit den bereitgestellten hex Dateien wiederherstellen (wenn Du die Fusebits richtig einstellst - genau so wie in den PDFs die dabei sind angegeben). Beides gleichzeitig verwenden geht allerdings nicht so ohne weiteres.

    MfG,
    SlyD

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Ist bestimmt ganz einfach habe aber einen Knoten im Kopf :-)
    Von becki133 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 19.04.2008, 17:53
  2. USB zu SERIELL ganz einfach
    Von gpsklaus im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 20.05.2006, 20:07
  3. lcd ansprechen mit winavr-c ganz einfach...
    Von super_castle im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 11.02.2006, 21:50
  4. [ERLEDIGT] Schrittmotor soll sich einfach nur drehen, aber ganz langsam
    Von der warst im Forum Motoren
    Antworten: 18
    Letzter Beitrag: 25.02.2005, 15:32
  5. Roboter per Bluetooth steuern. Ganz einfach?!
    Von grind im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 22.01.2005, 17:50

Berechtigungen

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