PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATMega32 Bord



ChristophB
09.06.2009, 14:32
Hi!

Ich lese hier schon seit einigen Wochen begeistert mit. Aufmerksam wurde ich auf dieses Forum als wir in der schule angefangen haben mit dem I2C Bus zu arbeiten.... nunja jetzt bin ich fertig mit der Schule und ein weiteres Controllerboard muss her. Anfangs dachte ich ich baue das Board, welches wir in der Schule schon gebaut hatten nocheinmal, aber auf dieser Webseite habe ich dann gelesen das ein ATMEL wohl doch einige Vorteile gegenüber einem 8051 hat. Das Board aus der Schule verwendet einen 8051, von daher kommt das nun nicht mehr in frage... Ich habe mich dann hingesetzt und den Schaltplan aus dem Tutorial etwas zu verändern. Wäre es wohl möglich das sich jemand das ganze mal anschaut und mir die Fehler nennt die ich möglicherweiße gemacht habe?

linux_80
09.06.2009, 14:56
Hallo,

so auf die schnelle sehe ich, das an AVCC nix dran ist,
der muss auch mit VCC verbunden werden, sonst funktioniert der PortA nicht richtig.

Da der ADC nicht verwendet wird, könnt mans so lassen.

ChristophB
09.06.2009, 15:19
ohh das hab ich wohl übersehen, danke. Aber dann sollte ich auch AREFF noch mit VCC verbinden oder?

MeckPommER
09.06.2009, 15:22
Hallo, nur mal in aller Eile im Vorbeiflug ein paar Anmerkungen - muss nicht alles 100% richtig sein, aber vielleicht ja einen Gedanken wert ...

- AREF per 100nF an GND würde ich noch empfehlen.
- müßte der RESET-Taster nicht gegen Masse schalten?
- willst du die LED wirklich gegen VCC legen? Das würde bedeuten, das deine LEDs bei einer logischen "0" am Portpin leuchten (was allerdings auch zu den Tastern gegen GND passt) - Geschmackssache

ChristophB
09.06.2009, 15:45
Das mit den LEDs ist so gewollt, wurde mir in den letzten 3 Jahren so beigebracht...
bei dem RESET-TASTER war ich mir nicht sicher...
hmm ist es notwendig noch einen Kondensator zwischen AREF und GND zu setzen, wenn ich AREF direkt mit VCC verbinde? Zwischen VCC und GND sitzt ja schon ein Kondensator

BurningBen
09.06.2009, 15:47
richtig, der Reset-Taster (Öffner) bringt so nix. Denn wenn der betätigt wird, ist Reset immer noch über den Pullup-widerstand auf 5V

Die restlichen Taster nach GND schalten zu lassen, ist gut, denn dann kann man die internen Pullups verwenden

MeckPommER
09.06.2009, 15:50
AREF und VCC gehören nicht verbunden - das hat man mir in den letzten 3 Jahren so beigebracht ^^

ChristophB
09.06.2009, 16:01
AREF und VCC gehören nicht verbunden - das hat man mir in den letzten 3 Jahren so beigebracht ^^

:D ok dachte nur, da das in der Grundschaltung
http://www.rn-wissen.de/images/f/f8/Avrtutorial_grundschaltung_mitled.gif

so war...

Ceos
09.06.2009, 19:02
das gilt nur indirekt! du kannst für den ADC eine referenz einstellen, entweder intern 2.56V, intern VCC oder extern über AREF .... wenn du die internen referenzen verwendest (würd ich immer empfehlen) dann darfst du AREF nicht mit VCC verbinden, sonst kommts zum kurzen, wenn du intern 2.56V wählst und extern 5V anliegen ... der kondensator zwischen AREF und GND gättet ein wenig die interne referenz

ChristophB
30.09.2009, 17:30
So hab mich jetzt doch dazu entschieden das board selber zu basteln anstatt ein RN-Control zu kaufen naja, könnte villeicht nochmal jemand über die aktuelle Schaltung drüber schauen ? bevor ich anfange die Streifenrasterplatine zu bearbeiten.

oberallgeier
30.09.2009, 18:05
Hi ChristophB,


... entschieden das board selber zu basteln anstatt ein RN-Control zu kaufen ...Kennst Du diesen Thread (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=324428&sid=c33c0ffa7a94b73d51d13124112aa6e1#324428) von pmaler? Der hat eine hübsche Platine für den M32 auf Streifenraster aufgebaut - auch gleich mit RS232-Anschluss. Der Aufbau ist auf seiner Hompage (http://www.pherzog.de/streifenrastermega32/) auch sehr ausführlich dokumentiert. Vielleicht hilft Dir das? Ansonsten ist der Schaltplan für die RNControl (http://www.rn-wissen.de/index.php/RN-Control) eine prächtige Vorlage. Die RNControl ist ja sehr ausführlich erprobt *ggg*.

ChristophB
30.09.2009, 18:08
nee den kante ich noch nicht. danke werd ich mir mal alles in ruhe durchlesen

JonnyP
04.10.2009, 10:14
Deine neue Schaltung ist OK. Für deine Pinreihen an den Ports würde ich mehfach Reihen nehmen, speziell bei den Supply Pins, sonst stehst du schnell wieder ohne Kontaktmöglichkeiten da. Ich würde auch für AVCC auch das von Atmel vorgeschlagene LC-Glied einsetzen, denn sicherlich wirst du auch den A/D-Wandler benutzen wollen.

ChristophB
04.10.2009, 11:47
danke das du die Schaltung kontrolliert hast, aber eine Frage hätte ich noch....


Ich würde auch für AVCC auch das von Atmel vorgeschlagene LC-Glied einsetzen, denn sicherlich wirst du auch den A/D-Wandler benutzen wollen.

Ist es auch möglich den A/D-Wandler zu benutzen ohne eine Spule zu verwenden?

auf http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC habe ich gelesen:
Die 10uH Spule L1 kann man meist auch durch einen 47 Ohm Widerstand ersetzen.

macht es einen großen unterschied ob ich die Spule oder den Widerstand verwende?

JonnyP
04.10.2009, 12:15
Die LC-Kombination soll noise herausfiltern die die ADC Messung verfälschen können. Natürlich geht es auch ohne LC, aber wenn ich mir schon so etwas baue, dann solls doch wohl nicht an 2 Bauteilen hängen. Lies mal im ATmega32 Datenblatt das Kapitel "Analog to Digital Converter", darin "ADC Noise Canceler" und schau dir Figure 106 an. RC mag gehen, aber ich halte mich da an die Herstellerspecs.

oberallgeier
04.10.2009, 19:23
So eine 10µH-Spule (gekauft bei Reichelt) (http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=B511;GROUPID=3178;ARTICLE= 72960;START=0;SORT=artnr;OFFSET=16;SID=28E-NhbqwQARwAADtGL00c5437f7e32e860f7c472b3d4562def69) hatte ich als eines der ersten SMD-Bauteile verbaut. Das gute Stück passt unter jede Loch- und Streifenrasterplatine *ggg*. So was Ähnliches gibts aber wohl auch bedrahtet. (http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=B512;GROUPID=3179;ARTICLE= 18193;START=0;SORT=artnr;OFFSET=16;SID=28E-NhbqwQARwAADtGL00c5437f7e32e860f7c472b3d4562def69)

ChristophB
11.10.2009, 01:20
Soo, ich habe jetzt alles aufgebaut, auch mit LC-Kombination. Aber ein problem hätte ich noch: Ich habe zum testen ein paar Ports auf high und ein paar auf low geschaltet. Nur wenn ich bei Port D Pins auf logisch 0 schalte, besteht immer noch ein Potential zu GND von 3,6 V. Bei allen anderen Ports gibt es keine Probleme damit. Liegt das ganze an einem Schaltungsfehler von mir? oder muss ich da irgendwas Softwaremäßig einstellen?

darwin.nuernberg
11.10.2009, 09:42
Ja
für die Ports oder auch für einzelne Pin's kann man die Signalrichtung festlegen.
Input oder Output.
Kommt jetzt drauf an mit welcher Sprache Du progammierst.

Das Stichwort lautet DDRC.
Entweder du bemühst die Hilfe deiner Entwicklungsumgebung oder suchchst mal hier im Forum.

In Bascom z.B. kannst Du die Ports oder Pins auch anders definieren:

CONFIG PORTx = state
CONFIG PINx.y = state


Mir fällt auch auf, dass Du keinen ISP Anschluß vorgesehen hast.
Auch wenn Du da bereits eine Stiftleiste dran hast, ist diese bestimmt nicht
so aufgebaut wie die Stecker der Programmieradapter.
Mach noch zusätzlich eine Stiftleiste (am besten eine Wanne) dazu, dann verzettelst Du Dich nicht so schnell.
(Eagle Library vom Roboternetz verwenden)

JonnyP
11.10.2009, 10:19
Port D als Output geschaltet??

ChristophB
11.10.2009, 11:01
Genau das war der Fehler ](*,) . Das war mir neu das man die Ports als Ein bzw. Ausgänge schalten muss. Bislang habe ich immer mit einem 8051 und Assembler gearbeitet da war das nicht notwendig. Naja man lernt nie aus.
Aber jetzt scheint das ganze zu funktionieren, danke für eure Tipps und Ratschläge! ohne die hätte ich bestimmt noch stunden nach dem/den Problemen gesucht. So nun noch ein Bild der Platine

http://m0un741nm4n.m0.funpic.de/Bilder/Platine.jpg

JonnyP
11.10.2009, 12:08
Na bitte, geht doch ;-)
Das Schalten von Ports als Ein-oder Ausgang gehört aber zu den Grundlagen.
Na dann warte mal ab, bis du zu den Sonderfunktionen kommst, ich schätze, da wird noch die eine oder andere Frage auftauchen. ;-)
Übrigens solltest du den Quarz vielleicht steckbar machen. Wenn du RS-232 verwenden willst, sind Baudratenquarze angesagt.

darwin.nuernberg
11.10.2009, 15:31
Sehr nett
(was man alles aus Pappkarton machen kann...

Nee im Ernst, mach ich auch oft so, Auf DinA4 Etiketten den Bestückungsplan drucken und dann auf die Platine kleben. Tolle Idee oder?

Vie Spass beim Experimentieren.

PS falls es dich Intressriert...
hier ist meine Version der Schaltung: Protobed ATmega16 ATmega32 in RN-Standard Version 5 (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=20179)