PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega USB Schaltung



email25251991
16.09.2011, 17:31
Moin zusammen!


Ich möchte mir gerne eine Platine zusammen stellen, auf der mehrere LEDs von einem Atmega gesteuert werden. Dies soll über
die Mosfet Bauteile (z.B. BUZ) passieren. Außerdem möchte ich einige Taster zum Auslösen von Ereignisse benutzen (die Taster
gehen auf den Atmega). Der Atmega soll nun über die USB Schnittstelle (=> Programmer USB-ISP für alle AVR-Controller) mit dem
AVR 4 Studio programmiert werden.

Kann mir einer bei dieser Schaltung helfen (speziell mit der Pin-Belegung des Atmega und der Schnittstelle zum
Programmer USB-ISP für alle AVR-Controller) ?

Bauteile:

- Atmel ATMEGA32-16PU Gehäuseart DIL 40 Clock Speed 0 - 16 MHz Flash-Speicher 32 kB Speic... (conrad.de)
- Programmer USB-ISP für alle AVR-Controller (reichelt.de)
- AVR 4 Studio (Software)
- mehrere LEDs
- Mosfet (zum Beispiel den "BUZ 11 N-Kanal")
- mehrere Taster

Thegon
16.09.2011, 19:14
Hallo,

Willst du eigentlich die "Ereignisse" an den Computer mitteilen (per USB) oder USB einfach nur zum Programmieren zu verwenden. Ich glaube nämlich nicht, dass das mit einem Solchen Programmer möglich ist, aber da ich selbst keinen besitze, weiß ich das nicht genau.

Die Taster sind sehr einfach an den Mikrocontroller anzubinden, man braucht nur den Einen Tasterpin mit einem AVR-Pin Verbinden und den Anderen mit Masse.
Dann die Internen Pullups aktivieren, oder alternativ einen externen Pull - Up widerstand anbringen, also vom Entsprechenden AVR - Pin nach 5V, villeicht 10 k oder so.

Die Led´s:
Einfach solche Standart 5mm Leds? Die brauchen ja maximal 20mA, dazu braucht man kein Mosfet, die kann man direkt am Pin betreiben. Einfach Kathode mit Masse, Anode an einen Vorwiderstand und anderen Pol des Vorwiederstandes an einen AVR pin verbinden.
Und wozu um alles in der Welt den BUZ 11? Das ist ja das reinste Power Mosfet (30A, 50V). ;-)

Ich könnte dir noch das hier (http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht) empfehlen. Da steht so einiges über AVR Grundschaltungen drin, so zum Beispiel das anschließen einer Led und eines Tasters, auch Stromversorgung und Codebeispiele. Da findet sich sicher was brauchbares ;-)

Mfg Thegon

oberallgeier
16.09.2011, 19:18
Willkommen im Forum.


... Kann mir einer bei dieser Schaltung helfen ...Vermutlich hilft Dir diese Beschreibung vollständig (klick hier). (http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht) Für das Anbringen von Tastern könntest Du Dir noch die Beschreibung der RNControl (klick wieder) (http://www.rn-wissen.de/index.php/RN-Control) helfen - allerdings sind dort alle Taster an einem einzigen Portpin - und werden über den ADC, über ihren Widerstandswert, eingelesen. Die Beschreibung der RNControl kann Dir aber vielleicht auch das eine oder andere erhellen.

Viel Erfolg - und wenn noch Fragen offen bleiben - nur zu.

email25251991
17.09.2011, 07:06
Danke für die schnelle Antwort!

Mir haben eure Anregungen gut geholfen.

Jetzt bleiben mir noch zwei offene Fragen:

1. Auf der Webseite (siehe Link unten) wurde der Atmega über einen Parrallel-Anschluss
an den Computer angeschlossen (mit der entsprechenden Pin-Belegung). Mir stellt
sich nun die Frage, wie die Pin Belegung bei USB aussicht
(=> Programmer USB-ISP für alle AVR-Controller).

http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht


2. Brauche ich irgendwelche (weiteren) Headerdateien für das AVR 4 Studio um den Atmega dann
zu programmieren?


Danke schon für eure Antwort und viel Spaß noch an der Elektronik! :)

oberallgeier
17.09.2011, 09:16
... 1. ... wie die Pin Belegung bei USB aussicht ...Generell hat USB dieses Pinout (klick hier). (http://de.wikipedia.org/wiki/USB#Farbkodierung_und_Pinouts)

DAS ist ne wirklich pfiffige Frage, da Du nach der Verbindung USB zu UART bzw. zu ISP fragst. So ein Teilchen hatte ich mir mal gemacht (klick). (https://www.roboternetz.de/community/threads/36416-RS232-Wandler-in-SMD?p=437181&viewfull=1#post437181) Ein Schaltplan für einen USB<=> UART-Adapter ist hier (klick), (http://mikrocontroller.heldt.eu/index.php?page=universeller-usb---uart-adapter) der beantwortet sicher Deine Frage. Das Problem ist ja, dass die Schaltung von zwei Datenleitungen des USB auf drei bzw. vier (mit /RES) Datenleitungen der ISP-Schnittstelle gehen muss. Weiterführende Datenblätter zu der USB-Technologie sind beispielsweise hier zu finden. (http://www.ftdichip.com/Support/Documents/DataSheets.htm)


... 2. Brauche ich ... Headerdateien für das AVR 4 Studio um den Atmega dann zu programmieren?Lies mal hier, (http://www.rn-wissen.de/index.php/C-Tutorial) das ist recht ausführlich und allgemein - oder suche (Suchfunktion im Forum) selbst. Grundlagen z.B. auch hier. (http://www.rn-wissen.de/index.php/Avr-gcc)

Klebwax
17.09.2011, 10:30
1. Auf der Webseite (siehe Link unten) wurde der Atmega über einen Parrallel-Anschluss
an den Computer angeschlossen (mit der entsprechenden Pin-Belegung). Mir stellt
sich nun die Frage, wie die Pin Belegung bei USB aussicht
(=> Programmer USB-ISP für alle AVR-Controller).

Parallel-Port und USB sind ganz verschiedene Dinge, da paßt nichts zusammen.

MfG Klebwax

oberallgeier
17.09.2011, 12:12
Parallel-Port und USB sind ganz verschiedene Dinge, da paßt nichts zusammen ...Das ist dem Kollegen sicher klar, da dies in dem von ihm genannten Link ausführlich dargestellt wird. Eine konkrete, wenigstens beispielhafte Realisierung ist dort aber nur sehr vage angedeutet.

Chypsylon
17.09.2011, 16:19
Danke für die schnelle Antwort!

Mir haben eure Anregungen gut geholfen.

Jetzt bleiben mir noch zwei offene Fragen:

1. Auf der Webseite (siehe Link unten) wurde der Atmega über einen Parrallel-Anschluss
an den Computer angeschlossen (mit der entsprechenden Pin-Belegung). Mir stellt
sich nun die Frage, wie die Pin Belegung bei USB aussicht
(=> Programmer USB-ISP für alle AVR-Controller).

http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht



Generell hat USB dieses Pinout (klick hier). (http://de.wikipedia.org/wiki/USB#Farbkodierung_und_Pinouts)

DAS ist ne wirklich pfiffige Frage, da Du nach der Verbindung USB zu UART bzw. zu ISP fragst. So ein Teilchen hatte ich mir mal gemacht (klick). (https://www.roboternetz.de/community/threads/36416-RS232-Wandler-in-SMD?p=437181&viewfull=1#post437181) Ein Schaltplan für einen USB<=> UART-Adapter ist hier (klick), (http://mikrocontroller.heldt.eu/index.php?page=universeller-usb---uart-adapter) der beantwortet sicher Deine Frage. Das Problem ist ja, dass die Schaltung von zwei Datenleitungen des USB auf drei bzw. vier (mit /RES) Datenleitungen der ISP-Schnittstelle gehen muss. Weiterführende Datenblätter zu der USB-Technologie sind beispielsweise hier zu finden. (http://www.ftdichip.com/Support/Documents/DataSheets.htm)


Ich glaube er benutzt einen ganz "normalen" ISP-Programmer (den da (http://www.reichelt.de/Programmer-Entwicklungstools/DIAMEX-ALL-AVR/index.html?ACTION=3&GROUPID=2969&ARTICLE=110345&SHOW=1&START=0&OFFSET=16&)) mit Standard-Pinbelegung ;)
Den musst du nur so wie hier (http://www.kreatives-chaos.com/artikel/avr-grundschaltungen) (Abschnitt Programmierung) beschrieben mit dem avr verbinden...

Für sonstige grundschaltungen hätt ich da auch noch ein paar gute seiten:
http://derjulian.net/mikrocontroller
http://extremeelectronics.co.in/avr-tutorials

email25251991
19.09.2011, 11:51
Danke für eure Hilfe!

Ich es mal ausprobieren....

Wenn dann noch Fragen auftauchen werde ich mich wieder melden.

Bis dann.

email25251991
02.10.2011, 17:51
Moin!

Ich hätte noch zwei Fragen zu meinem "Projekt" und zwar:

1. Kann einer mir die Programmierung von den Atmega erklären (die Erklärung hier find ich net so toll).
Am besten eine Liste mit den Befehlen mit Erklärung zu den einzelnen Befehlen. Ich habe schon einwenig
Erfahrung mit C/C++ und wollte gerne ein wenig Unterstützung bekommen :)

2. Ich wollte mal eine kleines Spiel mit zwei Atmega32 machen und zwar:
Zwei Spieleer haben beide je 4 Taster.
Es werden 4 x 4 Led auf eine Platine gelötet, die je von einem Port von
einem Atmega angesteuert werden.
Die Atmega sollen dann (beim Start) von einem Spieler Sicht aus eine zufällige Led
in der 1. Reihe ansteuern, anschliessend eine Led in der 2. Reihe, die an der noch
leuchtenden Led angrenzt. Die 1. Led soll dann ausgehen. Ist dann eine Led beim
Gegenspieler oder bei einem selbst an, soll der jeweilige Spieler den entsprechenden Taster / Schalter
drücken/betätigen, damit es in die andere Richtung geht. Die Taster gehören zu den einzelnen
Led (1. Taster von rechts=1. Led von rechts,....usw. .

Meine Frage dazu: Wie sieht das beste Schaltbild / Platinenlayout für dieses Projekt aus?
Wie ist der Quellcode dafür?

Vielen Dank für die Arbeit/Antwort!


Viel Spaß noch an der Elektrotechnik ! :)

Thegon
03.10.2011, 19:24
Hallo,


1. Kann einer mir die Programmierung von den Atmega erklären (die Erklärung hier find ich net so toll).
Am besten eine Liste mit den Befehlen mit Erklärung zu den einzelnen Befehlen. Ich habe schon einwenig
Erfahrung mit C/C++ und wollte gerne ein wenig Unterstützung bekommen :)


Also ich befürchte, dass man eine gesamte erklärung (wobei was heißt schon gesamt...) sicherlich nicht so schnell in einen Beitrag geschrieben werden kann und dass das auch hier keiner einfach so macht...


Ich wollte mal eine kleines Spiel mit zwei Atmega32 machen und zwar:

Zwei Atmega? ist das nötig? Ich meine 2 Atmega müssen dann ja auch miteinander kommunizieren und da sollte man dann schon doch ein bisschen eine Ahnung vom AVR haben ;-)
Wenn nur zwei Stück, weil die Pins nicht reichen, dann kann ich nur sagen: multiplexansteuerung, sowohl für LEDs als auch für Taster. Erklärung hier:
http://www.mikrocontroller.net/articles/LED-Matrix



Meine Frage dazu: Wie sieht das beste Schaltbild / Platinenlayout für dieses Projekt aus?
Wie ist der Quellcode dafür?



Na also ein Schaltplanservice ist das nun auch wieder nicht... Ich meine wenn du ein konkretes Problem hast, dann findest du sicherlich hilfe. Aber es wird vermutlich keiner so schnell schnell einen perfekten Schaltplan & Quellcode für dich in einen Beitrag zaubern ...

Verstehe mich jetzt nicht falsch, ich meine das nicht abweisend oder so aber ich denke deine Cancen stehen schlecht, einene komplette Schaltung gepostet zu bekommen ;-)

Mfg Thegon

email25251991
12.10.2011, 18:34
Moin!

Ich hätte noch einige Fragen zum Programmieren der Atmega32 ICs und zwar:

- Wenn ich mit dem AVR Studio 4/5 folgende C - Datei (steht unten) auf den Atmega schreibe,
kann ich mit diesen die LEDs (5mm / 3mm) ansteuern? Die LEDs sind mit den Ausgängen verbunden.

- Wie kann ich eine zufällige Zahl generieren lassen, damit ich eine If - Abfrage starten kann.
Ich möchte damit errreichen, das z.B. zufällig eine LED in ihrer Reihe angeht.

- Wie kann ich eine Abfrage starten, die merken soll, ob ein Taster (Eingang) gedrückt worden ist oder nicht?





C - Datei:



#ifndef MCU // Welcher AVR genutzt wird, wird i.A. im Makefile definiert
#define MCU atmega32
#endif

#ifndef F_CPU // kann auch im Makefile definiert sein
#define F_CPU 1000000UL // Takt als LONG definieren, da zu groß für Integer
#endif

#include <avr/io.h> // Namen der IO Register
#include <util/delay.h> // Funktionen zum warten
// Achtung, damit delay richtig funktioniert muß mit Optimierung compiliert werden

int main(void)
{
DDRC = _BV(0); // Nur PC0 als output, _BV(0) = (1<<0) = 1
PORTC = 254; // Pullups auf allen anderen Pins

while (1)
{
PORTC &= 255-_BV(0); // 0 auf Bit 0 Ausgeben, Rest so lassen
_delay_ms(100); // 100 ms Warten
PORTC |= _BV(0); // 1 auf Bit 0 Ausgeben, Rest so lassen
_delay_ms(100);
PORTC |= _BV(1); // 1 auf Bit 1 Ausgeben, Rest so lassen
_delay_ms(100);
PORTC |= _BV(2); // 1 auf Bit 2 Ausgeben, Rest so lassen
_delay_ms(100);


}
}



Vielen Dank schon im Vorraus! :)

oberallgeier
13.10.2011, 17:26
... mir die Programmierung von den Atmega erklären ... Liste mit den Befehlen mit Erklärung zu den einzelnen Befehlen ...Die Befehle werden ganz hervorragend erklärt im Assembler des AVRStudio 4. Einfach Cursor auf den entsprechenden Assemblerbefehl, F1 drücken - und die vollständige Beschreibung klappt auf. Toll.

Beispiel:


SBIC - Skip if Bit in I/O Register is Cleared

Description:

This instruction tests a single bit in an I/O register and skips the next instruction if the bit is cleared. This instruction operates on the lower 32 I/O registers - addresses 0-31.
Operation:
(i)If I/O(A,b) = 0 then PC ← PC + 2 (or 3) else PC ← PC + 1

Syntax: Operands: Program Counter:
(i)SBIC A,b 0 ≤ A ≤ 31, 0 ≤ b ≤ 7 PC ← PC + 1, Condition false - no skip
PC ← PC + 2, Skip a one word instruction
PC ← PC + 3, Skip a two word instruction
16-bit Opcode:
1001 1001 AAAA Abbb

Status Register (SREG) and Boolean Formula:
......

Example:
.....
Anmerkung: die Punkte stehen für weitere, umfangreiche Erläuterungen


Die vollständige Liste aller Befehle (der Maschinensprache !! - nicht der Hochsprache !!) ist im Anhang des Datenblattes.

Bitte bitte frag jetzt nicht nach der deutschen Übersetzung.

email25251991
19.10.2011, 19:18
Moin !


Ich hab ein Plan mit SPLAN 7 erstellt und wollte gerne wissen ob dieser in der Realität,
sprich ob dieser überhaupt hardwareseitig funktioniert.

Es sollte erkennbar sein, wo die Ein- und Ausgänge bei den ICs sind.

Bauteil:

IC 1 = IC 2 = Atmega 32-16
H1 = H2 = Leuchten (5V)
PLUS = 5V
X3 = USB Buchse (Spannungsversorgung u.B vom PC => Kabel)
X4 = USB Stecker (Spannungsversorgung u.B vom PC => Kabel)
X1 = X2 = Wannenstecker (6 polig)
X5 = X6 = Wannenstecker (16 polig)
X7 = X8 = Wannenstecker (10 polig)
LED1 - 17 = entsprechende LED + Vorwiderstand
S1 = Schalter (rastend)
S2 - S9 = z. B. Taster


Danke schon mal im Voraus für eure Anregungen! :)

P.S. Ein guter Elektriker bekommt jeden Tag dreimal einen gewischt....... :cool: :)


20322

Murkel
20.10.2011, 04:49
Eine direkte Programmierung mit dem IC FT 232RL als Brücke zwischen Laptop und Atmega aus der Atmega 88 Experimentierplatine wurde von mir mal
nachgebaut und der SMD Atmega mit seinen Bootslader programmiert.(ISP Buchse wurde ,um den Bootslader zu Progrmmieren mit installiert.)
Das SMD löten ist mit Heissluft möglich .

Richard
20.10.2011, 09:09
Lernen
Moin!

Ich hätte noch zwei Fragen zu meinem "Projekt" und zwar:

1. Kann einer mir die Programmierung von den Atmega erklären (die Erklärung hier find ich net so toll).
Am besten eine Liste mit den Befehlen mit Erklärung zu den einzelnen Befehlen. Ich habe schon einwenig
Erfahrung mit C/C++ und wollte gerne ein wenig Unterstützung bekommen :)

2. Ich wollte mal eine kleines Spiel mit zwei Atmega32 machen und zwar:

Meine Frage dazu: Wie sieht das beste Schaltbild / Platinenlayout für dieses Projekt aus?
Wie ist der Quellcode dafür?



Verlangst Du eventuell etwas zu fiel von einem Forum?
Jemand soll Dir AVR C beibringen......
Jemand soll Dir ein Layout erstellen.......
Jemand soll Dir einen Schaltplan erstellen.......
Jemand soll Dir den dazu passenden Quellcode erstellen......

Was bleibt bei der ganzen Arbeit für Dich übrig? Tipp kaufe Dir einen Asuro baue den sauber und ordentlich zusammen (erst die Anleitung GENAU lesen) und fange mit den dazu gelieferten Beispielen an zu proggen. Dabei wirst Du dann auch schnell lernen wie es geht und gemacht wird. Außerdem macht das Lernen so viel mehr Spaß!

Gruß Richard

email25251991
28.10.2011, 14:20
Moin!

Ich hab heute mal versucht ein ATmega32-16DIP zu programmieren (hab den Wannenstecker mit dem IC Sockel des ATmega verbunden (ISP)), aber es will net klappen :( ....

Das Programm das ich verwende ist das AVR Studio 4. Es sagt mir zwar, das es eine Verbindung zum Adapter aufbauen kann, aber eine Verbindung zum ATmega kann nicht. Als Tipp gibt mir das Programm die Verbindung zu überprüfen, was ich auch mehrmals gemacht habe, aber dies hat nichts gebracht. Ich hoffe ihr könnt mir da weiter helfen.


Vielen Dank im Voraus!

oberallgeier
28.10.2011, 15:23
... hab den Wannenstecker mit dem IC Sockel des ATmega verbunden (ISP) ... Verbindung zum Adapter ... zum ATmega ...Schaltplan, und zwar nicht von irgendwoher kopiert sondern "as build" wär nett, ne, elementar und unabdingbar. So könnte es ja auch bedeuten (sorry für die Aussage) dass Du den Wannenstecker mit Bindfaden mit dem ICSockel verbunden hat.

- Welchen Programmer benutzt Du (genau!!) ?
- Welcher Programmer (heißt im AVRSTudio evtl. Platform) wird im Studio gemeldet ?
- Schaltplan - zumindest Wannenstecker <-> ATmega
--(hier nur die entsprechenden ISP-Pinne in der Art "PC3").
- Als ersten Test schaue ich im AVRStudio-Flashfenster nach der
(https://www.roboternetz.de/community/threads/48213-ISP-Frequenz-mit-AVRLab-ändern-funktioniert-nicht-gelöst?p=464267&viewfull=1#post464267)--Chip-Signatur (klick oben). Wenn ich die nicht kriege
--dann ist sowieso was faul.
- Wie hoch ist die Controller-clock WIRKLIICH ? Evtl. Fuse CKDIV8 gesetzt ?
- ISP-Frequenz richtig? Bekanntlich etwa 1/4 der AVR-Clock .
- Hat der controller Saft ?
- Noch ca. 99 andere Möglichkeiten .