mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik HILFE: Infineon C515C und UART SCC2692


Autor: noch_ein_gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum.

Leider hat die SUCHEN- Fkt. und mrs. google mir nicht weitergeholfen. 
Deshalb baue ich jetzt auf euch, da hier schon viel nützliches zufinden 
war.

Ich betreibe einen C515C und es ist soweit alles klar, I/O Pins lassen 
sich beschreiben und auch lesen...

Jetzt muss ich einen SCC2692 in Betrieb nehmen und bin noch am 
verzweifeln mit /RD und /WR. Beide Signalleitungen sind mit dem Chip 
verbunden, allerdings kann ich kein einziges Register lesen. Deshalb 
weiß ich nicht, ob das Schreiben der Register funktioniert.

Mit dem Oszi gemessen habe ich bereits Adress-, Datenbus, sowie /CS und 
/RD, auch /WR. Leider wird das /RD ni aktiviert. Jetzt habe ich im 
Internet was gefunden, dass man irgendwie das /PSEN noch mit verwenden 
muss.

Falls es weiterhilft, das Board ist auf einem miniMODUL515C von Phytec 
verbaut.

Vielen Dank für Eure Hilfe

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
/PSEN ist nur dafuer da den Programmspeicher zu enablen.

Was hast du den alles verbunden ?

Prozessor            Duart
/RD ------------------ /RD
/WR ------------------ /WR
A0..3 ---------------- A0..3


So was du jetzt noch beschalten musst ist das /CEN Signal.
Hast du noch externens RAM auf deiner Platine ?
Wenn Ja must du durch eine Dekodierlogik dafuer sorgen das entweder das 
RAM eingeschaltet wird oder der Duart.

Das RAM wird normalerweise mit CS = 0 am RAM eingeschaltet dazu die 
invertierte Funktion bilden und das  an /CEN vom  Duart anschliessen.
Und auch den Reset nicht vergessen.

Ansonsten muesste ich einen Schaltplan sehen um genaueres zu sagen.

Gruss Helmi

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noch_ein_gast wrote:
> Leider wird das /RD ni aktiviert.

/RD wird nur beim Befehl "MOVX A,@DPTR" benutzt.


Peter

Autor: noch_ein_gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

gibt es andere Möglichkeiten auf den Chip zuzugreifen? Habe irgendwo 
gelesen, dass man /RD mit /PSEN ver-x-odern muss... anderswo sollte man 
es ver-n-ANDen.

vielen dank für die hilfe

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>gibt es andere Möglichkeiten auf den Chip zuzugreifen? Habe irgendwo
>gelesen, dass man /RD mit /PSEN ver-x-odern muss... anderswo sollte man
>es ver-n-ANDen.

Das gilt nur fuer externe RAMs.

So kann man aus der Harvard Architektur eine von Neumann Architektur 
machen. Also man kann dann im RAM Programme ausfuehren was sonst nicht 
geht. Fuer IO-Bausteine brauchst du das nicht zu machen.

Ueberigens wenn du einen Keil C Compiler hast geht der exterene Zugriff 
mit

XBYTE[portaddr] = Wert   zum setzen
Wert = XBYTE[portaddr]   zum lesen


Gruss Helmi

Autor: noch_ein_gast (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also,
#
@helmi.

hier die beschaltung des UART. Das Chipselect-Signal wird schon 
vorkodiert geliefert, liegt auch an (mit Oszi gemessen). Allerdings 
fehlt mir bei aktiviertem Chip-Select der /RD - Strobe.

Autor: noch_ein_gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Helmi?

also mit XBYTE[ADDR] zugreifen habe ich probiert...

geht mit keil nicht zu compilieren... trotzdem danke

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>geht mit keil nicht zu compilieren... trotzdem danke

Wie so geht das nicht zu compilieren ?

Hast du auch die absacc.h  eingebunden ?

Schaltplan schein soweit OK zu sein.

Autor: noch_ein_gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmals...


also, ging jetzt zu kompilieren... Danke für den Tipp...
Allerdings gab es immer noch keinen read-strobe /RD... Irgendwie greift 
der auf was anderes zu... mit hilfe des mon51 kann ich den 
entsprechenden registerwert ja auch zurücklesen...

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also mit

#include <absacc.h>
void main(void)
{
   char ch;
   while(1)
   {
     ch = XBYTE[ADDR];
   }
}

Hast du keine Pulse am RD pin vom Prozessor ?

Autor: noch_ein_gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@helmi...

also ich habe dein programm übersetzt und messe am /RD Pin konstante 5V, 
allerdings habe ich jetzt am /PSEN Chip reichlich aktion...

Autor: noch_ein_gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@helmi


Also habe jetzt auch den read_strobe... soweit erstmal danke...

warum es jetzt getht? keine ahnung...

Ich habe alleridngs noch weitere Fragen, ob schon mal jemand mit dem 
UART gearbeitet hat...
Ich bekooe den baudrate generator irgendwie nicht zum laufen...

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> also ich habe dein programm übersetzt und messe am /RD Pin konstante 5V,
> allerdings habe ich jetzt am /PSEN Chip reichlich aktion...
Was sagt der ASM-Output? Wird wirklich mit MOVX a,@dptr gearbeitet?
Was macht das CS1-Signal? Kannst du da was sehen?

PSEN wird massig arbeiten, wenn das ein Controller ohne internes Flash 
ist.

Noch etwas, hast du das Schaltplan-Symbol selbst gemacht?

Ralf

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich habe alleridngs noch weitere Fragen, ob schon mal jemand mit dem
> UART gearbeitet hat... Ich bekooe den baudrate generator irgendwie nicht
> zum laufen...
Zeig deinen Code, und wir zeigen dir, wo der Fehler ist :)

Ralf

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noch_ein_gast wrote:
> Ich habe alleridngs noch weitere Fragen, ob schon mal jemand mit dem
> UART gearbeitet hat...

Also ich nicht.
Wenn ich mal ne 2.UART brauche, nehme ich entweder nen MC mit 2 UARTs 
oder mache eine in Software.
Mit der Capture/Compare-Unit kann man sehr gut ne SW-UART programmieren.


Hab grad mal bei Farnell geguckt, der SCC2692 ist ja extrem teuer und 
nur als DIP verfügbar.


Peter

Autor: noch_ein_gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank an alle.

Ich konnte das Problem lösen...

Es lag daran, dass der Controller ständig auf den internen XRAM 
zugegriffen hat und nicht die Daten auf dem UART gelesen bzw. 
geschrieben hat.

BTW, danach musste man noch das MonitorPRG entfernen und das eigene PRG 
direkt flashen.

Trotzdem danke für die zahlreichen Tipps.

MfG

noch_ein_gast

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.