Archiv verlassen und diese Seite im Standarddesign anzeigen : 8031 Erweiterungsplatinen über Busleitung
Import-Script
07.12.2003, 18:50
Hi, habe jetzt seit einiger Zeit einen 8031 µC. Doch so langsam werden mir die Möglichkeiten dieses µC zu eingeschränkt und ich habe überlegt mir eigene Erweiterungsplatinen zu bauen. Mit AD-Wandler, DA-Wandler und eine mit einem LCD und einer kleinen Tastatur. Habe auch schon Schaltungen gefunden um die Adressbereiche zu erweitern. <BR>Doch hier stellt sich für mich die Frage wenn ich die Leitungen A10-A15 für den Zugriff auf meine Platinen verwende wird doch die ganze Zeit, durch den normalen Betrieb bedingt, meine Platine angesprochen. Wie kann ich dies unterbinden oder verhindern?????
Import-Script
07.12.2003, 20:48
hi <BR>hast du im port 1 noch 2 bits frei ? <BR>dann kannst du damit I2C bausteine betreiben. <BR>die wahl ist gross....findest du bei Philips <BR>ed.<img src="http://progshop.com/elektronik/diskussion/clipart/happy.gif" border=0>
Import-Script
08.12.2003, 12:57
Danke für die Antwort. <BR>Nein Port 1 ist schon für die Ergebnisse des AD Wandlers vollständig verbraucht. Beim DA Wandler für die Daten die rausgeschrieben werden sollen und beim LCD bzw. Tastatur brauch ich Port 1 für die Daten der Tastatur bzw. zum Ansprechen des LCD. <BR>
Import-Script
15.12.2003, 22:44
Hi <BR>So wie ich dich verstehe, möchtest du die Peripherie "memory-mapped" ansprechen. <BR>Falls ja brauchst du ebenfalls die Leitung /RD und /WR (auf P3.6 und P3.7). Deine Peripherie wird nur dann angesprochen, wenn RD oder WR auf Low ist: <BR>WR=L, RD=H: Schreibzugriff (von uC auf Peripherie) <BR>WR=H, RD=L: Lesezugriff (von Peripherie zu uC) <BR>Ansteuern tust du die Peripherie gleich wie ein RAM am Adress-/ Datenbus (Assembler: mit MOVX...) <BR> <BR><== Im Bildchen links siehst du ein von mir eintwickeltes uC - Board mit einem AT89S8252 mit einer Porterweiterung für 13 8-Bit Ports, eine RTC, 4kB RAM sowie einem LCD - Port. Ich steuere diese On-Board - Peripherie ebenfalls über den Adress-/Datenbus an. Die obersten 4 Adressbits verwende ich für den Adressdekoder um die Ports, RAM, usw. auszuwählen, die restlichen Adressbits stehen dem RAM, der LCD und der RTC zur Verfügung (die Ports benötigen keine Adressleitungen). <BR> <BR>Gruss <BR>Florian <BR> <BR>
Import-Script
16.12.2003, 19:41
Danke Florian für deinen Beitrag. <BR>Was ich nur nicht ganz verstehe ist, warum ich die Leitungen /RD und /WR brauche. Laut einer Beschreibung von Keil (<a href="http://www.keil.com" target=_top>www.keil.com</a>) benötige ich hier nur einen symplen 2-4 Demultiplexer um die entsprechenden CE Signale zu erzeugen. <BR> <BR>Da ich aber alleine für den AD-Wandler 7 Signale brauche um ihn so anzusteuern dass ich ihn völlig ausnutze, habe ich mir gedacht, dass ich diesen Erweiterungsvorschlag der Firma Keil einfach etwas ausschlachte und mehrere Demulti's benutze um mir die 7 Signale zu erzeugen. So wie ich mir das gedacht habe, steuere ich einfach den ADC an, der erledigt die Wandlung und ich lese anschließend das fertige Ergebnis am Port 1 ein.
Import-Script
16.12.2003, 19:43
Sorry habe ganz vergessen reinzuschreiben, dass ich für das erzeugen der erforderlichen CE Signale natürlich die Leitungen A10-A15 verwende. Brauche ja schließlich mehrere Demulti's. <BR> <BR>Gruß tom
Import-Script
28.12.2003, 23:27
Über RXD/TXD (serieller Port, P3.0 u. 3.1)könntest du dir auch Porterweiterungen aufbauen, Schieberegister als Port I/O, soviel du magst. Modus0 einstellen (Mov SCON,#0) Mit Mov sbuf,a wird automatisch das Byte aus dem Akku geschoben und mit setb 9c im SFR 98 (Serial Port Control Register SCON) startest Du das Einlesen eines Bytes aus einem Schieberegister, anschließend mov s,sbuf(Bit 98 wird nach vollständiger Übertragung gesetzt und muss dann gelöscht werden. RXD ist Daten, TXD Takt. Einziger Nachteil, es dauert je Byte Aussenden bzw Einlesen so seine Zeit. <BR>Gr. Holger
Import-Script
30.12.2003, 15:13
Hi, das mit der seriellen hab ich mir auch schon überlegt, gefällt mir aber nicht so gut. Deshalb bevorzuge ich die Lösung von Keil mit den LS139er Demultiplexern die ich einfach an die Leitungen A15-A11 hänge und mir so die erforderlichen CE Signale erzeuge. Das einzige Problem das ich jetzt noch habe ist folgendes: <BR>Da die Leigungen A15-A11 zum Systembus gehören wir doch nach meinem Wissenstand der Wert dieser ständig verändert und so meine Hardware (Tochterplatinen) unkontrolliert angesprochen. <BR>Wie könnte ich das unterbinden ohne dass ich den freien Port 1 verwende???? <BR> <BR>Thx, tom
Powered by vBulletin® Version 4.1.12 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.