Hallo! Bin absoluter µC-Anfänger, habe mich allerdings schon relativ ordentlich bei euch hier eingelesen. Habe ein kleines Projekt, bei dem ich mit einem ATMega32L ein paar Verbraucher ein-/ausschalten möchte. Konkret benötige ich einen ADC-Eingang, zwei Digitale Eingänge (Taster) und ungefähr 16 Ausgänge. Zur Programmierung möchte ich meinen AVR ISPMKII nehmen, an den ich günstig gekommen bin. Die Frage, die ich mir jetzt stelle ist, welche Ports ich am besten für meine Digitalen Ein- bzw Ausgänge nehme. Mir ist klar, dass wohl alle der 32 Ports (PORTAx - PORTDx) dafür herhalten könnten. Jedoch weiß ich wegen mangelnder Praxiserfahrung nicht, ob man den ein oder anderen Ports bevorzugen/auslassen sollte, weil er z.B. für die Programmierung herhalten muss. Konkret habe ich mir mal die Steckerbelegung des Programmers angesehen und festgestellt, dass dieser teilweise an einige der 32 Ports angeschlossen wird. Funktioniert die In-System-Programmierung denn auch, obwohl eine externe Beschaltung an den Ports hängt? Vielen Dank im Voraus, Bernd
Also Ich würde so vorgehen. Da du einen ADC Eingang brauchst, würde ich den kompletten Port A für die restlichen I/O als Tabuzone deklarieren. Der ADC ist nicht so ganz happy damit, wenn sich an seinem Port Dinge abspielen, während er gerade arbeitet. Muss nicht sein, also lass ich ihm die Freude und halte Port A von allen anderen Dingen frei. Damit bleiben noch B, C und D die ISP Signale sind alle am Port B. Wenn ich es mir leisten kann, dann lasse ich die 3 Leitungen (MISO, MOSI, SCK) in Ruhe und schalte dort keinen Ein/Ausgang drauf. Man kann das zwar machen, muss aber darauf aufpassen, dass die dort angeschlossene Hardware nicht Amok läuft, wenn der ISP Programmer sein Programm überspielt und die Hardware die Signale ebenfalls sieht. Ein paar LED da mit anzuschliessen wäre kein Problem, aber da du eh noch genug andere Portpins hast, ist das Thema damit auch vom Tisch. D.h. die restlichen 16 Ausgänge verteilst du auf Port C, D und B und ein paar Pins für die 2 Eingäneg finden sich da auch noch leicht. Wenns geht, lass ich mir die TxD / RxD Anschlüsse frei. Einen MAX232 temporär anzuklemmen und damit eine Debug-Ausgabe über UART zu haben, kann ganz praktisch sein. Auch ein PWM-Ausgang findet oftmals im Nachhinein noch seinen Abnehmer. Wenn also kein Mangel herrscht, lass ich mir die frei. Was willst du anschliessen, wenn man fragen darf?
Manu Al schrieb: > Jedoch weiß ich > wegen mangelnder Praxiserfahrung nicht, ob man den ein oder anderen > Ports bevorzugen/auslassen sollte, weil er z.B. für die Programmierung > herhalten muss. Da bist Du nicht alleine, das wissen viele nicht. Es soll Programmierer geben die sehen im Tutorial nach.
Hi >Habe ein kleines Projekt, bei dem ich mit einem ATMega32L ein paar >Verbraucher ein-/ausschalten möchte. Konkret benötige ich einen >ADC-Eingang, zwei Digitale Eingänge (Taster) und ungefähr 16 Ausgänge. Prinzipiell hast du freie Auswahl. Die analogen Eingänge gehen natürlich nur am PortA. Um den PortC voll nutzen zu können musst du JTAG ausschalten. >Konkret habe ich mir mal die Steckerbelegung des Programmers angesehen >und festgestellt, dass dieser teilweise an einige der 32 Ports >angeschlossen wird. Funktioniert die In-System-Programmierung denn auch, >obwohl eine externe Beschaltung an den Ports hängt? Ja, wenn man die AppNote AVR042 beachtet. Wenn nicht unbedingt notwendig, dann benutze die nur fürs ISP. MfG Spess
Danke für die Antworten! Eine Frage noch: Wie sieht es mit den restlichen ADC-Ports denn aus, wenn ich sie nur nutzen würde in Subroutinen, in denen der ADC-Wert des einen Ports gar nicht genutzt wird? Kann ich sie dann nutzen? Dann arbeiten sie ja nicht zeitparallel?! Danke, Bernd
Hi Der Controller hat einen AD-Wandler der über einen Multiplexer mit einem der Eingänge verbunden wird. Eine gleichzeitige Messung aller Eingänge ist nicht möglich. MfG Spess
Ich möchte sie als dig. Ausgang nutzen!
Hi
>Ich möchte sie als dig. Ausgang nutzen!
Kannst du. Im Interesse der Genauigkeit der ADC-Messung solltest du aber
Aktivitäten an den Pins während der Messung unterlassen bzw ADC Noise
Canceling verwenden.
MfG Spess
Super, Danke! Während der Nutzung als Dig. Ausgang wird der ADC gar nicht genutzt. Komplett anderes Unterprogramm. Danke!! :)
Hi >Während der Nutzung als Dig. Ausgang wird der ADC gar nicht genutzt. >Komplett anderes Unterprogramm. Das hängt immer von deinem Programm ab. Es gibt z.B. auch die Möglichkeit den ADC durch Auto-Trigger oder timergesteuert im Hintergrund laufen zu lassen. Da sind die Verhältnisse nicht mehr so überschaubar. MfG Spess
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.