Forum: Mikrocontroller und Digitale Elektronik Welchen µC benutzen wenn mehr als 32 Inputs benötigt werden?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Dominikkur (Gast)


Lesenswert?

Guten Tag,

ich bekomme keinen richtigen Überblick über µC's, die Inputs und deren 
Entwicklungsboards.
programmieren tuh ich bereits mit normalen µC's (10 i/o),
allerdings brauche ich für das nächste Projekt ca 44 i/o's.

Nun habe ich was über Shift register, multiplexen gelesen, das wär kein 
riesiges Problem, nur ist das die einzige Möglichkeit mehr Inputs zu 
bekommen oder gibt es vllt auch µC's die sich wie die gängien µC's aufn 
Board entwickeln lassen und dann rausnehmen lassen?

von Volker S. (vloki)


Lesenswert?

Was für "normale", "gängige" Controller programmierst du denn so auf 
welchen Boards und nimmst sie dann raus?

von Stefan F. (Gast)


Lesenswert?

Wenn du mehr Eingänge brauchst, kannst du einen größeren Mikrocontroller 
verwenden. STM32 gibt es mit 48 bis weit über 100 Pins.

von Karl M. (Gast)


Lesenswert?

Hallo,

wenn ich mir dann noch das Pin - Anschlussrouting ansehe,
dann tendiere ich zu i2c input/output port expander.

Z.B.:
* PCF8547T
* MCP23008
* MCP23017

Mann kann natürlich auch einen attiny841 mit I2C Slaveinterface 
einsetzen oder auf einen atmega328p setzen.
Beim atttiny4313 muss man AVR312: Using the USI Module as a I2C Slave 
nutzen.

Je nach Anwendung gibt es unterschiedliche Möglichkeiten.

Von 74HC165 8-bit parallel-in/serial-out shift register wurde indirekt 
schon gesprochen.

von Noch einer (Gast)


Lesenswert?

Ist doch noch eine normale Grössenordnung. In jeder Serie gibt es 
Controller mit 64 Pins. So etwas gilt doch noch als normaler MC.

von Sebastian V. (sebi_s)


Lesenswert?

Vielleicht solltest du auch erstmal deine Anforderungen klären. Man kann 
Shift Register und Multiplexing machen wenn sich um "einfache" Dinge wie 
auslesen von Tastern, ansteuern von LEDs oder ähnliches geht. Wenn es 
ein schnelles paralleles Interface zu irgendwas werden soll eher nicht. 
Ansonsten sind 48 IOs jetzt nicht so riesig viele. Da gibt es schon 
Mikrocontroller, allerdings nicht unbedingt im DIP Geäuse.

von Dominikkur (Gast)


Lesenswert?

Auslesen von Tastern, allerdings möglichst ohne Latenzzeit die ich ja 
bei einem shift register haben müsste (?)

Wenn es kein DIP Gehäuse ist, bin ich etwas überfragt wie ich den 
mikrocontroller programmieren/verwenden kann, denn die Boards die ich zu 
denen finde scheinen nicht die richtigen zu sein (?), welche wo man die 
µC's entnehmen kann und gut einlöten kann,
die Peripherie auf den Boards brauche ich zB nicht, es ist ein recht 
simples Programm welches einfach paar mehr Inputs benötigt

von Karl M. (Gast)


Lesenswert?

Dominikkur,

alle wie viele µs oder ns sollen die Eingänge abgefragt werden?

von Dominikkur (Gast)


Lesenswert?

44

von tom (Gast)


Lesenswert?

nee - dann definitiv doch 42 !

Damit wären alle Fragen dann beantwortet, oder ?

ggg

von 1234567890 (Gast)


Lesenswert?

Dominikkur schrieb:
> Auslesen von Tastern, allerdings möglichst ohne Latenzzeit die ich ja
> bei einem shift register haben müsste

Naja, ohne Latenz wird es nicht gehen. Leg mal fest, welche Latenz noch 
tolerabel ist, dann kann man auch zu einer Lösung des Problemes kommen. 
Um ein 48 Taster auszulesen braucht man definitiv keine 48 Leitungen am 
Mikrocontroller.

Und zum Thema Latenz: Wenn es sich um von Menschen gedrückte Tasten 
handelt, dann solltest du deine tolerierbare Latenz auch an den Mensch 
anpassen, denn der Mensch reagiert nicht im Mikrosekundenbereich. Und 
schon brauchst du für deine 48 Tasten nur noch 7 Leitungen und eine Hand 
voll Dioden.
Und wenn du noch weniger Leitungen zum Mikrocontroller haben willst, 
dann I2C-Portexpander. Der Mikrocontroller (mit oder ohne Portexpander; 
mit oder ohne Tastenmatrix) ist so schnell, dass du als Mensch den 
Unterschied der Implementierung nicht merken wirst.

von 1234567890 (Gast)


Lesenswert?

1234567890 schrieb:
> brauchst du für deine 48 Tasten nur noch 7 Leitungen

Sorry, 14 Leitungen für 48 Tasten!

von Dominikkur (Gast)


Lesenswert?

Danke für die Antworten!

Habe mich leider ein wenig vertan, also es sind 18 Inputs, und 18 
Outputs, mit 6 Outputs für anderweitiges, nicht 44 Inputs, sondern auch 
Outputs, macht das einen Unterschied wenn man dann den Portexpander oder 
Shift Register verwendet?

von Karl M. (Gast)


Lesenswert?

Dominikkur schrieb:
> macht das einen Unterschied wenn man dann den Portexpander oder
> Shift Register verwendet?

Ja, vielleicht - es hängt vom Portexpander ab!

von Dominikkur (Gast)


Lesenswert?

Ok eine Frage bleibt mir, wenn ich ein Shift Register für Eingänge 
benutze, und die Eingänge wirklich sehr kurz gedrückt werden 
(Beispielsweise bei einem Reaktionsspiel), kann es dann nicht sein dass 
die Inputs manchmal nicht erkannt werden? Durch das Schieberegister 
werden ja nicht alle Inputs gleichzeitig sondern nacheinander abgefragt 
so wie ich das verstehe, oder sind die Zeiten beim abfragen wirklich so 
niedrig dass sowas auch bei wirklich sehr kurzem drücken nicht passieren 
sollte?

von Klaus (Gast)


Lesenswert?

Dominikkur schrieb:
> welche wo man die
> µC's entnehmen kann und gut einlöten kann,

Warum willst du die "entnehmen"?

MfG Klaus

von Dominikkur (Gast)


Lesenswert?

@Klaus

So wie ich sehe sind die Entwicklerboards für µC's über 32pins nicht 
gerade billig, vorallem sind das dann Boards mit recht viel peripherie, 
das wäre etwas überdimensioniert für ein eig. sehr kleines Projekt

von Dominikkur (Gast)


Lesenswert?

@Klaus

deswegen würde ich die dann entnehmen wenn das Programm fertig ist und 
sie auf eine normale Platine löten,

von Karl M. (Gast)


Lesenswert?

Dominikkur,

die PICs AVR kann man ISP Programmieren.

Was ist also unter ISP zu verstehen?

http://www.atmel.com/Images/Atmel-0943-In-System-Programming_ApplicationNote_AVR910.pdf

von Stefan F. (Gast)


Lesenswert?

Schieberegister kannst du locker mit mehreren MHz takten. Damit fragst 
du 32 Eingänge locker mehrere zig-tausend mal pro Sekunde ab. Für Taster 
ist ein Abfrageintervall von 1/100 Sekunde mehr als ausreichend.

Bei Amazon und Ali Express bekomnst du STM32 Boards mit über 100 
Anschlüssen für unter 10Euro.

von Einer K. (Gast)


Lesenswert?

Oder so was: http://www.inhaos.com/product_info.php?products_id=118
? ? ?

Viele IO, und 2,54mm Raster

von (prx) A. K. (prx)


Lesenswert?

Dominikkur schrieb:
> macht das einen Unterschied wenn man dann den Portexpander oder
> Shift Register verwendet?

Das spielt vor allem bei einer Tastenmatrix eine Rolle. Die wäre für 
Taster die effizienteste und schnellste Lösung.

Für 18 Taster (nicht: Inputs) reichen 9 Pins. Und wenn immer nur einer 
gedrückt ist, geht das auch mit 1-2 ADC-Pins und einigen Widerständen.

In manchen Szenarien kann man auch andere Outputs als Teil einer 
Tastenabfrage mitnutzen, z.B. einen LCD-Datenbus, weil der nicht zu 
jedem Zeitpunkt relevante Daten tragen muss. Dessen 4 Pins ergeben 
zusammen mit 5 Inputs und 5 Dioden eine 20er Tastenmatrix.

Daher ist nicht ganz unwichtig, was genau du an den vielen Pins hängen 
hast. Ob Taster, Zustandssignale, Displays, LED, Handgranaten, ... Und 
wieviel Latenz noch unter "keine Latenz" fällt.

: Bearbeitet durch User
von A. S. (Gast)


Lesenswert?

Fast alle menschliche Interaktion mit dem Computer (Tastendruck, 
Rückmeldung über eine LED) reicht ein Update alle 10ms. Wenn Du 
Schieberegister nimmst, macht Multiplexen da keinen Sinn. Ob Du das bei 
50 IO-Pins mit dem internen SPI machst (genau dafür wurde er entwickelt) 
oder per direktem Portpin-Wackeln ist völlig egal.

Multiplexen kannst Du Dir gerne antun, Du lernst auch viel dabei, aber 
bevor Du dafür mit X Transistoren und Dioden zusätzlich rumhantieren 
musst, nimm eine Handvoll schieberegister, da sie Fehlersuche und 
Inbetriebnahme sehr vereinfachen.

von Noch einer (Gast)


Lesenswert?

> Wenn es kein DIP Gehäuse ist

Adapterplatinen gibt es auf Ebay für 2 Euro. Einen SMD Chip auf einen 
Adapter löten ist erstaunlich einfach. (Uhrenquarz ist recht fummelig - 
mit Adapter und Lochraster werden die Leitungen zu lang).

Bevor du den Aufwand mit den Schieberegistern machst, einfacher ist 
Adapterplatine auf Lochraster.

von Wolfgang (Gast)


Lesenswert?

Dominikkur schrieb:
> Ok eine Frage bleibt mir, wenn ich ein Shift Register für Eingänge
> benutze, und die Eingänge wirklich sehr kurz gedrückt werden
> (Beispielsweise bei einem Reaktionsspiel), kann es dann nicht sein dass
> die Inputs manchmal nicht erkannt werden?

"Sehr kurz" ist relativ. Was hast du denn gemessen, wie lang ein "sehr 
kurzer" Tastendruck ist. Solange das länger als ein paar Millisekunden 
sind, würde ich mir wegen der Erkennung noch keine Sorgen machen. Die 
Schieberegister kann so gut wie jeder µC mit Hardwareunterstützung durch 
die SPI-Einheit bedienen, so dass sich auch die Prozessorlast in Grenzen 
hält.

von Thomas (kosmos)


Lesenswert?


von M. K. (sylaina)


Lesenswert?

Ist das inzwischen echt soo schwer geworden sich aus einer Serie einen 
uC heraus zu suchen, der genügend IOs zur Verfügung stellt? 44 IOs sind 
doch echt ein Witz, da muss man doch eher Fragen welche uC-Serie das 
nicht in ihrem Portfolio hat.

von Stefan F. (Gast)


Lesenswert?

> da muss man doch eher Fragen welche uC-Serie das
> nicht in ihrem Portfolio hat.

Bei ATmegas hat man nicht viele Wahlmöglichkeiten.

von Wolfgang (Gast)


Lesenswert?

M. K. schrieb:
> Ist das inzwischen echt soo schwer geworden sich aus einer Serie einen
> uC heraus zu suchen, der genügend IOs zur Verfügung stellt?

Bevor man nach einem µC mit fast 3-stelliger Pin-Anzahl sucht, sollte 
man sich überlegen, ob es bei ein paar Tastern nicht eine sinnvollere 
Methode als die Abfrage über Einzel-IOs gibt. Eine fürs Konzept nicht 
unwesentliche Frage wäre dabei z.B., wie die Kiste sich beim parallelen 
Drücken mehrerer Tasten benehmen soll.

von M. K. (sylaina)


Lesenswert?

Wolfgang schrieb:
> Bevor man nach einem µC mit fast 3-stelliger Pin-Anzahl sucht, sollte
> man sich überlegen, ob es bei ein paar Tastern nicht eine sinnvollere
> Methode als die Abfrage über Einzel-IOs gibt. Eine fürs Konzept nicht
> unwesentliche Frage wäre dabei z.B., wie die Kiste sich beim parallelen
> Drücken mehrerer Tasten benehmen soll.

Bevor man überhaupt damit beginnt nach einem uC zu suchen muss man sich 
fragen, welche Randbedingungen dieser erfüllen muss, welche vielleicht 
zusätzlich nützlich sind und welche nur nice to have sind.

von Einer K. (Gast)


Lesenswert?

Natürlich gibt es verschiedenste "Kriterien".

Aber hier scheinen Pin Anzahl und Rastermaß/Entnehmbarkeit die KO 
Kriterien zu sein.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Dominikkur schrieb:
> Durch das Schieberegister
> werden ja nicht alle Inputs gleichzeitig sondern nacheinander abgefragt
> so wie ich das verstehe, oder sind die Zeiten beim abfragen wirklich so
> niedrig dass sowas auch bei wirklich sehr kurzem drücken nicht passieren
> sollte?

Die einfachen üblichen 74HC595 kannst du ohne Probleme mit >20MHz fahren 
... Wenn es nur 18 Taster sind, bräuchtest du 3 davon. Dann hättest du 
eine Latenz von 1,2µs (falls ich mich nicht verrechnet habe). 
(Datenblatt sagt sogar was von "100 MHz (typical) shift out frequency")

Kommt halt darauf an, was du für Anforderungen hast :)

: Bearbeitet durch User
von Ralph S. (jjflash)


Lesenswert?

Mampf F. schrieb:
> Die einfachen üblichen 74HC595 kannst du ohne Probleme mit >20MHz fahren
> ...

20MHz sind schon sehr sportlich. Bei einem STM32 glaub ich nur über 
Hardware-SPI zu erreichen, bei einem AVR behaupte ich mal gar nicht.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Ralph S. schrieb:
> 20MHz sind schon sehr sportlich. Bei einem STM32 glaub ich nur über
> Hardware-SPI zu erreichen, bei einem AVR behaupte ich mal gar nicht.

Da würde man ja auch SPI dazu verwenden ... Aber 20MHz ist doch für 
einen AVR nicht unüblich, dachte ich :)

Und die Wahl des Controllers ist wohl noch offen - dann kann er auch 
einen STM32 verwenden.

Oh, mir ist gerade mein Fehler aufgefallen ... Mit dem 595er liest man 
ja keine Pins ein - man gibt sie nur aus.

Dann eben das Äquivalent dazu - HC165 glaube ich.

: Bearbeitet durch User
von Portexplodierer (Gast)


Lesenswert?

Das lässt sich wunderbar mit I2C-Portexpandern umsetzen.

Bei denen muss man aber aufpassen, welche man nimmt. Alte Typen sind oft 
ziemlich unpraktisch.

Folgender ist beispielsweise ganz nett:
https://www.nxp.com/docs/en/data-sheet/PCA9538.pdf

warum:
- Push-Pull-Ausgänge
- Interner Reset
- LVTTL-Pegel (d.h. an einen 5V Eingang kann ein 3V3-Signal ran

Portexpander sind sehr einfach zu verwenden, man kann auch mehrere an 
einem Bus anschließen.
Bei NXP findest du viele verschiedene, mit bis zu 40 Pins.

Vorteil: Kannst du mit deinem jetzigen µC verwenden.

von Daniel H. (Firma: keine) (commander)


Lesenswert?

Stefan U. schrieb:
> Bei ATmegas hat man nicht viele Wahlmöglichkeiten.

Also über die Produktsuche von Microchip finde ich insgesamt 110 
ATmegas. Von denen haben 42 mindestens 44 I/Os, d.h. 44% aller ATmegas 
kämen in Frage.

"Nicht viele Wahlmöglichkeiten" sind das aus meiner Sicht nicht.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Portexplodierer schrieb:
> Das lässt sich wunderbar mit I2C-Portexpandern umsetzen.

Welchen Vorteil hätte I2C gegenüber simplen Schieberegistern, die an SPI 
hängen?

Ja genau, überhaupt keinen xD

von Carl D. (jcw2)


Lesenswert?

Mampf F. schrieb:
> Portexplodierer schrieb:
>> Das lässt sich wunderbar mit I2C-Portexpandern umsetzen.
>
> Welchen Vorteil hätte I2C gegenüber simplen Schieberegistern, die an SPI
> hängen?
>
> Ja genau, überhaupt keinen xD

Sie wären bei 400kHz I2C-Takt nicht so anstrengend schnell ;-)

von Wolfgang (Gast)


Lesenswert?

Ralph S. schrieb:
> 20MHz sind schon sehr sportlich. Bei einem STM32 glaub ich nur über
> Hardware-SPI zu erreichen, bei einem AVR behaupte ich mal gar nicht.

Es gibt auch AVR mit Hardware-SPI ;-)
Und ob es 20MHz oder 4MHz sind, dürfte völlig schnuppe sein, solange es 
um Tastenabfragen im 2-Stelligen Bereich geht.

von Portexplodierer (Gast)


Lesenswert?

Mampf F. schrieb:
> Portexplodierer schrieb:
>> Das lässt sich wunderbar mit I2C-Portexpandern umsetzen.
>
> Welchen Vorteil hätte I2C gegenüber simplen Schieberegistern, die an SPI
> hängen?
>
> Ja genau, überhaupt keinen xD

Doch, mehrere:
- Richtung Umschaltbar (IN / OUT)
- Interrupt, bei Änderung eines Eingangs
- Definierter Status nach dem Reset

Konkretes Beispiel:
Wenn man z.B. viele Taster an Schieberegistern hat, muss man die 
Shiftregister pollen. Der I2C-Portexpander kann dir einen 
Sammelinterrupt geben.
Die benutzte CPU-Last dürfte ein winziger Bruchteil sein, denn man muss 
den Expander nur lesen, wenn ein Taster gedrückt wird.

In Summe: Erst denken, dann schreiben ;-)

Beitrag #5215073 wurde vom Autor gelöscht.
von Bastler (Gast)


Lesenswert?

Daniel H. schrieb:
> Stefan U. schrieb:
>> Bei ATmegas hat man nicht viele Wahlmöglichkeiten.
>
> Also über die Produktsuche von Microchip finde ich insgesamt 110
> ATmegas. Von denen haben 42 mindestens 44 I/Os, d.h. 44% aller ATmegas
> kämen in Frage.
>
> "Nicht viele Wahlmöglichkeiten" sind das aus meiner Sicht nicht.

42 von 100 wären schon nur 42%, 42 von 110 können dann wohl nicht mehr 
als 42% sein. Ich frag mich grad wie der Wert zustande kam, die 10% die 
110 mehr als 100 ist oben drauf geschlagen hätte ja 46% rauskommen 
müssen...

Es sind also 38% der Megas die >=44 IO haben.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Portexplodierer schrieb:
> Doch, mehrere:
> - Richtung Umschaltbar (IN / OUT)
> - Interrupt, bei Änderung eines Eingangs
> - Definierter Status nach dem Reset

Gut, das können sie Schieberegister nicht ... Wobei Power-On-Reset 
sollte schon gehen.

Portexplodierer schrieb:
> Der I2C-Portexpander kann dir einen
> Sammelinterrupt geben.

Und bei mehreren Bausteinen ver-oder-t man die Interrupts über Dioden?

Portexplodierer schrieb:
> Die benutzte CPU-Last dürfte ein winziger Bruchteil sein, denn man muss
> den Expander nur lesen, wenn ein Taster gedrückt wird.

Nichts zu tun ist natürlich besser, als wenn alle kA paar Microsekuden 
neue Daten über den SPI herein kommen.

In der Summe müsste man entscheiden, ob die 400kHz I2C ausreichen oder 
ob konstanter SPI-Transfer den Controller zu stark belasten würde.

Muss aber dann der TE sich überlegen :)

Ich frag mich eh, weshalb er nicht eine Matrix für seine Taster 
verwendet - wird aber vmtl irgendeinen Grund haben.

Portexplodierer schrieb:
> In Summe: Erst denken, dann schreiben ;-)

Ach, da kommt auch Erfahrung und persönliche Präferenz dazu .. Die 
Expander wie zB PCF8574 hab ich mal vor Jahren verwendet, aber dann nie 
wieder einen Grund gesehen, weshalb ich die brauchen würde.

SPI ist simpler als I2C, wobei es im Grund ja nur eine Software-Sache 
ist und es da tausende von Beispielen gibt. Trotzdem war es mir schon 
immer unsympathisch :)

Aber gut, ich hab mich geirrt, sie haben tatsächlich Vorteile - ein paar 
;-)

Kosten allerdings mehr und sind langsamer^^

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

Mampf F. schrieb:
> Die einfachen üblichen 74HC595 kannst du ohne Probleme mit >20MHz fahren
> ... Wenn es nur 18 Taster sind, bräuchtest du 3 davon.

Nutzt nichts! Schon schade, wenn man nur SR mit acht Ausgängen kennt.

Meine Favoriten sind CD4021. In Kombination mit CD4094 lassen sich auch 
Ausgänge erweitern.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

m.n. schrieb:
> Schon schade, wenn man nur SR mit acht Ausgängen kennt.
>
> Meine Favoriten sind CD4021. In Kombination mit CD4094 lassen sich auch
> Ausgänge erweitern.

Das verstehe ich jetzt nicht, was du meinst ... Die beiden von dir 
genannten Typen haben auch nur jeweils 8.

von m.n. (Gast)


Lesenswert?

Und ich verstehe nicht, wie man Taster an Ausgänge anschließen soll ;-)

von (prx) A. K. (prx)


Lesenswert?

m.n. schrieb:
> Und ich verstehe nicht, wie man Taster an Ausgänge anschließen soll ;-)

Gibts oft. Vielleicht tippst du grad auf solchen Tastern. Matrix.

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

Noch einmal: wie lese ich mit 3 x Schieberegistern 74HC595 18 Taster 
ein?
Bitte keine Lauflichtschaltungen!

Mit 3 x CD4021 geht das Einlesen ganz einfach.

von Daniel H. (Firma: keine) (commander)


Lesenswert?

Bastler schrieb:
> von 100 wären schon nur 42%, 42 von 110 können dann wohl nicht mehr
> als 42% sein. Ich frag mich grad wie der Wert zustande kam, die 10% die
> 110 mehr als 100 ist oben drauf geschlagen hätte ja 46% rauskommen
> müssen...
>
> Es sind also 38% der Megas die >=44 IO haben.

Ist richtig, es kommen zwei Fehler zusammen:

1. Ich hatte ursprüngliche über alle gelisteten Controller abzüglich 
ATtiny gerechnet. Dabei kommt man auf 176 Controller von denen 81 in 
Frage kommen. Allerdings umfasst diese Zahl auch noch die ATxmega und 
die AT90. Diese habe ich anschließend rausgerechnet, so dass nur noch 
110 Controller übrig bleiben, von denen dann nur noch 42 in Frage 
kommen. Diese Zahlen habe ich dann auch so aktualisiert, die Prozentzahl 
ist mir allerdings durchgegangen.

2. Die 44% sind ein Typo, tatsächlich sollten es (ausgehend von ATmega + 
AT90 + ATxmega) 46% sein

von Thomas (kosmos)


Lesenswert?

der Vorteil der parallelen Latches ist das man nur ein paar 
Steuerleitungen braucht, dazu kann man jeden xbeliebigen I/O Pin nehmen 
verbraucht also weder die I2C/SPI Schnitsstelle nocch hat man großen 
Programmieraufwand.

Die 8 Datenpins kann man jederzeit wieder als normale I/O 
weiterbenutzen.

Ich beschreibe es nochmal kurz.
1. Daten an die Ausgänge legen.
2. Steuersignal an den Latch geben dass es die Daten übernimmt und 
ausgibt.
3. Nun gebe ich neue Daten an die Ausgänge
4. Steuersignal an das 2te Latches dass es die Daten übernimmt und 
ausgibt. 5. ........
6. 3tes Latch beauftragen.
7. Pins wieder als Eingänge schalten und für andere Zwecke verwenden.

Wenn man die Eingänge erweiter will kann man alle 3 Latches mit einem 
Signal gleichzeitig beauftragen die anliegenden Daten zu 
übernehmen(speichern) und holt Sie dann später ab wenn mans braucht z.B. 
alle 50 mSek.

Das ist sehr einfach zu programmieren. Mein erstes Projekt war damit ein 
ATTiny26 + ein Latch, habe damit ein LCD im 8 Bit Modus angesteuert und 
gleichzeitig sehr viele Analogeingänge weiternutzen können.

Beitrag #5215212 wurde vom Autor gelöscht.
von (prx) A. K. (prx)


Lesenswert?

m.n. schrieb:
> Mit 3 x CD4021 geht das Einlesen ganz einfach.

Oder auch 15 Tasten mit einem einzigen CD4021, als 3x5 Matrix.

von m.n. (Gast)


Lesenswert?

A. K. schrieb:
> Oder auch 15 Tasten mit einem einzigen CD4021, als 3x5 Matrix.

So, ich reagiere mal, damit Du nicht weiter editieren kannst ;-)
Du kennst den CD4021? https://www.ti.com/lit/ds/symlink/cd4021b-q1.pdf
Die Schaltung will ich sehen, die mit acht Eingängen eine 3x5 Matrix 
bedient!

von (prx) A. K. (prx)


Lesenswert?

m.n. schrieb:
> Du kennst den CD4021?

Ich schon. Du auch? ;-)

> Die Schaltung will ich sehen, die mit acht Eingängen eine 3x5 Matrix
> bedient!

Kein Problem. Der hat nämlich nicht nur 8 Eingänge, sondern auch 3 
Ausgänge. Die koppelt man auf die Eingänge der gleichen Stufen zurück, 
damit sie stabil bleiben. Ergibt 5 Eingänge und 3 Ausgänge.

Tatsächlich sind es sogar 20 Tasten in 4x5 Matrix, weil SER-IN in der 
Erkennungsphase arbeitslos ist und dessen µC-Pin ebenfalls als Ausgang 
für die Matrix genutzt werden kann. Wobei dieser Pin allerdings 
gegenüber einer reinen Input-Kette hinzu kommt.

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

A. K. schrieb:
> Tatsächlich sind es sogar 20 Tasten in 4x5 Matrix, weil SER-IN in der
> Erkennungsphase arbeitslos ist und dessen µC-Pin ebenfalls als Ausgang
> für die Matrix genutzt werden kann.

Na um so besser, denn der TO möchte ja 18 Taster einlesen.
Ich möchte ja nicht drängeln, aber die Schaltung möchte ich schon sehen.

von (prx) A. K. (prx)


Angehängte Dateien:

Lesenswert?

m.n. schrieb:
> Ich möchte ja nicht drängeln, aber die Schaltung möchte ich schon sehen.

Anbei die 3x5er.

von (prx) A. K. (prx)


Angehängte Dateien:

Lesenswert?

Und hier die 4x5er.

Der Text ist nicht ganz richtig, es betrifft natürlich jeweils alle 4 
Dioden.

Das ist ausserdem ein Schemabild, die Symbolik der Pulldowns darf 
kreativ gedacht werden, nicht als Kurzschluss.

Ich weiss aber nicht, ob ich diese beiden Schaltungen jemals ausprobiert 
hatte. Die Idee zur 3x5er ist jedenfals schon recht alt. Die Frage ist, 
was genau während der Umschaltung von Seriell zu Parallel mit den 
Ausgängen passiert. Also ob die stabil bleiben, oder kurz glitchen 
könnten.

: Bearbeitet durch User
von Sebastian S. (amateur)


Lesenswert?

@Dominikkur
Ich bin mir nicht ganz sicher, ob Du mit den hier gegebenen Antworten 
überhaupt was anfangen kannst!

Erst:
>"ca 44 i/o's"
Später:
>18 Inputs, und 18
>Outputs, mit 6 Outputs für anderweitiges, nicht 44 Inputs, sondern auch
>Outputs, macht das einen Unterschied wenn man dann den Portexpander oder
>Shift Register verwendet?

18 oder 24 Outputs? Zugegeben meine mathematischen Kenntnisse sind nicht 
überragend!

Erst:
>Auslesen von Tastern, allerdings möglichst ohne Latenzzeit die ich ja
>bei einem shift register haben müsste (?)
Dann:
>macht das einen Unterschied wenn man dann den Portexpander oder
>Shift Register verwendet?

Antwort auf die Frage:
"alle wie viele µs oder ns sollen die Eingänge abgefragt werden?"
>... 44
unwichtig ob µs oder ns!

Also Spaß beiseite - Ernst komm raus!
Die wichtigste Frage wurde noch gar nicht angerissen!
"Wie viel Rechenleistung brauchst Du eigentlich"?
Kurz vor Feierabend, am Freitag, habe ich mit einem letzten Tastendruck, 
eine Simulation gestartet, die auf unserem Server wenigstens 3 Wochen 
benötigt.
Oder willst Du eine einfache wenn-dann Entscheidung treffen?

Die meisten Hersteller haben auf ihren Internetseiten Listen, meist 
Excel-Kompatibel, die die verfügbaren Mikrocontroller auflisten.
Da kann man auch direkt nach der Anzahl an Anschlüssen sortieren.
Reicht einer mit geringerer Leistung, schau doch mal bei Atmel 
(neuerdings MicroChip) nach. Die haben auch noch einige Chips mit 
"echten" Füßen im Angebot.

Weiterhin gibt es zu vielen µCs sogenannte Break-Out Boards, auf denen 
Prozessoren mit vielen Füßen, in SMD-Technik, auf normale 
Durchkontaktierungen geführt wurden.

Last but not least stellen viele Hersteller sogenannte Evaluation Boards 
zur Verfügung - meist günstiger als ein Eigenbau - die sich leicht und 
komfortabel programmieren bzw. steuern lassen. Einige haben auch 
Stiftleisten auf der Platine, die für Deine gewünschte Erweiterung 
infrage kommen.

Noch ein Hinweis: Praktisch alle, heute aktuellen Mikroprozessoren 
haben, verglichen mit den Zeiten, wie sie bei Tastenanschlägen 
vorkommen, Reaktionszeiten, die jede Taste alt aussehen lässt. Sogar 
hinter einem Expander.

: Bearbeitet durch User
von m.n. (Gast)


Angehängte Dateien:

Lesenswert?

Gut. Die Taster müssen entkoppelt sein (Dioden) und dürfen kein 
gemeinsames Bezugspotential haben (GND bzw. VCC), und es können auch 
keine beliebigen Eingänge ausgewertet werden. Ferner ist die Matrix 
nicht erweiterbar.
Alles zusammen sagt mir eher nicht zu.

Mit 3 x 4021 lassen sich 25 Eingänge einlesen und die Schaltung ist 
(nahezu) beliebig kaskadierbar. Das Einlesen erfordert keine spezielle 
Programmierung sondern kann per SPI mit hoher Geschwindigkeit erledigt 
werden. Siehe Anhang.

von Wolfgang (Gast)


Lesenswert?

Mampf F. schrieb:
> Portexplodierer schrieb:
>> Der I2C-Portexpander kann dir einen
>> Sammelinterrupt geben.
>
> Und bei mehreren Bausteinen ver-oder-t man die Interrupts über Dioden?

Oder man gibt sie auf einen Interupt-Encoder, der einem gleich sagt, 
welcher Baustein es war.

von Stefan F. (Gast)


Lesenswert?

> Es sind also 38% der Megas die >=44 IO haben.

Ich glaube, der TO wollte das auf Typen mit DIP Fassung beschränken. 
Darauf bezog ich mich jedenfalls, als ich schrieb, dass man nicht viele 
Wahlmöglichkeiten hat.

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.