Archiv verlassen und diese Seite im Standarddesign anzeigen : ATMega8 mit L293 läuft nicht
Hallo Leute,
ich brauche unbedingt Hilfe.
Hab mir einn Board für meinen Roboter gebaut mit einem atMega8 drauf
Allerdings läuft nichts. Auf einmal haben fast alle Pins des AtMegas High Pegel, und der L293 stoppt nur die Motoren!
Hier mal der programmcode, damit sich nur die Motoren drehen:
$regfile = "m8def.dat"
$crystal = 1000000
$hwstack = 32
$swstack = 32
$framesize = 100
Config Portc.0 = Output
Config Portc.1 = Output
Config Portc.2 = Output
Config Portc.3 = Output
Config Portb.1 = Output
Config Portb.2 = Output
'Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8
'Main
' Motorschnelligkeit einstellen
Pwm1a = 100
Pwm1b = 100
Do
'Motoren alle an!
Portc.0 = 1
Portc.1 = 0
Portc.2 = 1
Portc.3 = 0
Loop
End 'end program
Und noch die Schaltung...
Ich fänds echt super wnen mit irgendjemand helfen kann, weil es ziemlich deprimierend ist, wenns net läuft...
021aet04
15.08.2009, 19:58
Ich würde bei der Schaltung die Steckverbinder,... beschriften, für was diese sind. Hast du schon Programme geschrieben?
ne das ist mein erstes Programm welches ich irgendwo einbaue...die anderen waren nur zum versuchen usw.
Ich hab die Schaltung mal beschriftet
Besserwessi
15.08.2009, 20:54
Wie wird denn das Programm übertragen ? Gibt es da schon Probleme ?
Ist sicher das die Stromversorgung einigermaßen stimmt ?
Als ein erster Test wäre sonst ein Blinkprogramm einfacher. Wenn die Frequenz niedrieg genug ist, kann man auch mit dem Voltmeter was sehen, sonst eine LED mit vorwiderstand.
021aet04
15.08.2009, 21:04
Genau deswegen habe ich gefragt. Ich würde anfangen mit funktionierende Programe zu verändern und dann einfache Ein und Ausgabeprogramme selbst zu schreiben. Danach kannst du dich immer steigern.
also so blink programme und welche mit schaltern hab ich eigentlich genug gemacht^^
Also das programm wird fehlerfrei übertragen funkts auch aufm stk500 aber nicht in meiner schaltung...
Hubert.G
15.08.2009, 22:42
Den Mega8 aus dem Sockel nehmen und mit Drahtbrücken die Verbindungen herstellen.
021aet04
15.08.2009, 22:53
Ich würde ein Blinkprogramm hinaufladen, bei dem du weißt, dass es schon funktioniert hat und dann misst du am Besten nach. Als erstes würde ich die Versorgung messe. Eventuell würde ich eine Led an die Versorgungsspannung anschließen, damit du sofort weißt, ob Spannung vorhanden ist
leider hab ich kein steckbrett um das mal so aufzubauen...
Aber mit dem blinkprogramm hochladne und messen werde ich mal ausprobieren.
Hubert.G
16.08.2009, 11:00
Du brauchst da kein Steckbrett dazu, es sei denn, du hast den Mega8 fest eingelötet. Die drei notwendigen Verbindungen je Motor kannst du mit dünnem Draht im Sockel auch machen.
aso cool, danke!
das werde ich mal ausprobieren
Hallo,
Also ich hab das mal ausprobiert, aber irgendwie sind die Ausgänge alle auf 0V. Wenn ichd en L293D anschließe haben die 1,7 und 1,2 V, weil der L293D die Spannung ausgibt.
Aber ist das denn normal, dass der L293D Spannung abgibt?
Wie könnte ich denn erkennen, dass der L293 kaputt ist?
Auf dem Stk500 läuft alles einwandfrei, und die Pins geben auch das aus, was sie sollen!
Lg Julian
Besserwessi
16.08.2009, 21:46
Das kann durch aus sein das der L293 ein spannung wie die 1,5 V ausgibt, wenn da keine Wirkliche Last dranhängt.
Vermutlich wird der µC gar nicht richtig laufen wiel irgendwas mit der Versorgungsspnnung oder dem Reset Pin nicht stimmt. Wenn die Fuses schon verstellt sind könnt auch der fehlende Quarz das Problem sein.
Hubert.G
16.08.2009, 21:58
Wenn du auf die richtigen Pin des Mega8 Sockel VCC und GND drauflegst, dann sollte der Motor laufen wenn alles richtig ist. An offenen Eingängen messen macht wenig Sinn.
ich habe grad noch mal alle pins des Atmegas auf des stk500 gemessen, und bemerkt, dass Reset auf high ist und aus Pin 9 (Xtal1) 2,55 V rauskommen.
Hubert.G
17.08.2009, 15:18
Reset high muss sein, sonst läuft der Kontroller nicht, auf XTAL1 ist der Takt vom STK500 drauf.
also muss ich einfach noch einen 10k von reset an VCC machen?
Hubert.G
17.08.2009, 17:08
Ja, und eventuell noch einen Kondensator 10n von Reset nach GND.
da hab ich schon n schalter von Reset nach GND
Hubert.G
17.08.2009, 17:51
Der stört nicht, mach den Kondensator parallel dazu.
ich hab mal ausprobiert, den atmega aufm stk 500 zu lassen und dann den l293 anzuschließen, und siehe da es hat geklappt.
Nur weiß ich nicht wo dann in meiner Schaltung der Fehler liegen soll.
Es muss ja irgendwie am Anschluss des Megas liegen.
Hubert.G
18.08.2009, 16:26
Du wirst die Schaltung nicht so aufgebaut haben wie im Schema. Es wäre auch noch möglich das in den Fuses was drinnen steht, so das es nur im STK funktioniert.
die schaltung hab ich genauso aufgebaut, hab den schaltplan als Layout auf der Platine. Aber fuses? was ist das denn genau?
Hubert.G
18.08.2009, 19:26
Ich nehme mal an das du das Programm das du geschrieben hast mit BASCOM auf den Kontroller draufspielst. Da muss es auch die Möglichkeit geben die Fuses auszulesen. Heisst glaube ich Lock and Fusebits.
Wenn da nicht der Interne Oszillator aktiviert ist, dann kann es nicht funktionieren.
okay ich guck ma nach, ich ahb das über avr studio rübergeladen...
also da gibt es mehrere int oszi 1mhz start up time: 6ck 0ms...welche muss man denn da nehmen?
Hubert.G
18.08.2009, 20:14
Ist bei dir eigentlich egal, gibt an wie lange das Programm nach dem Oszillatorstart noch wartet bis es läuft.
okay ich hab mal das erste genommen und eine Motor läuft schon =)
allerdings läuft der zweite nich, weil anscheinend an Portc.1 eine Spannung von 3 V rauskommt? Woran kann das liegen? das wäre dann nämlich eines der letzten probleme =)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.