Forum: Mikrocontroller und Digitale Elektronik Mein erster Schaltplan. Kritiken (konstruktiv) sind ausdrücklich erwünscht.


von Jens D. (thedaze)


Angehängte Dateien:

Lesenswert?

Hallo!

Es ist so weit, ich habe meinen ersten Schaltplan fast fertig und bin 
eigentlich schon ganz Stolz auf mich. Trotzdem würde ich gerne wissen, 
was ich noch besser machen kann.

Auf dem Schaltplan sieht man folgendes:

SV1: Ein Wannenstecker für Flachbandkabel, an das sieben Buttons kommen 
werden. (kommt eventuell noch was anderes dran)

IC2: Der Schift Register für die Buttons.

JP4: 2 Pins für Rx und Tx (Soll später mit einem Zweiten Board verbunden 
werden)

JP2: Anschluss für das Display (Pins werden nicht eingesetzt, Anschlüsse 
werden direkt drauf gelötet, habe keinen schönen Stecker auf reichelt 
gefunden)

JP1: Anschlüsse zum programmieren des µC

IC1: Natürlich der ATMega

Wäre natürlich noch toll, wenn mir Jemand eine gute Alternative für JP2 
nennen könnte :)

Gruß Jens

von MaWin (Gast)


Lesenswert?

Eingänge sollten nicht offen blieben (SER von IC10).
Beim Display hingegen schon.
Aber was heisst Display. Es weiss ja kein Schwein was du verbaut hast, 
für ein handelsübliches LCD wäre es jedenfalls falsch.
Vorwiderstand an Beleuctung fehlt, und nur 1 Anschluss (neben den 4 
Datenpins) vom uC sind zu wenig.

Insgesamt verbrätst du 4 Anschlüsse um 7 Tasten abzufragen und brauchst 
noch ein zusätzliches IC. Das ist Unsinn. Da dein uC Analogeingänge hat, 
reicht sogar ein Pin. Wenn es unbedingt 7 Taster nach +5V sein müssen, 
könnte man auch einen Multiplexer (CD4051 oder 74HC151) anbauen, dessen 
ABC Eingänge an D4,D5,D6 des LDC Ausgangs kommen, so reicht auch ein 
Eingangspins. Aber bei so vielen ungenutzen uC Pins kann man auch 
einfach die 7 Tastern direkt an uC-Eingänge legen. Auch an die des ISP 
Ports.

von Karl H. (kbuchegg)


Lesenswert?

Beim LCD fehlt noch eine Leitung (Enable)
Wenn ich ein LCD ansteckbar mache, dann nehme ich ganz normale 10-polige 
(2*5) Wannenstecker und Aufpressbuchse für ein Flachbandkabel.

An AREF kann ein 100nF Kondensator nicht schaden.
Was hast du mit ADC0 vor?

von Thomas D. (thomasderbastler)


Lesenswert?

Nunmal als erstes..10k am Reset gehört nach VCC und nicht auf GND..oder 
?
ARef sieht auch etwas verlassen aus...

Am Display Anschluss, LCD gehe mal davon aus , Pin 15 und 16 wäre ein 
Widerstand Deine LCD Beleuchtung gut tun..

von 6A66 (Gast)


Lesenswert?

Jens D. schrieb:
> IC2: Der Schift Register für die Buttons.

Warum Shift-Register? (!Schreibweise) Eine Tastatur mit 8 Tasten kann 
man auch mit 3+3Leitungen realisieren - Ohne Schieberegister. Oder 8 
Eingänge mit einem 8zu1 Multiplexer HC151 einlesen, braucht auch nur 4 
Port-Pins aber ohne Takterei.

Warum Pulldown am Button-Port?

rgds

von spess53 (Gast)


Lesenswert?

Hi

Soll dein Controller noch etwas andere machen, als im RESET herum 
hängen?

Wenn ja, dann gehört ein Pull-Up-Widerstand nach VCC an den RESET-Pin.

MfG Spess

von Jens D. (thedaze)


Lesenswert?

MaWin schrieb:
> Aber was heisst Display. Es weiss ja kein Schwein was du verbaut hast,
> für ein handelsübliches LCD wäre es jedenfalls falsch.

Standard HD44780, werde Belegung noch ein mal überprüfen, danke.

MaWin schrieb:
> Wenn es unbedingt 7 Taster nach +5V sein müssen,
> könnte man auch einen Multiplexer (CD4051 oder 74HC151) anbauen, dessen
> ABC Eingänge an D4,D5,D6 des LDC Ausgangs kommen, so reicht auch ein
> Eingangspins. Aber bei so vielen ungenutzen uC Pins kann man auch
> einfach die 7 Tastern direkt an uC-Eingänge legen. Auch an die des ISP
> Ports.

Hmm werde mir den Multiplexer jedenfalls mal genauer ansehen. Ich habe 
seltsamerweise die analogen Ports völlig vernachlässigt, danke für den 
Hinweis!

Karl Heinz schrieb:
> Beim LCD fehlt noch eine Leitung (Enable)
> Wenn ich ein LCD ansteckbar mache, dann nehme ich ganz normale 10-polige
> (2*5) Wannenstecker und Aufpressbuchse für ein Flachbandkabel.

Hmm einreihig wäre schöner, aber vielleicht mach ich das so.

Karl Heinz schrieb:
> An AREF kann ein 100nF Kondensator nicht schaden.

Werde ich einbauen

Karl Heinz schrieb:
> Was hast du mit ADC0 vor?

Spannung von Batterie ablesen, sind max 5 Volt, aber ich denke ich werde 
noch einen Spannungsteiler einbauen.

Thomas der Bastler schrieb:
> Am Display Anschluss, LCD gehe mal davon aus , Pin 15 und 16 wäre ein
> Widerstand Deine LCD Beleuchtung gut tun..

Denke ich auch.

6A66 schrieb:
> Eingänge mit einem 8zu1 Multiplexer HC151 einlesen, braucht auch nur 4
> Port-Pins aber ohne Takterei.

kenne noch nicht viele ICs

6A66 schrieb:
> Warum Shift-Register? (!Schreibweise)

;)

6A66 schrieb:
> Warum Pulldown am Button-Port?

Weil ich dann genauso gut gar nichts mehr anschließen muss, weil es dann 
eh nur noch unsinn ist, was ich auslese.

von Jens D. (thedaze)


Lesenswert?

spess53 schrieb:
> Wenn ja, dann gehört ein Pull-Up-Widerstand nach VCC an den RESET-Pin.

Oh danke! Hatte ich vertauscht.

von Max H. (hartl192)


Lesenswert?


von 6A66 (Gast)


Lesenswert?

Jens D. schrieb:
> 6A66 schrieb:
>> Warum Pulldown am Button-Port?
>
> Weil ich dann genauso gut gar nichts mehr anschließen muss, weil es dann
> eh nur noch unsinn ist, was ich auslese.

Wenn Deine "Buttons" Tasten sind brauchst Du einen Default-Pegel - das 
ist korrekt. Wird aber normalerweise mit Pullup bemacht und mit Taster 
nach Masse. Wenn Du andere Peripherie anschließt die zwei definierte 
Zustände hat brauchst Du keinen Pullup/Pulldown.
Und nicht beschaltete Eingänge des Multiplexers/Schieberegisters kann 
man auch in SW Ausmaskieren.

rgds

von G ast (Gast)


Lesenswert?

also ich glaub die Stromversorgung ist nicht mit dem +5v Netz verbunden. 
Du speist doch an JP3 ein oder? Masse von JP3 gehört ebenfalls noch 
verbunden.

Grüße

von Karl H. (kbuchegg)


Lesenswert?

Jens D. schrieb:

> Karl Heinz schrieb:
>> Was hast du mit ADC0 vor?
>
> Spannung von Batterie ablesen, sind max 5 Volt, aber ich denke ich werde
> noch einen Spannungsteiler einbauen.

Das funktioniert so nicht.
Du kannst nicht die Versorgungsspannung auf diese Art messen.
Denn: Was ist deine Referenzspannung?
* Fall A: das ist die Versorgungsspannung. D.h. du kriegst damit immer 
eine glatte 1023 als Ergebnis
* Fall B: du nimmst die interne Referenzspannung. Dann kannst du aber 
keine 5V damit messen, denn die interne Referenzspannung ist geringer 
als die zu messende Spannung.

Fazit:
Das macht man anders.
Man benutzt die Versorgungsspannung als Referenz und schaltet den ADC 
so, dass er die interne Referenzspannung (die Bandgapspannung) vermisst. 
Aus dem Ergebnis (und der bekannten Höhe der Bandgapspannung) kann man 
auf die benutzte Referenzspannung zurückrechnen. Die war aber die 
Versorgungsspannung.

Fazit: es ist keine externe Beschaltung notwendig. Das kann man alles 
mit den Schaltmöglichkeiten des ADC per Programm erschlagen.

von Jens D. (thedaze)


Lesenswert?

Max H. schrieb:
> R<2:7> könntest du dadurch ersetzten:
> 
https://secure.reichelt.de/7-Widerstaende-8-Pins/SIL-8-7-100K/3//index.html?ACTION=3;ARTICLE=17955;SEARCH=SIL%208-7%201,0K

Sehr gute Idee, werde ich machen!

6A66 schrieb:
> Wenn Deine "Buttons" Tasten sind brauchst Du einen Default-Pegel - das
> ist korrekt. Wird aber normalerweise mit Pullup bemacht und mit Taster
> nach Masse.

Stimmt Pullup wird wohl einfacher sein.

6A66 schrieb:
> Und nicht beschaltete Eingänge des Multiplexers/Schieberegisters kann
> man auch in SW Ausmaskieren.

Kannst du mir das näher erklären? Was soll "sw" sein. Schlag mich bitte 
nicht, wenn das reinste Basis ist :)

Karl Heinz schrieb:
> * Fall A: das ist die Versorgungsspannung. D.h. du kriegst damit immer
> eine glatte 1023 als Ergebnis

Doh

Karl Heinz schrieb:
> Fazit: es ist keine externe Beschaltung notwendig. Das kann man alles
> mit den Schaltmöglichkeiten des ADC per Programm erschlagen.

Muss ich mal näher untersuchen, danke für den Hinweis

G ast schrieb:
> also ich glaub die Stromversorgung ist nicht mit dem +5v Netz verbunden.
> Du speist doch an JP3 ein oder? Masse von JP3 gehört ebenfalls noch
> verbunden.

Alle +5V Symbole hängen an "+5V" und die Leitung an Pin1 von JP3 heißt 
"+5V". Die Leitung an Pin2 heißt "GND". Sollte ich das anders lösen?


Vielen Dank für die zahlreichen Antworten, hab schon wieder einiges 
gelernt. Werde jetzt erst einmal ausbessern!

von 6A66 (Gast)


Lesenswert?

Jens D. schrieb:
> 6A66 schrieb:
>> Und nicht beschaltete Eingänge des Multiplexers/Schieberegisters kann
>> man auch in SW Ausmaskieren.
>
> Kannst du mir das näher erklären? Was soll "sw" sein. Schlag mich bitte
> nicht, wenn das reinste Basis ist :)

SoftWare - Dein Programm schaut also nur auf die tatsächlich 
angeschlossenen Bits des Schieberegisters oder die angeschlossenen 
Eingänge des Multiplexers.

rgds

von Karl H. (kbuchegg)


Lesenswert?

Jens D. schrieb:

> Kannst du mir das näher erklären? Was soll "sw" sein. Schlag mich bitte
> nicht, wenn das reinste Basis ist :)


sw = Software

Sprich: Das Programm weiß ja, welche Eingänge benutzt sind und welche 
nicht.
Wenn nicht benutzte Eingänge daher irgendeinen Pegel annehmen ist das 
kein Beinbruch.
Ich würd aber trotzdem einen Pullup/Pulldown vorsehen, sollte es bei der 
Schieberegister-Lösung bleiben.

>> also ich glaub die Stromversorgung ist nicht mit dem +5v Netz verbunden.
>> Du speist doch an JP3 ein oder? Masse von JP3 gehört ebenfalls noch
>> verbunden.
>
> Alle +5V Symbole hängen an "+5V" und die Leitung an Pin1 von JP3 heißt
> "+5V". Die Leitung an Pin2 heißt "GND". Sollte ich das anders lösen?

Im Schaltbild sieht man aber nicht, dass die Leitungen selber +5V bzw. 
GND heissen.
Ich hätte das so gelöst, von der Anschlussklemme eine Leitung zum +5V 
Symbol bzw. zum GND Symbol geht, genau so, wie du es auch bei den 
Bausteinen gemacht hast, die an +5V bzw. GND hängen und von dort ihre 
Versorgung beziehen.
So gesehen 'versorgt' das globale +5V bzw. GND - netz die 
Anschlussklemme :-)

: Bearbeitet durch User
von Holger L. (max5v)


Lesenswert?

Du kannst noch mit Invoke auf das Bauteil klicken, dann bekommst du GND 
und VCC für den 74HC165. Daran könntest du dann noch einen 100nF 
!Abblockkondensator anschließen.

Der 16MHz Quarz kann unter Umständen weggelassen werden, das kommt 
natürlich auf die Baudrate deines Uart, und was du noch mit dem AVR 
anstellen willst, an. Der Vorteil wäre natürlich das zwei weitere Pins 
zur Verfügung stehen würden und du dir drei Bauteile sparst.

Was den Displayanschluß angeht, es gibt 16 Polige einreihige 
Buchsenleisten.
Da mußt du allerdings auf die Bauteilhöhen achten, ein normaler 
Folienkondensator passt unter Umständen nicht unter das LCD.

von Jens D. (thedaze)


Lesenswert?

Karl Heinz schrieb:
> sw = Software

OH damit hatte ich jetzt nicht gerechnet xD

Karl Heinz schrieb:
> Im Schaltbild sieht man aber nicht, dass die Leitungen selber +5V bzw.
> GND heissen.
> Ich hätte das so gelöst, von der Anschlussklemme eine Leitung zum +5V
> Symbol bzw. zum GND Symbol geht, genau so, wie du es auch bei den
> Bausteinen gemacht hast, die an +5V bzw. GND hängen und von dort ihre
> Versorgung beziehen.
> So gesehen 'versorgt' das globale +5V bzw. GND - netz die
> Anschlussklemme :-)

Gute Idee, habe ich gemacht!

Holger L. schrieb:
> Du kannst noch mit Invoke auf das Bauteil klicken, dann bekommst du GND
> und VCC für den 74HC165. Daran könntest du dann noch einen 100nF
> !Abblockkondensator anschließen.

Danke, aber rechts neben dem IC ist das so :)

Holger L. schrieb:
> Der 16MHz Quarz kann unter Umständen weggelassen werden

Ich werde ihn trotzdem vorsehen, da ich gerne noch genug Puffer habe.

von Holger L. (max5v)


Lesenswert?

Entschuldige, war gerade ein wenig abgelenkt.

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
Noch kein Account? Hier anmelden.