Hallo Zusammen Ich bin ein absoluter Anfänger, was Mikrokontroller anbelangt. Ich habe schon sehr viel "Hochsprachen" (wie ihr sie immer nennt :)) programmiert. Daher sollte ich mit dem Assembler eigentlich schon klarkommen. Mein Problem liegt an einem ganz anderen Ort: der Hardware. Ich habe mir "Das Microcontroller Kochbuch MCS51" zugelegt, doch komme damit nicht ganz klar. All diese Beispiele, die ganze Theorie ist ganz nett, bringt mir aber nicht viel, wenn ich sie nicht ausprobieren kann. Welche Controller sind zum Einstieg geignet? Wichtig ist mir, dass sie ISP unterstützen, da ich die Finanzen für ein Programmiergerät nicht habe. Sollte ich einefach den Minimalcontroller aus dem Buch bauen? Wahrscheinlich steht es ja schon irgendwo in diesem Buch, doch wie muss ich dann an meinen Computer anschliessen um ihnr programmieren zu können? Anfangs möchte ich eigentlich nur ein Paar LEDs und Taster und ansteuern, später dann vor allem externe AD-Wandler und serielle Schnitstellen. Natürlich kann ich dazu auch den ATmega verwenden, doch weil ich später sowieso etwas leistungsstärkeres gebrauche beabsichtige ich gleich mich mit den MCS51 Controllern anzufreunden. Ist das eine absurde Idee also Neuling in der Microcontrollerwelt? Vielen Dank für eure Hilfe! Grüsse Lorenz
Ein AVR ist so ganz allgemein leistungsfaehiger als ein MCS51. Jedenfalls solange man nicht auf irgendwelchen Details rumreitet) Ausserdem ist ein MCS51 erstmal so nicht ISP-Faehig weil die alle ein externes EPROM brauchen das in einem Programmiergeraet gebrannt wird. Es gibt aber einige spezielle MCS51 typen die auch ISP koennen und dann brauchst du einen Brenner genau fuer diesen Typ. Olaf
Vielen Dank Olaf für deine Antwort. Ich sehe auch langsam, dass ein MCS51 nicht wirklich das Richtig für mich ist. Ein AVR wäre wirklich besser und vor allem einfacher. In diesem Fall habe ich das Microcontroller Kochbuch vergebens gekauft :( Gibt es jemand, der es gebrauchen könnte? Ich habe gleich einige Zeit auf RoboterNetz.de rumgeschnüffelt mir mir gefällt ihr Experimentierboard (http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=8) nicht schlecht. Ich überlege mir, ich mir so eins zulegen sollte. Grüsse Lorenz
Kann ich nicht nachvollziehen. Das Buch ist hervorragend und anstelle des MC's im Buch nimmst du den AT89S8252. ISP mit PonyProg. MIDE-51 aus dem Netz saugen und du hast ne komplette IDE incl. C und Assembler. Noch einfacher geht es nicht. Noch Fragen ? dann poste mal Gruß Joe
Außer einem 8051 mit internem Bootloader brauchst Du nur noch einen MAX202 oder kompatible, siehe hier: http://www.mikrocontroller.net/forum/read-1-25968.html#new Welche 8051 einen internen Bootloader haben, findest Du auf den Atmel-, Maxim-, Philips- usw. Webseiten. Und wenn Du mal mehr Speed brauchst, die Maxim DS89C420..450 sind mit die schnellsten (33MIPS). Peter
Ne, brauchste nicht! Der AT89S8252 ist ISP fähig. PonyProg benötigt nur nen Bustreiber 74HC244. Also, Investition ungefähr 6 Euro für Bauteile. Joe
@Olaf Guten Morgen , schon wach ? Atmel hat min. 20 ISP-fähige 8051er . http://www.atmel.com/dyn/products/param_table.asp?family_id=604&OrderBy=1209&Direction=DESC#
@Lorenz Ich bin ein absoluter Anfänger, was Mikrokontroller anbelangt. Ich habe schon sehr viel "Hochsprachen" (wie ihr sie immer nennt :)) programmiert. Daher sollte ich mit dem Assembler eigentlich schon klarkommen. Na ja, das besondere an Assembler ist halt die ganze "Bitfrickelei". Bis du da mal angelangt bist, bestimmte Dinge (z.B. zeitkritsche Abläufe) effizient in Assembler zu coden, wirds sicherlich etwas dauern. Aber sicherlich startest du durch deine Bekanntschaft mit "Hochsprachen" (und zugehöriger IDE) von einer sehr guten Ausgangslage. Da es auch (fast) beliebige Hochsprachen-Compiler für Mikrocontroller und Mikroprozessoren gibt, sollte der Einstige recht flott möglich sein.
Vor vielen Jahren habe ich auch mit dem "Mikrocontroller Kochbuch" und den MCS-51 angefangen. Neben meinen heißgeliebten AVRs habe ich noch einige 80C535 laufen, die brauchen definitiv externen Programmspeicher. Prinzipiell braucht man eine Initialzündung, um weiterzukommen. Bei mir sah das so aus, dass ich mir ein Mini-Programm geschrieben habe, das nur die Bytes von der seriellen Schnittstelle abgeholt und in einen RAM (der als Code-Speicher geschaltet war) geschrieben hat. Dieses Ur-Programm habe ich mit einem selbstgebauten Programmiergerät in ein 28C16 (2K x8)geschossen (bestand eigentlich nur aus ein paar Latches am Druckerport). Nun wurde ein kleiner Monitor gebastelt (den ich auch heute noch verwende), der seinen Platz schlussendlich im 28C16 fand. Wenn ich heute ein MCS-51-System in Betrieb nehme, dann sind Steckplätze für je 64K Code- und 64K Datenspeicher vorhanden, und die Adressierung so ausgelegt, dass ich auch mal schnell nebenbei ein Programm in den RAM werfen und ausführen kann.
@Thomas "Bei mir sah das so aus, dass ich mir ein Mini-Programm geschrieben habe, das nur die Bytes von der seriellen Schnittstelle abgeholt und in einen RAM (der als Code-Speicher geschaltet war) geschrieben hat." Und genau dieser Bootloader ist eben bei den heutigen 8051-ern, wie AT89C51ED2, P89C668, DS89C420 usw. schon eingebaut (factory programmed) und man kann die Pins für den externen Memory Bus als normale IO-Pins nutzen. Auch muß man das zu testende Programm nicht jedesmal in einen RAM laden, sondern es wird direkt geflasht, d.h. beim nächsten Einschalten ist es wieder da, solange, bis man das nächste Programm flasht. Ich hatte auch mal mit nem 8031 und viel Geraffel drumrum angefangen, aber das ist schon sehr lange her. Die 8031 hatte ich aus alten Festplatten ausgebaut. Peter
irgendwann in 2004 ist in der elektor das projekt swiss army knife erschienen (at89s8252). ich hatte es damals gebaut und finde es ist auch für einsteiger gut geeignet. tcb muss man ja nicht verwenden und den angebotenen interpreter muss man auch nicht benutzen. ich habe das board für normale asm prgs benutzt und bin damit noch immer sehr zufrieden. gruß oliver
Erstmal vielen dank für eure zahlreichen Beiträge! Ich habe mir einmal die ISP fähigen Controller auf: http://www.atmel.com/dyn/products/param_table.asp?family_id=604&OrderBy=1209&Direction=DESC angeschaut. Dazu einige Fragen: Bei ISP steht teilweise UART und ab unz zu SPI. Was bedeutet das? Ich habe einmal den AT89C51ED2 rausgesucht, weil der schoen viel Flash hat. Ist dieser geegnet zum einsteigen? Kann ich den ohne externen speicher betreiben, schon oder? Und wie programmiere ich den? Was fuer ein ISP-Interface muss ich mir basteln? Ich möchte am Anfang einmal ein paar Taster und LEDs ansteuern und dann auch versuchen ein A/D Wandler anzuhängen. Was für eine Schaltung brauche ich dazu? Und auf was baut man diese Schaltung am besten auf? Eher auf einer Lochplatine mit Lötpunkten oder auf einem Experimentierboard? http://www.distrelec.com/ishopWebFront/catalog/product.do?id=01&node=aeacadabaaaa&series=1 Lorenz
"Ich habe einmal den AT89C51ED2 rausgesucht, weil der schoen viel Flash hat. Ist dieser geegnet zum einsteigen?" Ja, der geht gut: http://www.mikrocontroller.net/forum/read-1-25968.html#new Peter
Die 51iger sind gar nicht so schlecht , zum einsteigen. Wer einen Epromsimulator besitzt ist gut dran selbst geschriebene Software zu endwanzen. Statt immerwieder in den Flash zu programmieren. Ich habe dafür einen 80515 mit einem Epromsimulator und jede Menge Portleitungen mit LED´s um zu sehen, wo sich das Programm gerade rumtreibt. Beispiel Da steht z.B. am Anfang der Routine clr P4.3; und am Ende setb P4.3 und so weiss man da hängt er nicht. Paul
@Paul "Statt immerwieder in den Flash zu programmieren." ??? Was stört dich denn daran ? Das hat doch nur Vorteile (einfache Schaltung, P0+P2 verfügbar). Wenn Du Angst hast, daß Dir die Flashzyklen ausgehen, vergiß es. Irgendwann ist das Projekt ja mal fertig und dann nimmt man den nächsten µC. Oder machst Du Projekte immer nur zum Lernen und rupfst sie dann wieder auseinander ? Auch sollte man sich nicht von modernen Derivaten (>3MIPS) ausschließen. Peter
Nochmals zu meiner Frage. Kann mir jemand eine Schaltung geben, mit der ich direkt aufs Flash programmieren kann von der parrallelen oder seriellen Schnittstelle vom Computer?
ich habe mir auch mal peters o.g. beispiel angesehen, eine bessere einstiegshilfe kannst du doch fast nicht bekommen. die schaltung hast du ratz fatz aufm breadboard aufgebaut und kommst so zügig zu deinen ersten eigenen erfahrungen. oliver
ou, ich das interface gar nicht gesehen, sorry... ok, dann bestell ich mir einmal alle benötigten teile. Danke für eure Hilfe!
nochmals schnell etwas: Ich suche gleich nach dem richtigen MAX202, welches habt ihr benutz? Beim Prozi vom Amtel steht, man könne die mit einer Spannung von 2.7-5.5V laufen lassen. Was sollte man da wählen? Und wie baut man am einfachsten (und billigsten) einen Wandler von 13.8V auf diese Spannung? Ich habe ein stabilisiertes 12V Netzteil, welches ich benützen möchte. Lorenz
evtl. sollte man noch einen elko am ausgang hinzufügen (wie am eingang auch)
>Nochmals zu meiner Frage. Kann mir jemand eine Schaltung geben, mit der >ich direkt aufs Flash programmieren kann von der parrallelen oder >seriellen Schnittstelle vom Computer? Für die ISP-fähigen per RS232 , CAN und USB gibt es bei Atmel xxx.pdf : http://www.atmel.com/dyn/resources/prod_documents/C51_Hardware_Connections.pdf
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.