Hi, ich habe jetzt ein bischen mit meinem ATMega32 rumgespielt und mir sind einige sachen noch nicht so klar. 1. Warum werden in fast allen Tutorial die Schaltungen so aufgebaut, dass wenn der Pin auf VCC (also im µC logisch "1") die LED oder der Taster aus ist und bei "0" dieses an ist? 2. Ist es eignetlich möglich MMC Karten und solche Sachen die dem anschein nach immer an das SPI angeschlossen werden auch an "normale " Pins anzuschliessen um z.B. mehrere zu unterstützen? 3. Gibt es irgentwo ein Projekt wie myCPU, das auch das alles erklärt? Bzw wo kann man diese grundlagen am besten lernen welche Bücher sind gut dafür? Und wie schwer ist es z.B. Eine art Game Boy mit einem 368sx aufzubauen? Gibt es Tutorials für so etwas? Mfg Maverick
Zu 1: Liegt ursprünglich in der Arbeitsweise von TTL und NMOS-Schaltungen begründet. Die lassen sich weit leichter runter- als hochziehen. Zwar sind heute beide Techniken nicht mehr in Gebrauch, aber erstens halten Traditionen lang, zweitens haben 8051-er mit ihrer archaischen Portstruktur das bis in die heitige Zeit konserviert.
Zu 1: Bei LEDs macht man das meist deshalb, weil die Treiberstufen in den Controllern in der Richtung mehr Leistung schaffen. Bei den Tastern, weil man einen Widerstand braucht, der den Pin auf das "andere" Potential zieht, und dazu den eingebauten pull-up verwenden kann, wenn man den Taster gegen Masse schalten läßt. Wenn man ihn gegen VCC schaltet, muß man noch einen zusätzlichen externen pull-down einbauen. Zu 2: Du müßtest sie eigentlich auch alle parallel an SPI anschließen können und brauchst dann halt nur eine weitere Leitung pro Karte für die Auswahl. Es ginge auch, sie ans die "normalen" Pins anzuschließen, aber dann mußt du das SPI selber in Software implementieren. Zu 3 kann ich nichts sagen.
Zu 2: erweiterung: Du kannst nicht nur MMS Karten anschliessen, sondern auch noch andere Komponenten zB, DA / AD Wandler .... Gruss
Hallo, zu 2: Ja, du kannst prinzipiell Peripherie an jeden beliebigen Portpin anschließen. Dann musst du aber die nötigen Ansteuerungsroutinen meist von Hand programmieren ! Besser ist es oft, die internen Hardware-Module (z.B. SPI, TWI, UART ... je nachdem was der Controller halt alles hat) zu benutzen, was die Sache extrem vereinfacht, da sich dann größtenteils der Controller um die Abarbeitung kümmert. Diese Hardware-Module sind aber eben auf bestimmte Pins herausgeführt, die dann auch benutzt werden müssen. zu 3: Ich empfehle dir hier a) dieses Forum, b) Google, c) die Datenblätter und Application Notes der Controller und d) try-and-error, also einfach ausprobieren. Das Geld für spezielle Bücher würd ich sparen und in Hardware investieren :-) Grüße, Mario
Hi danke das hat mir schon sehr geholfen. Irgentwann wollte ich mal einen Schachcomputer bauen. (In C++ habe ich mal einen geschrieben) Anfangs wollte ich da mit einem µC machen nur habe ich jetzt gemerkt, das man ja viel zu wenig Speicher hat sollte man da den Mega128 nehmen oder echt versuchen das ganze mit einem 386sx zu machen? Ich habe noch 2 rumfliege. Was bräucht eman alles dafür? Spannungsversorgung, 386, Taktgenerator SRAM, I/O für Taster und LED´s (2x16) und ein LCD Display. Ist so etwas machbar und wonach muss ich dafür genau bei google suche? Ich habe noch keine genauen Datenblätter (wie z.B. Von den Megas) für den 386sx gefunden. Wo kann ich solche Daten oder auch Beispielbeschatungen mit erklärung finden?
@Maverick: Wenn dir die ATMegas zu wenig Platz bieten schau dir doch mal ARM Mikrocontroller an: http://www.mikrocontroller.net/articles/LPC2000_Philips_ARM7TDMI-Familie Grüße
Hallo, also mit PC-Prozessoren zu arbeiten ist sehr schwer (ich sage wohlweißlich nicht unmöglich). Ein Mikrocontroller hat fast alles, was er zum Betrieb braucht "an Bord". Ein PC-Prozessor ist eben "bloß" ein Prozessor. Das ist so als würdest Du fragen, ob Du lieber mit dem Moped oder einem Turbodiesel-Aggregat fahren sollst. Das eine ist komplettes Fahrzeug, das andere nur ein Antrieb. Es gibt viele (auch rechenstarke Mikrocontroller) - da findest Du bestimmt einen für ein Schachprogramm (sollte dann einer sein, der größere Mengen Speicher verwalten kann - ich glaube das ist gut für SChachprogramme). MfG, Daniel.
Auch noch ein Grund: Pull-Down ist störanfälliger als Pull-Up. Oft ist Low maximal bis 0.7..0.8V definiert. Von 0V .. 0.8V sind es nur 0.8V Hub, von 5V..2.5V sind es ganze 2.5V Sicherheit.
Hi danke für die Antworten. Ok ist es denn möglich an einen µC einen schnellen, grossen externen SRam anzuschiessen? Also bis jetzt habe ich gelesen, dass das alles leider sehr langsam gehen soll. Bei meinem C++ Programm war meistens das Problem, dass in kurzer Zeit massenweisse Stellungenn Berehcnet und bewertet wurden und ich bin da realativ schnell auf so ca 128MB gekommen und nach möglichkeit wollte ich 256MB nutzen .... Auserdem braucht ich wegen der Stellungsbewertung und den Stellungsvergleichen einen relativ schnellen spiecher da auch diese Tabellen relativ schnell über ein 64kb gross werden und dann auch nicht mehr auf den µC passt. Leider kann ich nicht erkenne was für ein Controller mein gekaufter Schachcomputer nutzt sonst würde ich den mal versuchen... Kennt jemand so ein oder ein vergleichbares Projekt im Internet? Oder wie kann ich am besten da rangehen? Die Software sollte kein Problem sein eher die Hardware. Mfg Maverick
Äh? Mega32 mit 256MB RAM???? Da bist Du mit einem auf PC-Technik basierenden System besser dran. FlexATX, die VIA Dinger und derartiges.
Schachcomputer auf µC : http://www.elektor.de/Default.aspx?tabid=27&art=72517 ( 256 MB RAM sind natürlich zu wenig ;-)
Zu DDR-Zeiten gabs mal einen Schachcomputer mit Z80 und der war gar nicht mal schlecht. Ich glaube, das waren 16kB RAM und 48kB ROM, man braucht also nicht Unmengen an Speicher. Peter
"Zu DDR-Zeiten gabs mal einen Schachcomputer mit Z80 und der war gar nicht mal schlecht. Ich glaube, das waren 16kB RAM und 48kB ROM, man braucht also nicht Unmengen an Speicher." Die ersten Schachcomputer hatten alle wenig RAM und ROM. Die ersten Mephistos hatten den 1802 drin und brachten 1250 ELO. Die mit 6502 brachten schon über 1900 ELO. Wenn man also mit 256MB RAM nicht auskommt, dann sollte man vielleicht erstmal am Algorithmus basteln. Ansonsten ist man wohl mit Brute-Force-Ansatz bei einem dicken AMD64 besser aufgehoben.
Zu1: Die CMOS-Technik hat N-Kanal zum runterziehen und P-Kanal zum hochziehen. die Elektronenbeweglichkeit ist in Silizium fast 3mal so hoch wie die der "Löcher". Das heisst ein P-Kanal muss ungefär 3x so gross sein wie ein n-Kanal, um gleich "stark" zu sein. Das hat man eben nicht unbedingt so gemacht, deshalb ist die bevorzugte Richtung nach unten ziehen.
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.