Forum: Mikrocontroller und Digitale Elektronik synchr. 2-Drat schnittstelle


von Claus S. (mks-70)


Lesenswert?

Hallo,
ich wollte eine FIP Anzeige durch ein LCD ersetzen. Habe nun meine 
Schaltung an das STK500 angesteckt und nur ein Teilerfolg erziehlt. 
Meine Schaltung sollte die ser. 8-Bit Parallel wandeln, da ich so einen 
modus nicht für den Usart im 8515 gefunden habe. Nach dem Teilerfolg 
habe ich das serielle Signal noch mals mit dem LA angesehen und 
festgestellt, das weitere pulse von 1-3 µs (Pulse habe keine Bedeutung 
hinsichtlich stop, parity usw.) meine Schaltung irretieren. Somit ist 
meine Schaltung nicht Brauchbar. Da serielle Data und Clk werden von 
einem anderen mc zur anzeige gesendet. Da aber der mc und der controller 
der Anzeige nur mit 600kHz getaktet werden, gehe ich davon aus, das 
dieser die Pulse gar nicht gemerkt hat.
Ich bitte euch nun mir mit etwas Code zu helfen, da ich noch Anfänger 
bin.
Signal:
1. Sequenz ca. 120µs da werden 8 Bit übertragen,
2. Sequenz ca. 220µs pause
3. Sequenz ca. 120µs ebenfalls 8 Bit
4. Sequenz ca. 220µs Pause
5. usw.
Die Zeit swischen 2 clk ist größer gleich 7µs
Der Clk Puls ist min. 5µs wenn kleiner = Störung Ich habe dies 
beobachtet, bei einem clk der 12µs lang war aber mitten drinne zwei 
kleine 1µs unterbrechungen aufwies, die meine Schaltung leider als 
zusätzliche clk sieht. Nach dem letzten Bit zwingend eine Pause da auch 
hier mist kommt.
Ich denke man kann die mit interupt machen, wo der clock anliegt, und 
einen anderen PIN an Port B oder auch D wo man das Bit zu diesen 
Zeitpunkt erfasst. Dies muss das bis 8 in ein reg rein und bis 8 rotiert 
werden, danach uss der Wert irgendwo abgelegt werden.
Wie gesagt, ich bin Anfänger und brauche euere Hilfe, ich abe noch 8 
Tage Urlaub und würde mein Gerät gerne wieder ablesen können..... Ich 
spendiere auch gerne ein six pack :)
ps. Die 8 Bit Daten sind abwechselnd Zeichenpositiion und Zeichenwert 
(ascii)

von Claus S. (mks-70)


Lesenswert?

habe hier mal meinen geistigen Bluterguss angehängt. loop220_1 soll ein 
delay von 220µs machen. 1. Versuch, passiert nichts.
noch zu rerklärung, mein LCD bekommt seine Zeichen, indem permanent ein 
speicherbereich ausgelesen wird. dieser Programmteil soll nicht anderes 
machen, indem es 8-bit enliest, überprüft ob bit 7 gesetzt ist (pos data 
= Speicheradresse) wenn nicht dann ist es das ASCII Zeichen, was an die 
POS geschrieben werden soll.


int0_1:
      ldi temp1, 0x00
      in temp1, portb
      andi temp1, 0x01
      or data, temp1
      lsl data
      brcs achtbit
      rcall delay4us
      reti

achtbit:
      cli
      sbrs data, 7
      rcall datenda
      mov pos, data
      ldi temp1, 0x01
      sts $0170, temp1
      ldi data, 0x02
      ldi temp1, 0x34
      rcall loop220_1
      sei
      reti
datenda:
      mov yl, pos
      st y, data
      ldi data, 0x02
      ldi temp1, 0x34
      rcall loop220_1
      sei
      ret

von Claus S. (mks-70)


Lesenswert?

Hallo, einer da der mir helfen kann??????? vielleicht sogar aus raum ac

von Claus S. (mks-70)


Lesenswert?

Ich verzweifele, geht nicht zu datenda, ist die Verzweigung falsch?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dein "achtbit" scheint mir ein Interrupthandler zu sein. Ist es 
sinnvoll, den mit brcs anzuspringen?

von Claus S. (mks-70)


Lesenswert?

Ich weis nicht ob es sinnvoll ist, da fehlt mir die erfahrung, diese 
verzweigung scheint zu funktionieren. die achtbt werden erst beim 8. 
interrupt angesprungen (theoretisch) nach dem data solange nach lings 
geshihtet wird bis das carry flag gesetzt wird.habe vergessen, initial 
is data 0b00000010. ich habe bei delay4us ein zeichen auf dem display 
ausgegeben und bei achtbit. diese kommen auch, aber bei datenda, kommt 
nichts.

von Claus S. (mks-70)


Lesenswert?

passier nix, hat jemand eine adndere Idee???

von spess53 (Gast)


Lesenswert?

Hi

Wahrscheinlich kommt niemand so richtig mit deiner 
Schnittstellen-beschreibung klar (ich auch nicht). Kannst du mal dein LA 
Ergebnisse posten.

>da ich so einen modus nicht für den Usart im 8515 gefunden habe.

Passt irgendwie mehr zu SPI.

MfG Spess

von Peter D. (peda)


Lesenswert?

FIP, das waren doch diese Alkohol-Kekse.

Wenn Du Hilfe willst, dann solltest Du schon irgendwelche Links zu den 
Sachen posten, die Du meinst.
Im Fach Hellsehen hatte ich immer ne 6.


Peter

von Claus S. (mks-70)


Angehängte Dateien:

Lesenswert?

Hi,
die datei wurde mit dem la Zeroplus aufgezeichnet, die software dazu 
gibt es als demo zum download, da kann man dann diese datei öffnen . LA 
ist ein 16032.
SPI dachte ich auch zuerst, aber ich kenne mich da nicht so aus, ich 
weis halt nur, das der sender über zwei normale ports (ohne 
sonderfunktion) mit einem usart im 4 Bit MC 7538A redet.
Die probleme sind halt die pulse (einzelne) zwischen durch.

danke

claus

von Claus S. (mks-70)


Lesenswert?

Hallo,
FIP sind ne art VFD (Vacuum Fluressenz Display) ohne Controller. Dieses 
FIP was ich ersetzen muss hat 32 Zeichen a 14 Seqmente. Der Controller, 
der diese Anzeige steuert ist defekt.

Ich habe einen ausschnitt aus meinem Code hier eingestellt. kann auch 
gerne den rest posten, ist nix geheimes, und sollte dieses projekt 
funktionieren, freuen sich sicher auch andere.

gruß

claus

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.