Archiv verlassen und diese Seite im Standarddesign anzeigen : Mikrokontrollerschaltung funktioniert nicht
Hallo,
ich bräuchte Hilfe in Bezug auf eine MC Schaltung.
Ich habe eine Platine mit dem volgenden Schaltplan erstellt. Ich kann den Mikrokontroller auch beschreiben und auslesen. --> funktioniert
Schaltplan:
http://de.geocities.com/postboxelektronik/box/
Jetzt habe ich ein minimales programm geschrieben um den Controller zu testen, befor ich das richtige Programm übertrage.
Test-Programm:
#include t89c51cc01.inc
loop:
setb p4.0
setb p4.1
ljmp loop
end
Wieso funktiodiert das nicht? Ich bin mir auch sicher, dass der MC ok ist.
Danke für eure Hilfe
loop:
setb p4.0
setb p4.1
ljmp loop
....da passiert nicht viel...p4.0 bleibt 'high'..p4.1 ebenfalls.
schreib doch mal clr p4.0 und clr p4.1...dann geht der jeweilige ausgang 'Low'
Habe die Schaltung nicht angeschaut es sollte natuerlich intern oder extern ein widerstand nach +Versorgungsspannung vorhanden sein.
Ed
zum einen müssen da -wie bereits gesagt wurde- irgendwo pull-ups rein
musst ma sehen ob der µC auf den Pins schon welche intern hat oder ob du die selber anbauen musst...
aber deine schaltung ist dennoch unpraktisch (jedenfalls was das beep-teil angeht)
Der µC setzt beim reset alle pins auf 1 - demnach musst du nach jedem reset ganz schnell dafür sorgen, dass der pin wieder auf 0 geht, sonst geht dein beep-teil los
pratischer ist es, mit nem low pegel zu schalten, dann werden solche sachen beim reset automatisch ausgeschaltet...
gruß sven
Hallo WLD,
habe gerade den Schaltplan bezueglich P4.0 und P4.1 angeschaut.
P4.1 hat einen 1,5k nach +...der 1 k nach 0V muss weg,sonst ergibt sich kein vernuenftiges brauchbares digitales Signal.
P4.0 : falls intern kein pullup geschaltet ist wird da nie etwas pfeifen...oder hat p4.0 etwa einen pushpull-aehnlichen Ausgang (habe Datenblatt nicht gesucht)
Falls nicht ...schalte einen 1.5k nach +5V und erhoehe den 2k2 auf 4k7
ist das dein erstes Spiel mit MCs?
Ciao
Ed
Sorry ...sehe gerade,dass an 4.1 NUR ein 1K nach null geht...das andere ist eine (moegliche ) Bruecke um High zu setzen....
Willst Du diesen Pin als Ausgang benuetzen,dann NIEMALS eine Bruecke...sonst geht er Floeten(ohne Beeper)....also wie gesagt 1k5 nach +V und den 1K weg!!
Huch, da war Ed schneller als ich, da brauch ich nich viel zu ergänzen. grundsätzlich benötigen Aus-bzw Eingänge Pullups (Widerstände gegen +), machmal sind welche bereits intern vorhanden-- Datenblatt! Pulldown (Widerstände nach Masse) sind für MC- Schaltungen eigentlich nicht gebräuchlich (weil Unsinnig, der MC zieht als Ausgang den Anschluss nach Masse-- Grundlagen). Wenn du dieser Regeln befolgst, kann nicht mehr schief gehen. Ein Ausgang eines MC ist immer mit 0 (Masse) aktiv. Also clr p4.0 etc...:)
Hab grad nochmal deinen Plan betrachtet. Die Resetschaltung gibt mir zu denken, nur eine Diode in Sperrichtung?
hatte grad richtige probleme deinen schaltplan gscheit anzuschaun, aber s ging.
könntest du den nächsten dann als bilddatei oder so abspeichern? word is nämlich keine bildbearbeitung *gg*
helft mir,
auf die Sprünge bei mir öffnet der Schaltplan sich als Word_doc und ist nicht lesbar, weil viele Linen durch Maßstabanpassung unterdrückt werden.
hi winne,
das sieht nur auf den ersten Blick so aus: du musst die Vergroesserung auf 500% stellen, dann kommen die Linien. Was beim Eagle automatisch geht: es werden niemals die feinen Linien weginterpoliert, wenn man z.B. von Plan=300dpi auf Bildschirm=72dpi umrechnet-> das kann Word eben nicht richtig ;)
jojo... bloß dann braucht des teil so lang, um weiterzuscrollen (3GHz HT),
naja.. der rechner is sowieso halb schrott
jojo... bloß dann braucht des teil so lang, um weiterzuscrollen (3GHz HT),
naja.. der rechner is sowieso halb schrottbei mir dauerts so ca. 2s fuer e. neuen Bildschirmaufbau :
PII/400MHz, ATI3Drage mit virtuell 2048x1536 auf 1152x864 Ausschnitt :)
Peter Dannegger
09.04.2005, 17:13
jojo... bloß dann braucht des teil so lang, um weiterzuscrollen (3GHz HT),
naja.. der rechner is sowieso halb schrott
(3GHz HT) ist definitiv kein Schrott (habe ich auch).
Word ist Schrott, um Bilder auszugeben.
Versuchs mal mit png, pdf, jpg-Format.
Ich drucke immer mit irgend einem Postscript-Drucker in ein File und dann mit Ghostscript ab nach PDF.
Astreine Qualität und auch nicht zu groß.
Peter
P.S.:
Wenn der Poster die Schaltung in ein lesbares Format kriegt, könnte ich ja auch mal einen Blick drauf werfen.
@rudo
lol
"weginterpolieren" welch schöner Wort. Mir denkt durch Interpolation werden Zwischenwerte funktionentsprechend hinzuermittelt. Aber wenn man's mit negativem Faktor betrachtet, auch gut.
Jupp 500 fach ist nicht schlecht. Nur stehste da wie 'n Maulwurf vorm Wandbild.
Habe Seite auf Querfomat gedreht und dann Bild auf druckbaren Bereich gezerrt, dann ausgedruckt.
Naja lesbar aber immer noch nen bissel winzig die Strukturen. Immerhin bekommt mann jetzt raus was gemeint ist.
@ topic
auf jeden Fall scheint mir, am Reset fehlt nen Pulldown (beim 51er war der doch highaktiv). Oder war da intern nen Pulldown ? (Datenblatt befragen) Die Frage stand hier schon mal bei nem andern 51er. Alles Andere wurde schon gesagt.
WLD,
wir haben fertig!
und DU?
hallo,
sorry für die lange antwortzeit.
- ich habe noch mal nachgesehen, der MC hat interne pull ups.
- der widerstand am p4.1 muss natürlich dann weg:o
- den reset betätige ich über die klemme K1 (habe dazu ein stecker)
- ich habe die ports 4.0 und 4.1 zum probieren genommen. Da tut sich aber überhaupt nichts, egal was ich da hinschreibe. (setb oder clr)
habe ich vielleicht einen wichtigen eingang vergessen zu beschalten?
Hallöchen Wld!
Leider hab ich den Schaltplan jetzt erst angeschaut...
Und ohne jetzt alle Antworten durchgelesen zu haben:
Im Schaltplan ist der "EA\" (External Access, invertierte Logik) nicht auf 5V gelegt! Das muss unbedingt sein, sonst sucht der Controller im Externen Speicher das Programm... Aber da Du den internen verwendest, musst Du ihm durch diesen Pin auch sagen, dass er den internen verwendet...
Zitat aus dem Datenblatt von Seite 4:
"EA\ should be strapped to VCC for internal program executions."
Viele Grüße und gutes Gelingen!
Andreas
hallo,
- ich habe die ports 4.0 und 4.1 zum probieren genommen. Da tut sich aber überhaupt nichts, egal was ich da hinschreibe. (setb oder clr)
habe ich vielleicht einen wichtigen eingang vergessen zu beschalten?
Hast Du vergessen das Datenrichtungsregister zu setzen?
Habe EA auf +5V gelegt und den R27 entfernt --> tut immer noch nicht
Hast Du vergessen das Datenrichtungsregister zu setzen?
Was meinst du mit dem Datenrichtungsregister?
was ist das? Wie wende ich es an?
wenn Du das von Andy gesagte beachtet hast,
Dann must Du im Progrmm irgendwo definieren das die Pins als Ausgänge arbeiten. Normalerweise werden alle Pins als Eingänge vorprogrammiert. Zum definieren der Datenrichtung am jeweiligen Port (->8 Pins) gibt es in jedem µC zu jedem Port ein Datenrichtungsregister, mit welchem festgelegt wird welcher Pin Eingang und welcher Pin als Ausgang zu beschalten ist. Dies kann sich auch während des Programmes ändern, wenn zum Beispiel Daten mit wechselnder Richtung über dieselben Pins übertragen werden sollen.
Hierzu solltest unbedingt Du das Datenblatt Deines µC lesen(ausführliche Fassung), darin ist alles erklärt.
Genaueres zu Deinem 51er kann ich dir nicht sagen, da ich AVR's benutze und mich mit den Spezifika der 51er nicht konkret genug auskenne. Hier ist wohl edgar der Spezi. Die Grundsätze jedoch sind identisch.
Elektrikser
10.04.2005, 13:46
Datenrichtungsregister? Das ist beim AVR vollkommen richtig, aber der '51er hat das nicht.
Hier mal ein Blinklicht zum Test:
start: mov p1, #01h
call zeit
mov p1, #00h
call zeit
ljmp start
zeit: mov r7,#05h
s3: mov r6,#0c3h
s2: mov r5,#0ffh
s1: djnz r5,s1
djnz r6,s2
djnz r7,s3
ret
end
Gruß Gerd G.
Datenrichtungsregister :
AVR = ja
8051 = gibts nicht ( ausnahmen abgesehen )
Beim 8051er ist P0 open drain ,
die anderen Ports haben einen schwachen pull-up .
Datenrichtungsregister? Das ist beim AVR vollkommen richtig, aber der '51er hat das nicht.
Hier mal ein Blinklicht zum Test:
start: mov p1, #01h
call zeit
mov p1, #00h
call zeit
ljmp start
zeit: mov r7,#05h
s3: mov r6,#0c3h
s2: mov r5,#0ffh
s1: djnz r5,s1
djnz r6,s2
djnz r7,s3
ret
end
Gruß Gerd G.
Das Programm tut auch nicht. Ich habe konstante 4,9V am Port 4.1 (habe Port 1 mit 4 ersetzt)
Das Programm tut auch nicht. Ich habe konstante 4,9V am Port 4.1 (habe Port 1 mit 4 ersetzt)welchen Pegel kannste denn am Pin "ALE" messen ?
welchen Pegel kannste denn am Pin "ALE" messen ?
1,7V
Elektrikser
10.04.2005, 14:27
Der Port sollte im Sekundentakt blinken. Wenigstens habe ich die Zeit so ausgelegt.
Der Reset sieht bei meiner Schaltung mit einem 89S53 so aus:
+5V --> 10µF --> Reset --> 10kOhm --> GND.
EA muss auf +5V.
das ist o.k.. Es zeigt, dass dein mc ueberhaupt was tut (Oszillator schwingt).
AndreasH
10.04.2005, 14:42
Hallo,
ich verfolge das hier seit einigen Tagen.
Ich hatte mir vor einigen Tagen den Schaltplan schon mal angesehen.
Da es ziemlich schwierig war den Schaltplan in Word anzusehen, habe ich ihn jetzt mal in Word vergrößert.
Ich komme mit der Belegung nicht klar. Es gibt Differenzen zwischen dem Datenbaltt und Deinem Schaltplan.
Laut Deinem Schaltplan ist EA auf 12. Im Datenblatt für den T89c51cc01 ist aber EA im PLC44-Gehäuse auf Pin 11 und im VQFP44 auf Pin5.
Desgleichen XTAL1/2, P4.0, P4.1 usw.
Seid Ihr sicher, dass Ihr alles über das gleiche sprecht.
Oder stimmt der Schaltplan nicht?
Konnte ihn mir auf Grund der Vergrößerung nicht komplett ansehen. Die Pinbelegung ist mir aber aufgefallen.
Grüße
Andreas
Elektrikser
10.04.2005, 15:03
Tja, habe mir gerade das Datenblatt geladen. Andreas hat Recht.
Welchen MC hast du? Welches Gehäuse?
(3GHz HT) ist definitiv kein Schrott (habe ich auch).
nein, 3GHz HT is kein schrott, aber mein rechner... *gg*
Ich nutze ihn im PLCC52 gehäuse.
Schaltplan im word dokument:
ich habe es ins word kopiert damit man ohne verluste vergrößern kann. --> vektorgrafik
ich weis nicht genau mit welcher dateiendung ich es speichern kann (Bilddatei) damit es auch als vektorgrafik gilt.
Elektrikser
10.04.2005, 16:29
Also den AT89C51AC3?
Weil du in dem ersten Post den T89C51CC01 includet hast (der hat ein anderes Gehäuse und ein andere Pinbelegung).
O.K., dann werde ich mir den ansehen...
ich weis nicht genau mit welcher dateiendung ich es speichern kann (Bilddatei) damit es auch als vektorgrafik gilt.nimm *.wmf fuer Vektorgrafiken (Windows Meta File)
Hallo WLD,
ich wollte nur kurz sagen,dass Du Dein Projekt tuechtig und mutig vorantreibst!
Nicht einfach ist es aus der Vielfalt der Antworten die Richtigen auszuwaehlen und umzusetzen.
Wichtig ist jetzt - und Andy hat die richtige Richtung angezeigt - dass Dein MC mit korrekter Beschaltung versorgt wird.
Dazu gehoert sicher auch ( mindestens) eine RC reset schaltung....das hatte ja schon jemand erkannt,dass nur eine Diode vorhanden ist. Ohne Reset geht nix.
Die Sache mit dem *.doc geht doch....sogar auf meinem urW98...x500.
Ed
anfangs wuerde ich auch alle anderen Ics rausnehmen(hoffentlich hast Du Sockel.
Datenblatt lesen nie vergessen...ein 52 Pinner ist eben kein 2051.
Hallo WLD,
Wichtig ist jetzt - und Andy hat die richtige Richtung angezeigt - dass Dein MC mit korrekter Beschaltung versorgt wird.
Dazu gehoert sicher auch ( mindestens) eine RC reset schaltung....das hatte ja schon jemand erkannt,dass nur eine Diode vorhanden ist. Ohne Reset geht nix.
anfangs wuerde ich auch alle anderen Ics rausnehmen(hoffentlich hast Du Sockel.
Datenblatt lesen nie vergessen...ein 52 Pinner ist eben kein 2051.
Das Problem ist halt, dass ich im Moment keinen passenden Kondensator und Widerstand zur hand habe. Und die Läden sind zu.
Ja ich habe IC-Sockel verbaut.
Die Laeden sind Zu....
aber Deine schaltung ist 'offen'
loete R24 und C5 aus...und schon resettet es !
Damit kommst Du sicher einen Schritt weiter....:)
Ed
Elektrikser
10.04.2005, 17:38
Für den Reset sollte schon ein RC spendiert werden. Damit bekommt der MC beim Einschalten erstmal einen sauberen Reset. Das ist schon wichtig. Wie, habe ich schon gepostet. Der Widerstand sollte im kOhm Bereich sein und der Kondensator schon ein größerer (im 1-50µ-Bereich)
Nur nicht aufgeben...
Gerd
ok. RC ist drin. (15K und 10uF)
tut immer noch nicht:(
AndreasH
10.04.2005, 18:40
Soweit ich weiss, hat der AT89C51AC3 doch einen integrierten Bootloader.
Wie steht denn dieses Bit (glaube BLJB oder so ähnlich)?
Wenn das gesetzt ist, liesse der sich zwar parallel programmieren, würde aber immer in den bootloader-bereich springen und deine Anwendung bis in alle Ewigkeit warten.
Ich glaube, der springe dann nach F800 oder so ähnlich. Auf jeden Fall nicht in das Programm.
Nur so eine Idee die mir gerade gekommen ist nach den vielen erfolglosen Versuchen.
Grüße
Andreas
....wollte gerade fragen....wie Du programmierst....
habe das 143 seitige AC3 Dokument von Atmel angeschaut....da gibt es fuer den ganzen Sonntagabend zu lesen ..- und zu verstehen. Der AC3 ist definitiv anspruchsvoller als ein At89C2051.
Sicher musst Du die situation der 'fuses' anschauen...und: 52 pins richtig verdrahten...da kann ohne weiteres ein fehlerchen auftauchen.
Hast Du schon durchgeklingelt? ob alle Pins richtig verdrahtet sind. (uC rausnehmen)
Ed
Ich benutze das atmel FLIP programm um das hexfile zu übertragen.
Die verdrahtung ist identisch mit meinem Schaltplan. (habe ich kontrolliert)
oyjoyjoy
Das mit der Irrefühührung über die Datenrichtungsregister tut mir leid. Wieder was dazugelenrt. Mus wohl mal so einen 51er studieren. Ist schon irre für mich das es sowas gibt. Hatte ich kaum erwartet. Da schon die alten Portbausteine der 6502 sowas hatten, habe ich das glatt jedem µC zugeschrieben. Aber is ja auch nen Dino der 51 er, wenn auch ein sehr lebendiger. Nochmal: sorry, wenn ich vorlaut dazwischen gequatscht habe, außschließen konnte ich es nicht und so fragte ich halt.
Elektrikser
10.04.2005, 20:06
Macht nix, Winne :D
ich habe da auch ab und zu meine Probleme. Arbeite momentan auch mit Atmegas und '51-Klone.
Zur Zeit überwiegen die AVRs, da ich noch am Webserver rumbastle.
Habe mir das Ganze selber angeeignet. Komme deswegen natürlich auch öfters ins Stolpern, da man ja nicht alles angesehen hat.
Allerdings habe ich noch keinen '51er mit Bootloader gehabt. Über ISP programmierbar ja, aber keinen Bootloader. Sollte das nächste Mal einen verwenden...
Gruß Gerd G.
Powered by vBulletin® Version 4.1.7 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.