PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pinbelegung LCD-Stecker RN-Definitionen



mr08b002
24.07.2016, 10:21
Hallo,

ich versuche mich bei der Pinbelegung von Steckverbindern auf eigenen Schaltungen an die RN-Definitionen zu halten. Beim LCD-Stecker (http://rn-wissen.de/wiki/index.php?title=RN-Definitionen#LCD_Stecker) bin ich dazu geneigt die Pinbelegung zu ändern. Die Tatsache, dass Pin1 mit DB7 verbunden werden soll macht für mich keinen Sinn, da man dann jedes Nibble vor dem Senden erst "zurecht drehen" muss. Kann mir bitte jemand verdeutlichen, welchen Vorteil die Pinbelegung aus den RN-Definitionen hat?

lg
michael

HeXPloreR
24.07.2016, 11:03
Hallo michael,

welchen Vorteil es haben soll steht z.B. im ersten und zweiten Satz des Absatzes. Zusätzlich noch der Vorteil des Datenportsteckers.

Das dich anscheinend jetzt tatsächlich "nur" Pin1 mit DB7 stört wundert mich ein wenig. Wenn man einen anderen Pin nutzt - ändert sich dann das Problem des Nibbels für dich?

Lösungsansatz:
Die Definition dient dazu um Einheitlich aufzubauen - also um z.B. auch hier im Forum darauf verweisen zu können falls Fehler an der eigenen Schaltung auftreten. Vorteil ist hier auch die "entfernte" Fehlersuche.
Wenn man es anders machen möchte, dann kann man das natürlich tun,
allerdings sollte man bei einer (Fehler-)Beschreibung dann nicht vergessen zu erwähnen das man da etwas anders gemacht hat als per Definition verabredet.
Und sein Programm natürlich dementsprechend angepasst haben.
Da man sowas aber als Helfender dann auch mal schnell übersieht oder sich nicht so gut in Projekte andere eindenken kann, erschwert es eine "entfernte" Fehlersuche.

Viele Grüße
Jörg

oberallgeier
24.07.2016, 12:10
Hallo michael,

willkommen im Forum.


.. Beim LCD-Stecker .. bin ich dazu geneigt die Pinbelegung zu ändern .. welchen Vorteil die Pinbelegung aus den RN-Definitionen hat ..Den wesentlichen Vorteil sehe ich in der Standardisierung. Dabei ist es - für mich - naheliegend, einen kompletten Port an die 2x5- Wannenstecker-Pinne 1 bis 8 anzuschließen, dann hat man zwei übrig, für die ein Vcc+GND-Anschluss ebenfalls nahe liegt. An fast alle bei mir liegenden Platinen - selbst gebaute, einige von RN, nano-Clone, babyorangutan - kann ich dasselbe LCD anschließen, wobei es egal ist ob die zwei- oder vierzeilig bzw. mit acht, sechzehn oder vierundzwanzig Buchstaben daherkommen, die Hardwarekonfiguration ist dieselbe. Ausnahme bilden da im Wesentlichen die tinys - die mitunter zu wenig Ausgänge frei haben. Da bei mir der Datentransfer immer nibbelweise erfolgt, habe ich so eine maximale Austauschbarkeit.

Selbst ein weiterer, von mir gebauter, Servotester auf Grundlage eines nano-Clones kann meine LCD´s bedienen - da muss man halt bei der Pinauswahl ein bisschen aufpassen. Aber das ist bei fast jeder (eigenen oder) öffentlichen LCD-Bibliothek anpassbar. Beispiele aus meinen Quellen für 328-TQFP (nano) und 1284 DIL/TQFP


// - - - - - - - - - - - - - - -
// Initialisierung der BOARD!!Anschlüsse am arduino-nano mit mega328-TQFP:
// /RESET, PC6 1 A E 28 PC5, LCD_ENBL
// UART, RxD, PD0 2 EU E 27 PC4, LCD_RS_line
// UART, TxD, PD1___3 EU E 26___PC3, LCD_dat7
// JP5-INT0, PD2 4 EU E 25 PC2, LCD_dat6
// JP6-INT1, PD3 5 EU A 24 PC1, LCD_dat5
// JP5-T0, PD4___6 EU E 23___PC0, LCD_dat4
// +++ VCC 7 + - 22 GND ---
// --- GND 8 - + 21 AREF ref
// XTAL1 PB6___9 A 20___AVCC
// XTAL2 PB7 10 A A 19 PB5, rtLED
// PD5 11 EU A 18 PB4, MISO
// PD6__12 A A 17___PB3, MOSI
// PD7 13 A A 16 PB2
// WANNENstecker 7 ?? PB0 14 A A 15 PB1
// - - - - - - - - - - - - - - -

// ================================================== =
// ####>>>> Initialisierung der Anschlüsse für R5M auf mega1284: <<<<####
// ( PB0 1 A A 40 PA0 (CN 11-1 -Audi-Busy)
// CN_12 ( PB1 2 A A 39 PA1 (CN 11-3 -Audi-Clock)
// PORTB ( PB2 3 A A 38 PA2 (CN 11-5 -Audi-Data)
// (CIR od. / PB3 4 A? E 37 PA3 (CN 11-4 -Audi)
// LCD ... \ PB4 5 A A 36 PA4, Servo10
// siehe ( MOSI, PB5 6 A A 35 PA5, Servo9
// unten ( MISO, PB6 7 A A 34 PA6, Servo8
// TasteC=3 ( SCK, PB7 8 EU A 33 PA7, Servo7
// Taste /RES, /RESET 9 32 AREF ref Vcc, aktuell
// Vcc 10 31 GND
// GND 11 30 AVcc
// XTAL2 12 A 29 PC7, Servo6
// XTAL1 13 A 28 PC6, Servo5
// RXD0, PD0 14 EU A 27 PC5, Servo4
// TXD0, PD1 15 EU A 26 PC4, Servo3
// RXD1, PD2 16 EU A 25 PC3, Servo2
// TXD1, PD3 17 A A 24 PC2, Servo1
// L1g PD4 18 A E 23 PC1, SDA
// L1r PD5 19 A E 22 PC0, SCL
// TasteA=1, PD6 20 EU EU 21 PD7, TasteB=2, PCINT31, (Sound)
// - - - - - - - - - - - - - - -
// ####>>>> PB3 ist evtl. Source für IR-DME-LED !! = CIR-LED
// - - - - - - - - - - - - - - -
// ####>>>> Initialisierung/Anschlüsse von PORT B für LCD DEM 16x2
// data bit 4 PB0 0 A WS Pin1 |
// data bit 5 PB1 1 A Pin2 | -- Der 10-polige Wannenstecker
// data bit 6 PB2 2 A Pin3 | ist an die Belegung wie beim
// data bit 7 SCK, PB3 3 A Pin4 | Transistortester + RNControl
// RS line PB4 RS Pin5 | angepasst, es kommen noch
// ENABLE line MOSI, PB5 EN1 Pin6 | Pin 9 GND und
// R/W (offen) MISO, PB6 R/W Pin7 | Pin 10 Vcc dazu
// NC (TasteC) SCK, PB7 NC Pin8 |___________________________
// GND Pin9
// Vcc Pn10 | Anmerkg: ENABLE line !
// - - - - - - - - - - - - - - -

Eine "gegenläufige" oder sonstwie nicht-monotone Portpin-Belegung sollte aber wohl kein Problem darstellen.

mr08b002
24.07.2016, 13:41
Vielen Dank für eure Antworten.

Welche Vorteile Die Vorteile der standardisierte Stecker hat war mir schon klar. Ich habe mich nur darüber gewundert weshalb der Standard so festgelegt wurde. Aus meiner persönlichen Sicht hätte ich eine andere Zuordnung der Datenpins gewählt. DB4 -> Pin1, DB5 -> Pin2, DB6 -> Pin3 und DB7 -> Pin4. Denn bei der gegenwärtigen Zuordnung muss das Nibble vor dem Senden in der Software noch einmal umgedreht werden bzw. die Leitungen zwischen Mikrocontroller und Display überkreuzt werden.

Da derartigen Standards häufig eine rege Diskussion vorausgeht, dachte ich es gibt einen guten Grund dafür die Pinbelegung so zu wählen. Für mich wäre die oben genannte Pinbelegung naheliegender. Daher dachte ich die Pinbelegung nach RN-Definition muss gegenüber der (für mich) naheliegenden Methode einen Vorteil haben.

oberallgeier
24.07.2016, 15:22
.. hätte ich eine andere Zuordnung der Datenpins gewählt. DB4 -> Pin1, DB5 -> Pin2, DB6 -> Pin3 und DB7 -> Pin4 . . .Das ist auch genau die Zuordnung, die ich oben (siehe Codefenster, unnten ".. Anschlüsse von PORT B für LCD ..") beschrieben habe.

witkatz
24.07.2016, 19:38
Das ist auch genau die Zuordnung, die ich oben (siehe Codefenster, unnten ".. Anschlüsse von PORT B für LCD ..") beschrieben habe.
Der TO fragt nach der Zuordnung im RN-Standard, die ist anders als Deine Belegung. Im 10-poligen LCD-Stecker nach RN-Standard wurden die Datenbits gegenläufig definiert und das hatte sicherlich einen Grund. Wahrscheinlich gibt es (oder gab es) irgendein Demoboard mit ebendieser Belegung oder so.

oberallgeier
24.07.2016, 22:37
.. Die Tatsache, dass Pin1 mit DB7 verbunden werden soll macht für mich keinen Sinn .. welchen Vorteil die Pinbelegung aus den RN-Definitionen hat? ..Hallo michael,
tief drin in "ur"alten (Labor)Notizen gibts was zu meinen ersten Schritten mit LCDs. Die hab ich eben mal rausgeholt. Nach diesen Notizen hatte ich mich dabei an die Gegebenheiten gehalten: die Pinbelegung der Pfostenstecker geht zurück aufs STK500, Atmel, etwa 2003. Da hat der übliche 2x5-Pfostenstecker z.B. einen kompletten Port plus die Stromversorgung (und das www vergisst nix (http://www.atmel.com/images/doc1925.pdf)! z.B. Seite 3-2 und 3-3 etc). Das ist ja aber nur die hardwareseitige Antwort - die Dich ja weniger interessiert.

Softwareseitig KÖNNTE es Sinn machen die Datenbits "gegenläufig" zu belegen, also das höchstwertige Bit an die niedrigwertigste Kabelader. Das hatte ich beim ersten Mal in Anlehnung an das RN-Wiki ebenfalls gemacht, weil in diesem Bild (http://rn-wissen.de/wiki/index.php?title=Datei:Lcdmodul_2.jpg) (RN-Wiki, 2006) das 16-polige Flachbandkabel am LCD mit der Ader 1 beginnend (rechts) die Datenbits eben "gegenläufig" ins Kabel bringt. Die restlichen Adern bis hin zur Versorgung GND/Vcc sind dann simpel - siehe obiges Bild - eins neben dem andern am LCD anzulöten. ES gibt also ein schönes Nebeneinander aller Adern beim Flachbandkabel ! M.E. der einzige Grund für Dein inverses Nummerierungsproblem.

Damals, 2008?, hatte ich mich für die sparsame Variante mit 10-poligem Kabel, passend zum 2x10-Wannenstecker entschieden. Dabei hatte ich ohne besonderen Grund die vier ersten Adern so montiert, dass sie die Datenbits 4 .. 7 (also aufsteigende Nummerung) in aufsteigender Nummerung der Kabeladern belegten. Das kam mir logischer vor. Allerdings muss man dieses Viererpack bei der Montage vom Restkabel getrennt und um 180° verdreht anlöten. Möglicherweise hatten die frühen Autoren (Frank, Darwin) zum LCD-Wiki die "glatte" Lösung bevorzugt bei der eben Adernummer und Pfostennummer entgegen laufen. Ja ja, man könne die Adern auch von der andern Seite zählen und mit Vcc und GND anfangen . . das wäre beim 2x10-Stecker nicht mehr sinnig und ausserdem muss man dann spätestens diese beiden Adern um 180° gegen den Rest drehen . . .

Etwas lange Beschreibung, ich hoffe sie ist verständlich-