- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 10

Thema: Frage zu erster Programmierung mit Bascom Programmer

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.07.2009
    Ort
    Gustorf
    Beiträge
    217

    Frage zu erster Programmierung mit Bascom Programmer

    Anzeige

    Powerstation Test
    Hallo zusammen,
    zunächsteinmal möchte ich mich dafür entschuldigen, dass ich trotz der vielen existierenden Threads zu diesem Thema einen neuen aufmache, aber leider konnte ich an den anderen Threads keine Lösung finden.

    Ich kann auch verstehen wenn ihr sauer seid dass nach 4 Jahren in diesem Forum immernoch Anfänger dieses Problem haben, jedoch:

    Mein AVR ISP Programmer gibt nichts zurück.

    Ich habe einen ATMEGA32 dort angeschlossen, als Programmer benutze ich den hier:
    http://www.shop.robotikhardware.de/s...roducts_id=161
    also den Bascom eigenen.

    Installiert ist die software in der Version 1.11.8.7 auf einem WindowsXP System mit allen nötigen Treibern.

    In Bascom ausgewählt ist der USB ISP Programmer.
    Als chip ist der ATMEGA32 eingestellt.

    Ich habe mich zunächst an folgendem orientiert:
    Bild hier  

    (ich gehe mal davon aus das die seite mit den ungeraden Zahlen die auf dem Wannenstecker ist die diese Einbuchtung hat , stimmt das so?)

    Wenn ich nun das Programm übertrage kommt kein Fehler mehr ( ), der Chip wird korrekt erkannt und das Tutorial:

    http://www.rn-wissen.de/index.php/Ba...C3%BCbertragen

    bin ich auch durch gegangen.
    Das einzige Problem ist nun: Ich finde einfach keinen COMport auf dem der USB Programmierer arbeitet und dem Terminal Programm Daten zurück gibt. Das konnte ich auch nirgendwo einstellen.
    Weiss jemand Rat?

    Es grüßt,
    Basteltisch

    edit: oh entschuldigung, der code:

    Code:
    $prog &HFF , &HE1 , &H99 , &H00                             ' generated. Take care that the chip supports all fuse bytes.              $regfile = "m32def.dat"
     $framesize = 32
     $swstack = 32
     $hwstack = 32
    $crystal = 1000000
     $baud = 9600
      Do
        Print "**** RN-Control sagt Hello World *****"
        Wait 1
      Loop

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Hallo Bastelfisch,

    um Daten mit dem Computer auszutauschen brauchst du eine extra Verbindung zw. ATMega und PC!
    Der Programmieradaper ist nur zum programmieren da. Für deine Zwecke muß an den Pins 14 und 15 ein WandlerIC wie der MAX232 angeschlossen werden, welcher wiederum mit der seriellen Schnittstelle deines PCs verbunden wird.

    Gruß Günter

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2008
    Ort
    Esslingen
    Alter
    35
    Beiträge
    235
    Brauchst dich glaub ich nicht dafür entschuldigen dass du ein Anfänger bist und Probleme hast. Anfänger wird es immer geben und ich denke jeder von uns hat mal klein angefangen oder .

    Schau mal hier http://www.rn-wissen.de/index.php/AV...leicht_gemacht unter dem Punkt Daten und Texte zum PC übertragen, da ist das eig. sehr gut erklärt.
    Elektronische Bauteile funktionieren mit Rauch. Lässt man den Rauch raus, sind sie kaputt.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.07.2009
    Ort
    Gustorf
    Beiträge
    217
    Hallo,
    ok ich sehe das war auch nur für das RN Control. Nun hab ich den Quellcode aus der Grundschaltung genommen und es hat fleissig geblinkt

    aber nun will es nichtmehr programmiert werden

    es kommt wieder der Fehler den ich vorher auch immer hatte, Could not Identify Chip FFFFFFF

    Der selbe Fehler kommt wenn man garnichts ansteckt, also muss ein Fehler in der Elektronik vorliegen. ABER: ich habe nichts verändert. ich habe auch den Chip einmal ausgetauscht, jedoch funktioniert es noch immer nicht. Gibt es einen Standart Analyseweg den man gehen kann um dieses Problem zu lösen?
    Ich hab den Programmierer auch nochmal neu auf dem Steckbrett verkabelt, erfolglos.

    Die Schaltung hat bereits funktioniert und wurde nicht verändert.
    Was kann man da falsch machen? Funktioniert der USB Programmer nur für eine einzige Programmierung?
    Es grüßt,
    Basteltisch

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Nein aber es könnte sein, daß du Fusebits gesetzt hast. Dort kann man dem Käfer z.B sagen, daß der Lebenswichtige Oszillator nicht intern sonder extern ist. Dann müstest du auch außen einen Quarz anschliessen, damit er wieder ansprechbar ist.

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.07.2009
    Ort
    Gustorf
    Beiträge
    217
    Hallo,
    also einen Quarz habe ich sogar hier. Aber ich vermute gerade das es schlicht an einem nicht funktionierenden Kontakt lag, da ich als ich den schon Programmierten Chip wieder eingesetzt habe, ich ihn erstmal etwas mit druck nach unten drücken musste damit die LED blinkte. aus dieser Position drückte er sich allerdings auch von selbst wieder hoch. Dann habe ich ein bisschen an den Kontakten rumgebogen und wollte gerade testen ob er wieder erkannt wird, da ist mir mein Wannensteckerklebeklumpen auseinander gefallen. Nun muss ich erstmal einen neuen Wannenstecker zurechtbiegen. Da hatte ich sogar noch einen den ich direkt eingebaut habe. Jedoch habe ich nun gemerkt: Sobald ich das Kabel einstecke wird der Reset ausgelöst (siehe Schaltung oben), das war vorher nicht so. Was kann denn da schief laufen das plötzlich der Reset ausgelöst wird?

    und:
    Muss ich am Wannenstecker GND und VCC verbinden oder sind die nur zur Spannungsversorgung durch den Programmer da?

    Es grüßt,
    Basteltisch

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.07.2009
    Ort
    Gustorf
    Beiträge
    217
    Hallo,
    so nun hab ich ein paar Sachen herausgefunden:
    Wenn der AVR ständig resettet dann muss der Programmer mit Strom versorgt werden damit er damit aufhöhrt.
    Einige Steckbretter sind von der Form her nicht kompatibel zum ab Werk Pinabstand einer AVRs. Da muss man dann ein bisschen rumbiegen was Probleme mit der Konnektivität lösen kann.

    Aber eine Frage hab ich noch, oder eher in Phänomen.

    Habe folgendes Programm:

    Code:
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 1000000
    
    Config Portc.0 = Output                                     
    
    Config Pina.7 = Input
    
    Do
     If Pina.7 = 1 Then                                         'wenn keine Spannung anliegt
     Portc.0 = 1                                                'keine Spannung an LED Port geben
     Else
     Portc.0 = 0                                                'spannung an lED
     End If
    
    Loop
    
    End
    Programm wurde erfolgreich an den AVR gebracht. Nun ist das Problem folgendes:

    Wenn ich an Pin 7.1 ein Kabel anschliesse (aufm Steckbrett anschliesse) und das Ende des Kabels einfach in die Luft hänge und mit dem Finger dagegen Tippe, dann wird auf Portc.0 die manschmal Spannung durchgelassen, ab und zu mal nicht, und das hällt sich in einem Dauerzustand. Das heisst es blinkt ohne Kontrolle, ausgelöst durch mein drauftippen, aber nicht regelmässig, also nicht immer dann wenn ich draufdrücke.

    1 Frage: Wieso bin ich GND?
    2 Frage: Wie kann ich das PRoblem beheben? In der Ursprünglichen Schaltung sollte an diese Stelle ein Schalter. wenn ich so einen Anschliesse wird beim drücken des Schalters die LED ein wenig heller, aber es ändert nichts daran das sie an ist.

    Habe das mit 2 Unterschiedlichen AVRs ausprobiert (einen hab ich mal ausversehen unter 7,2V Spannung gelegt, aber beide machen das selbe)

    Es grüßt,
    Basteltisch

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    1 Frage: Wieso bin ich GND?
    Du bist zwar nicht GND, aber die Eingänge des AVR sind extrem hochohmig. Und das führt dazu, dass jedes kleine Stück Kabel (und erst recht, wenn man es mit der Hand berührt) eine kräftige 50Hz-Störstrahlung einfängt. Und das führt zu ziemlich unkontrollierten Zuständen an den Eingangspins.

    Des Lösels Rätsung heißt PullUp-Widerstand. Du musst ihn noch nichtmal hardwaremäßig anlöten, weil jeder I/O-Pin des Controllers einen eingebauten PullUp-Widerstand besitzt. Den muss man allerdings aktivieren, indem man das dazugehörige PORT-Register auf 1 setzt. In Deinem Beispiel sähe das etwa so aus:

    Config PINA.7 = Input
    PORTA.7 = 1

    Do
    ...
    ...
    Loop

    Dann müsste es gehen!

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.07.2009
    Ort
    Gustorf
    Beiträge
    217
    Hallo,
    oh danke das funktioniert.

    Aber wieso?
    Wenn ich den Internen Widerstand aktiviere, dann gibt es eine geringere Spannung auf dem Port.
    Und genau dieser Zustand, also ob wenig Spannung auf dem Port ist fragt man ja mit
    If Pina.7 = 1 Then
    ab.

    Wenn es nun keinen Widerstand gäbe der die Leitung komplett unterbricht, wo würde man denn dann zwischen Pina.7 = 1 und = 0 unterschieden?

    Es grüßt,
    Basteltisch

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Also: Wenn nur (!) der PullUp-Widerstand angeschlossen ist, liegt am Pin nicht nur eine geringe Spannung an, sondern genau 5 Volt (bzw. die Betriebsspannung). Demzufolge hast Du vollkommen Recht, dass in diesem (unbeschalteten) Zustand PINB.7 immer 1 ist.
    Wenn Du diesen Pin jetzt aber von außen auf GND legst (über einen Taster, oder aber auch über den Ausgang eines anderen Logik-ICs, der gerade LOW ist), "überstimmt" diese Erdung den PullUp-Widerstand sozusagen, und der Pin geht auf LOW. PINB.7 ist dann 0. Und weil der PullUp-Widerstand sehr hochohmig ist, fließen durch diese "Erdung" nur ein paar Mikroampere.

    Ein I/O-Pin ohne jede Beschaltung flattert vollkommen unkontrolliert zwischen High und Low hin- und her. Man muss also dafür Sorge tragen, dass er nur die kontrollierten Zustände HIGH oder LOW annimmt. Und wenn Du einen Taster nach GND hast, muss irgendetwas den Pin auf High ziehen, wenn der Taster geöffnet ist.

    Deshalb gehen auf allen Experimentierboards die Taster auch immer nach Masse - und nicht nach +5V

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad