www.mikrocontroller.net

Forum: Projekte & Code Porterweiterung über 74HC595


Autor: Frank Link (franklink)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
hier eine kleine Platine als Porterweiterung über den Baustein 74HC595.

Die Platine ist als einseitiges Layout ausgelegt, damit sie einfach und 
durch jeden selbst erstellt werden kann. Das führt dazu, dass eine 
erhebliche Anzahl von Drahtbrücken notwendig sind.

In der Zip-Datei befindet sich eine PDF-Datei mit dem Layout sowie der 
Sourcecode zur Ansteuerung der Bausteine über Software SPI.
Es können mehrere dieser Platinen hintereinander geschaltet (kaskadiert) 
werden.

Um das im PDF hinterlegte Layout zu drucken, ist darauf zu achten, dass
alle Skalierung im PDF-Reader ausgeschaltet sind (Seitenanpassung:
keine). Wird diese Einstellung nicht gewählt, wird das Layout um die
entsprechende angegebene Skalierung verkleinert!

Download:
http://www.derplatinenshop.de/documents/porterweit...

Gruß
Frank

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum versuchst Du nicht, die Brücken durch geschicktes Routing zu 
minimieren ?

Autor: Frank Link (franklink)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Pete,
habe ich versucht, dass Problem, wenn ich z.B. die Leiterbahnen zwischen 
den Pins verlaufen lasse, können die meisten das Layout nicht mehr 
selber belichten. Ich wollte aber, dass möglichst viele das Layout 
selber reproduzieren können.

Hinzu kommt, es ist eine Experimentierplatine mit den Maßen 70 x 35 mm. 
Ich erhebe für diese Platine nicht den selben Anspruch einer 
professionellen Fertigung wie z.B. bei meinen Verstärkerplatinen.

Jeder kann natürlich ein besseres Layout zur Verfügung stellen und hier 
anhängen. Wäre mal interessant die verschiedenen Lösungsansätze zu 
sehen. Immer mit dem Anspruch, jeder sollte mit den einfachsten Mitteln 
diese Platinen herstellen können.

Gruß
Frank

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm.. stell doch mal die SPrintLayut datei mit ein.. da kann man auf 
jedenfall noch einiges einsparen.

Autor: Frank Link (franklink)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier das Spritlayout.

Gruß
Frank

Autor: Läubi .. (laeubi) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Habs mal auf 2 Drahtbrücken reduziert bei immer noch recht lockerem 
Layout :)

Autor: Läubi .. (laeubi) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
bild

Autor: Frank Link (franklink)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo laeubi,
ich habe das Layout noch ein klein wenig verändert. Danke für die 
Überarbeitung.

Die Änderungen sind in der Download-Datei als PDF enthalten.

Download:
http://www.derplatinenshop.de/documents/porterweit...

Gruß
Frank

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den Output Enable sollte man aber mit zum MC führen.

Der Zustand nach dem Power-On ist ja rein zufällig und dann ist es blöd, 
wenn gleich irgendwelche Motoren eingeschaltet werden und unkontrolliert 
loslaufen.

Ich mach daher immer nen Pullup an den /OE, der hält alle Ausgänge 
tristate.

Und nach dem Reset schiebt der MC ein gültiges Datenbyte ein und erst 
danach werden die Ausgänge aktiviert (/OE = low).


Peter

Autor: Frank Link (franklink)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,
danke für den Hinweis.

Ich habe das Layout so geändert, dass beide Alternativen verwendet 
werden können. Über Jumper umschaltbar.

Sobald ich die Software getestet habe, stelle ich alles ein.

Gruß
Frank

Autor: Frank Link (franklink)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich habe das ganze als Artikel unter Projekte eingestellt, da ich noch 
weitere Platinen und Routinen für diesen Bereich bauen möchte.

Ich würde mich über eine rege Diskussion und Anregungen freuen. Fehler 
in den Texten bitte ich sofort zu korrigieren.

Hier die URL: http://www.mikrocontroller.net/articles/Porterweiterungen

Gruß
Frank

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verwende solche Portexpander in mehreren Projekten und hab bisher 
gute Erfahrungen damit gemacht. Die Expander sind billiger und 
wesentlich einfacher uns schneller anzusteuern als zB I²C-Expander.

Zu Deinem Layout

1) Bei mehreren Expandern und Lasten an den Ausgängen zupft das an der 
Versorge, zumal alle ICs gleichzeitig schalten. Abblockkondensatoren 
(KerKo, 100nF) zwischen VCC und GND wären kein Luxus.

2) Bei mehreren Expandern und dadurch längeren Leitungen hab ich 
beobachtet, daß sich die Expander manchmal wegen Störungen verschlucken 
(waren bei mir 6 Expander). In dem Fall helfen Blocker an den 
Datenleitungen, zB 100pF nach GND.

3) Wenn man die Platinen kaskadiert, ist es praktisch, sie nach dem 
Muster
µC>--<Platine>--<Platine>...
-- Leitung
<  Steckverbinder Eingang
>  Steckverbinder Ausgang

verbinden zu können. Mit nur einem Verbinder wie in Deinem Layout geht 
das so nicht.

4) Für die Ansteuerung per AVR empfehle ich das SPI-Modul, damit geht 
das alles sehr fix und mit wenigen Bytes Programmcode: 50 Byte Code, 
Datendurchsatz von 37 kByte pro Sekunde und MHz µC-Takt. Bei 16 MHz 
µC-Takt also theoretisch bis knapp 600 kByte/s. Da hab ich sogar ne 
mehrkanalige Soft-PWM drüber laufen.

5) Gscheite Bohrungen zur Fixierung?

Autor: Frank Link (franklink)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
vielen Dank für Deine Anregungen:

> 1) Bei mehreren Expandern und Lasten an den Ausgängen zupft das an der
> Versorge, zumal alle ICs gleichzeitig schalten. Abblockkondensatoren
> (KerKo, 100nF) zwischen VCC und GND wären kein Luxus.

Werde ich bei der nächsten Layout-Version vorsehen.

> 2) Bei mehreren Expandern und dadurch längeren Leitungen hab ich
> beobachtet, daß sich die Expander manchmal wegen Störungen verschlucken
> (waren bei mir 6 Expander). In dem Fall helfen Blocker an den
> Datenleitungen, zB 100pF nach GND.

Ich nehme an, Du meinst die Kommunikationsleitungen und nicht die 
Datenleitungen der 74HC595.

> 3) Wenn man die Platinen kaskadiert, ist es praktisch, sie nach dem
> Muster
>
> µC>--<Platine>--<Platine>...
> -- Leitung
> <  Steckverbinder Eingang
>>  Steckverbinder Ausgang
> 
>
> verbinden zu können. Mit nur einem Verbinder wie in Deinem Layout geht
> das so nicht.

Da hast Du glaube ich übersehen, dass der Pfostenstecker zweireihig ist.

> 4) Für die Ansteuerung per AVR empfehle ich das SPI-Modul, damit geht
> das alles sehr fix und mit wenigen Bytes Programmcode: 50 Byte Code,
> Datendurchsatz von 37 kByte pro Sekunde und MHz µC-Takt. Bei 16 MHz
> µC-Takt also theoretisch bis knapp 600 kByte/s. Da hab ich sogar ne
> mehrkanalige Soft-PWM drüber laufen.

SPI wollte und kann ich nicht benutzen, ich verwende die Platinen auch 
für meine Motorpoti-Platine, da kann ich nur SPI über Software machen.
Aber Du kannst gerne die Bibliothek zusätzlich für Hardware-SPI 
implementieren.

> 5) Gscheite Bohrungen zur Fixierung?

Diese Frage habe ich nicht verstanden, jede Platine verfügt über 
Befestigungsbohrungen. Sie sind lediglich nicht in der korrekten Größe 
ausgeführt, da ich die Erfahrung gemacht habe, dass kleine Markierungen 
beim selber Bohren besser sind.

Gruß
Frank

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank Link wrote:
>> 2) Bei mehreren Expandern und dadurch längeren Leitungen hab ich
>> beobachtet, daß sich die Expander manchmal wegen Störungen verschlucken
>> (waren bei mir 6 Expander). In dem Fall helfen Blocker an den
>> Datenleitungen, zB 100pF nach GND.
>
> Ich nehme an, Du meinst die Kommunikationsleitungen und nicht die
> Datenleitungen der 74HC595.

Jepp, da wo die Daten reingehen ;-) also am SPI-Bus

>> 3) Wenn man die Platinen kaskadiert, ist es praktisch, sie nach dem
>> Muster
>>
>> µC>--<Platine>--<Platine>...
>> -- Leitung
>> <  Steckverbinder Eingang
>> >  Steckverbinder Ausgang
>> 
>>
>> verbinden zu können. Mit nur einem Verbinder wie in Deinem Layout geht
>> das so nicht.
>
> Da hast Du glaube ich übersehen, dass der Pfostenstecker zweireihig ist.

Hab ich wohl gesehen, mir ist aber nicht klar, wie ich die Platinen 
anschliessen könnte, ohne selber Verbinder zu basteln, um SER_OUT.1 auf 
SER_IN.2 zu bekommen:
SCK >--------< SCK
RCK >--------< RCK
OE  >--------< OE
SER_IN  >  /-< SER_IN
SER_OUT >-/  < SER_OUT

Einfacher wäre was in der Richtung:
SCK >------< SCK
RCK >------< RCK
OE  >------< OE
SER_OUT >--< SER_IN

>> 4) Für die Ansteuerung per AVR empfehle ich das SPI-Modul...
> SPI wollte und kann ich nicht benutzen

Axo, dache das sollte nicht nur für Dich sein...

> Aber Du kannst gerne die Bibliothek zusätzlich für Hardware-SPI
> implementieren.

schon passiert

Autor: Frank Link (franklink)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>> 3) Wenn man die Platinen kaskadiert, ist es praktisch, sie nach dem
>>> Muster
>>>
>>> µC>--<Platine>--<Platine>...
>>> -- Leitung
>>> <  Steckverbinder Eingang
>>> >  Steckverbinder Ausgang
>>> 
>>>
>>> verbinden zu können. Mit nur einem Verbinder wie in Deinem Layout geht
>>> das so nicht.
>>
>> Da hast Du glaube ich übersehen, dass der Pfostenstecker zweireihig ist.
>
> Hab ich wohl gesehen, mir ist aber nicht klar, wie ich die Platinen
> anschliessen könnte, ohne selber Verbinder zu basteln, um SER_OUT.1 auf
> SER_IN.2 zu bekommen:
>
> SCK >--------< SCK
> RCK >--------< RCK
> OE  >--------< OE
> SER_IN  >  /-< SER_IN
> SER_OUT >-/  < SER_OUT
> 
>
> Einfacher wäre was in der Richtung:
>
> SCK >------< SCK
> RCK >------< RCK
> OE  >------< OE
> SER_OUT >--< SER_IN
> 

Jau, jetzt hat es bei mir klick gemacht, ja, im Augenblick musst Du Dir 
die Kabel leider selber zimmern, mir ist noch keine gute Idee gekommen, 
wie ich ohne weitere zusätzliche Brücken das hinbekommen soll. Mit einem 
doppelseitigen Layout wäre das kein Problem.

>
>>> 4) Für die Ansteuerung per AVR empfehle ich das SPI-Modul...
>> SPI wollte und kann ich nicht benutzen
>
> Axo, dache das sollte nicht nur für Dich sein...

Da habe ich mich missverständlich ausgedrückt, ich würde das ganze nicht 
als Projekt inkl. Beschreibung aufziehen wenn es nicht für die 
Allgemeinheit wäre. Ich habe lediglich Software-SPI zuerst 
implementiert, da ich das für mich auch benötige. Hardware-SPI ist 
später vorgesehen. Außerdem habe ich mich Hardware-SPI noch nicht 
beschäftigt, von daher wird es noch etwas dauern.

Gruß
Frank

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich wollte kurz einwerfen das ein 74HC573N besser geeignet wäre da man 
hier die Daten parallel übergibt. Was wesentlich schneller abläuft. Man 
gibt die Daten also auf einen Port aus und gibt ein kurzes Steuersignal 
an den Latch aus, der das ganze übernehmen soll und falls erwünscht 
gleich ausgibt. So kann man an einen Port beliebig viele parallel 
hängen.

http://www.mikrocontroller.net/attachment/18129/TH...

Ich habe damit mal einen EEPROM-Programmierer auf einem Steckbrett und 
einen kleinen AVR aufgebaut um alle Adressdaten gleichzeitig ans EEPROM 
zu legen und dann mit dem gleichen Port die Daten ans EEPROM zu schicken 
bzw. von dort zu lesen.

Autor: Frank Link (franklink)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,
in Prinzip ja, in diesem konkreten Fall nein. Das Ziel war / ist es, mit 
möglichst wenig Ports aus zu kommen.

Das Projekt heißt allerdings Porterweiterung also spricht ja nichts 
dagegen, auch hierfür eine Platine und eine entsprechende Bibliothek zu 
entwickeln.

http://www.mikrocontroller.net/articles/Porterweiterungen

Gruß
Frank

Autor: Chris M. (shortie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat noch jemand die Zip-Dateien und könnte die evtl hier oder im Artikel 
einstellen?
Die ganzen Link zu derplatinenshop.de laufen ins Leere :-(

Autor: Frank Link (franklink)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Chris,
ich stelle die Sachen heute Abend neu ein. Die Domaine gibt es nicht 
mehr, und ich habe es versäumt das zu ändern.

Sorry und Gruß
Frank

Autor: Frank Link (franklink)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
hier die Zip-Datei mit dem Quellcode der Porterweiterung.

Gruß
Frank

Autor: Frank Link (franklink)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
und hier die Erweiterung für die Ansteuerung eines LCDs über die 
Porterweiterung.

Gruß
Frank

Autor: Robert Ibener (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

anbei meine eine Eindraht-Version eines I/O-Expanders.

Ist allerdings nur für träge externe Geräte verwendbar (z.B. Relais),
vielleicht aber für einige doch interessant.

Grüße
Robert

Autor: Chris M. (shortie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Frank,

vielen herzlichen Dank.

Gruss Chris

Autor: Frank Link (franklink)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,
auf bitten einiger Mitglieder des Forums, habe ich den Artikel 
entsprechend korrigiert und die Downloads alle wieder aktiviert.

Gruß
Frank

Autor: Frank Link (franklink)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
und hier noch das Layout der zweiten Platine.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.