Ich plane eine Art tragbares Gerät mit mehreren Schnittstellen und G-LCD
(Beitrag "Display mit Touchscreen bei Pollin?"). Im Anhang mal eine
Schaltung (ist das erste mal, dass ich mit Eagle arbeite).
USB soll in Software erfolgen (s. Elektor März 2007), wie auch PS/2 für
eine Tastatur. Ebenso ist ein Erweiterungs-Port vorhanden (ich verwende
hierzu gerne 15pol Sub-D), wegen der Knappheit an Pins sind einige
mehrfach verwendet. Sollt eich besser Schieberegister einsetzen?
Sind irgendwelche groben Fehler drin?
Allgemein: Glaubt ihr, dass der ATMega32 mit den Ganzen Aufgaben
überfordert ist? Sollte ich z.B. noch einen zweite Controller nur fürs
Display einbauen und diesen dann über I2C/SPI/etc. ansteuern?
Brauche ich für USB bzw. PS/2 eigene Abblockkondensatoren?
grüssse
g.
Hi
Nur auf den ersten Blick:
- 100nF an VCC/AVCC fehlen
- deine Busleitung ist nicht verbunden
- dein ISP-Anschluss ist mit Datanleitungen vom LCD verbunden. Die
sollten
mit Widerständen entkoppelt werden (LCD).
MfG Spess
100nF sind da (oben).
Intern sind die Busleitungen alle verbunden, würde wahrscheinlich
schrecklich aussehen, wenn ich die so verbinden würde...
Widerstände vor dem ISP oder vor dem LCD?
Mir kommen langsam Zweifel, ob der ATMega das alles packt...
Äh ...
Sollte EXT9 / EXT10 gebrückt werden können, um als RS232-Loop dienen, so
sollte der Ausgang Pin 12 des IC1 ev. noch ein paar hundert Ohm als
Serienwiderstand erhalten.
Hallo,
Fragen über Fragen...
Baue doch deine Schaltung Stück für Stück auf einem Steckbrett auf.
Ein Stück Hardware zusammenstecken, die Software dafür entwerfen,
ausprobieren und weiter.
1. Controller und ISP
2. RS232
3. Display
4. USB
5. Touch + PS2
usw...
Ein MEGA32 wird die Aufgabenstellung sicherlich schaffen, allerdings
nicht alles gleichzeitig.
MfG
und mir fällt noch auf:
- ISP ist etwas ungewöhnlich belegt. (nicht ganz der Standard von den
üblichen Programmer)
- bei der RS232-Schnittstelle ist doch "GND" normalerweise der PIN 5
Steckbrett ist gerade ziemlich belegt, muss erstmal Platz schaffen
;-)... So werd' ichs auch machen.
RXD/TXD auf dem EXT-Port sind nur gedacht, um Zugriff auf die TTL-Pegel
zu haben.
Ich hätte wahrscheinlich etwas mehr Spielraum, wenn ich
Display-Ansteuerung+Touch auslagern würde, oder? Welchen Controller
würdet ihr dafür nehmen und wie sollte dieser am besten mit dem Mega32
zusammenarbeiten (d.h. welches Protokoll)? Dann hätte ich auch ein paar
Pins mehr frei und müsste keine mehrfach belegen.
grüssse
g.
@A.K. D.h. D1 und den Elko weglassen?
@Andreas: Ja, ISP ist ungewöhnlich. Mich hat es nur gewundert, dass die
üblichen Stecker nicht wirklich verpolsicher sind, der Stecker ist in
echt auch etwas unförmiger und hat 7 Pole (GND ist doppelt). GND dürfte
ja an Pin 5 sein, die Nummerierung ist hier nur irgendwie anders.
gadgaet schrieb:
> @A.K. D.h. D1 und den Elko weglassen?
Elko drinlassen, Diode überflüssig. Die ist nur sinnvoll, wenn in
grösserem Umfang Strom rückwärts durch den Regler fliessen könnte.
Die Diode war drin, falls versehentlich mal die Betriebsspannung
falschrum angelegt wird (kann bei 9V-Clip ja leicht mal passieren).
Brauchen VCC und AVCC wirklich beiden einen eigenen C? Auch wenn sie
verbunden werden?
Dann sage ich nur mal Vorsicht :-)
Sicherheitshalber solltest Du dann im Board nochmal kontrollieren, ob
die Signale auch am richtigen Pin liegen.
Ich würde mich auf jeden Fall immer nach der Pin-Nummerierung richten
wie sie von Eagle vergeben wird (ausser Du hast das Bauteil selbst
angelegt),
denn für das Layout ist nur die Pin-Nummerierung relevant, da die
grafische Anordnung der Pins im Schaltplan nichts mit der wirklichen
Positionierung der Pins im Board zu tun hat.
Board wird's sowieso keins geben... Hab vor, das ganze auf Lochraster
aufzubauen. Erstens kommt es billiger und zweitens habe ich noch etwas
Spielraum, wenn ich noch was einbauen will bzw. noch was ändern will.
@A.K.: Ich glaube, so präzise muss es nicht sein.
gadgaet schrieb:
> Widerstände vor dem ISP oder vor dem LCD?
vor dem LCD.
Da es aber nur Eingänge sind, wird es wahrscheinlich auch ohne
Widerstände funktionieren (mit bist du auf der sicheren Seite :-) )
Gut, habe mich jetzt doch für eine 2-Controller-Lösung entschieden.
Anbindung erfolgt über I²C, dürfte das von der Geschwindigkeit reichen?
Ich kann ja immer noch auf SPI umsteigen, falls nicht. Die Leitungen für
SPI sind die selben, die auch bei ISP benutzt werden?
Hallo,
gadgaet schrieb:
> Steckbrett ist gerade ziemlich belegt, muss erstmal Platz schaffen> ;-)... So werd' ichs auch machen.
Dann leiste Dir ein zweites... ;-)))
> RXD/TXD auf dem EXT-Port sind nur gedacht, um Zugriff auf die TTL-Pegel> zu haben.
GND RS232 wurde schon mehrfach erwähnt, ist Pin5, nicht Pin1.
Ich halte es nicht für sinnvoll, eine eigene Belegung für den ISP zu
benutzen, wenn es nicht zwingende Gründe wie z.B. spezieller
Steckverbinder aus Platzgründen usw., gibt.
Bei 2x3 ist man mit der üblichen immer gut bedient, selbst wenn der
Steckverbinder z.B. kein 2,54mm Raster hat, ist ein 1;1 Adapter
schneller gebaut, als jedesmal erst rätseln zu müssen, wo welches Pin
gelandet ist.
> Ich hätte wahrscheinlich etwas mehr Spielraum, wenn ich> Display-Ansteuerung+Touch auslagern würde, oder? Welchen Controller> würdet ihr dafür nehmen und wie sollte dieser am besten mit dem Mega32> zusammenarbeiten (d.h. welches Protokoll)? Dann hätte ich auch ein paar> Pins mehr frei und müsste keine mehrfach belegen.
Man kann auch 5 AVR nehmen, um etwas Nachdenken im Vorfeld
einzusparen...
Mehrfachbelegungen sind überhaupt kein Problem, wenn man jederzeit
darüber nachdenkt, was die Komponenten machen. ISP-Pins als Ausgang
stören nicht, wenn die Komponente sich nicht daran stört, daß da
ISP-Daten anliegen.
Displaydaten z.B sind egal, solange E oder /CS bei Reset = L und damit
TriState der AVR-Leitungen nicht aktiv sind. AVR als Eingang darf eben
in diesem Zustand kein anderes ICs aktive Ausgänge haben. Das ist mit
einem passenden PullUp/PullDown Widerstand an /CS, E, oder was auch
immer, kein Problem.
Zum "schafft das ein Mega32": was soll er denn machen?
Erstmal abschätzen, was zeitkritisch werden wird.
Hier sicher USB. Muß also, während eine USB-Übertragung läuft,
"gleichzeitig" was anderes passieren? Display? Uninteressant, kann man
sowieso nicht so schnell ablesen, läßt sich also vermutlich irgendwie
einschachteln.
Sensoren einlesen?
Sind wirklich welche dabei, die sehr häufig bearbeitet werden müssen und
Zeit kosten?
Tastatur: so schnell tippt keiner, wie sind die möglichen
Reaktionszeiten des PS/2, beißt sich das, wenn jemand während einer
USB-Übertragung eine Taste drückt oder ist die Zeit, bis USB den Kram
freigeben kann, immer so kurz, daß man die Tastatur zwischenschieben
kann?
Sowas kann man im Vorfeld zumindest abschätzen und eben die als kritisch
vermuteten Kombinationen mit Softwareteilen auf dem Steckbrett
durchspielen.
Nur was man nicht in Assembler programmieren kann, das muß man Löten.
;-))
Gruß aus Berlin
Michael
Hm... also USB direkt am Mega32? Was willst Du denn da machen? Wenn das
zuverlaessig funktionieren soll waerst Du mit einem FT232 besser
beraten. Und eine Batterie in Verbindung mit einem 7805 ist keine so
gute Idee, der saugt die Dir ziemlich schnell leer, selbst wenn die
Schaltung unbelastet ist. Da braeuchtest einen etwas effizienteren
Wandler.
Michael
USB war eigentlich nur als Spielerei gedacht, aber, da hast du recht
Michael, einen wirklichen Nutzen bring das nicht... Kann ich ja auch ein
andermal ausprobieren.
Wegen der seriellen Schnittstelle bin ich jetzt etwas verwirrt: Muss ich
TXD des µC an RXD von SUB-D-9 anschließen und umgekehrt? Also praktisch
ein Nullmodemkabel machen?
gadgaet schrieb:
> USB war eigentlich nur als Spielerei gedacht, aber, da hast du recht> Michael, einen wirklichen Nutzen bring das nicht... Kann ich ja auch ein> andermal ausprobieren.> Wegen der seriellen Schnittstelle bin ich jetzt etwas verwirrt: Muss ich> TXD des µC an RXD von SUB-D-9 anschließen und umgekehrt? Also praktisch> ein Nullmodemkabel machen?
Mach es vor aqllen Dingen richtig.
Hier zb. hat Hilde ganz gut beschrieben, wie es sein sollte (und in der
Praxis oft nicht ist)
Beitrag "Re: RS232 funktioniert nicht!"
Ist dein RS232 ein männlicher Anschluss oder ein weiblicher?
(Beachte: Auch im Tutorial ist das falsch. Eigentlich sollte auf so eine
µC Platine ein männlicher Anschluss. Ein µC als eigenständiger
Rechenknecht ist schliesslich ein DTE)
Ich dachte erst an einen weiblichen Anschluss, damit sich das Teil
problemlos an einen PC anschließen lässt. Männlich wäre auch denkbar, um
andere Geräte mit µC "kontrollieren" zu können. Ich tendiere aber zu
einem weiblichen. Aber es gibt ja Gender Changer... Oder ist da noch
etwas anderes zu berücksichtigen?