www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programmierung C515C


Autor: Maxi M. (keksii)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich muss für die Arbeit einen C515C programmieren, hab aber leider davor 
noch nie damit zu tun gehabt.

Mein Problem ist, der C515C soll 4 H-Brücken initialisieren und DIS1 auf 
low und EN1 auf high setzten.
Klingt für euch vielleicht nicht schwer, aber ich schaffs einfach nicht.
Unten steht mein Code (bitte nicht lachen). Könnt ihr mir weiterhelfen, 
was mach ich falsch?

#include <stdio.h>
#include <reg515c.h>
#include <c5x5cext.h>


void ssi_init (void);      // Initialisierung SSI
void zeit (void);        // Wartefunktion
void TLE7209R_init (char EN1, char DIS1);  // Initialisierung H-Brücken


sbit CS1  = P4^0;          // bitdefenition
sbit SI   = P4^2;
sbit SO   = P4^3;
sbit CS2  = P4^4;
sbit CS3  = P4^5;
sbit CS4  = P1^0;
sbit CS5  = P1^1;
sbit CS6  = P5^0;
sbit CS7  = P5^1;
sbit DMS1 = P5^2;
sbit DMS2 = P5^3;
sbit DMS3 = P5^4;
sbit DMS4 = P5^5;
sbit DIS1 = P5^6;
sbit EN1  = P5^7;


void main (void)
{

while (1)

{

SSCCON &= 0x00;    // deaktivierung ssi und alle bits auf 0
SYSCON |= 0x07;   // setze das 6te bit für bidirectional port structur
IP1 |= 0x08;  // setze 7te bit um mit DIR5 in output modus zu gehen
DIR5 &= 0x00;  // output modus  Port5

ssi_init ();

SSCCON |= 0x08;  // aktivierung ssi

DMS1 = 0; DMS2 = 0; DMS3 = 0; DMS4 = 0; EN1= 1; DIS1= 0;

TLE7209R_init (EN1, DIS1);


}
}


void ssi_init ()
{


  SSCCON |= 0x06;
  SSCCON |= 0x02;
  SSCCON |= 0x03;
  SSCCON = 0x40;
  STB = 0;
  SRB = 0;
  SCF = 0;


}

void TLE7209R_init (char EN1, char DIS1)
{
  CS3 = 0; CS4 = 0; CS5 = 0; CS6 = 0;

  zeit (); zeit ();

  SCF &= 0xFE;
  STB = EN1;

while (!(SCF |= 0x01));

  SCF &= 0xFE;
  STB = DIS1;

while (!(SCF |= 0x01));

  zeit ();
  zeit ();


  CS3 = 1; CS4 = 1; CS5 = 1; CS6 = 1;


  zeit ();
  zeit ();

}

void zeit ()
{
  unsigned int x;
  for(x=0;x<=30000;x++);
}

Autor: Bensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dsa Hauptproblem ist, das Teil ist schon lange nicht mehr lieferbar. Wer 
dafür noch kommerzielle Programme schreibt, dem ist wohl kaum zu 
helfen....

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unüblich eine Initialisierung in die Endlosschleife zu setzen.

MW

Autor: Robert Teufel (robertteufel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Bensch,
kein Beitrag ist definitiv mehr wert als ein falscher. C515C gibts nach 
wie vor. Ob ich den nehmen wuerde ist ne andere Frage aber es gibt oft 
Sachzwaenge.
Hab gerade mal auf der Infineon Seite nachgesehen, da gabs frueher 
Application Notes dazu aber jetzt ist das alles recht 
gewoehnungsbeduerftig arrangiert. Konnte nichts finden, sorry

Robert

Autor: Bensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sprechen wir über den SAB-C515 ? Der wird seit 2 Jahren nicht mehr 
produziert- die ganze Familie ist tot.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Das interne SRAM wird wohl nicht freigegeben. Evtl. brauchst du das ja.
SYSCON&=0xFC aktiviert des interne SRAM

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bensch wrote:
> Sprechen wir über den SAB-C515 ? Der wird seit 2 Jahren nicht mehr
> produziert- die ganze Familie ist tot.

Bei Infinoen steht aber noch "in production"

http://www.infineon.com/cms/de/product/channel.htm...


Peter

Autor: Bensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wundert mich, weil die mir damals eine "last order" Mitteilung geschickt 
haben. Möglicherweise hat ein Grosskunde interveniert, sodass sie doch 
noch EINE Version produzieren in QFP und 10MHz.

Für mich war's allerdings eine gute Gelegenheit, dem Kunden ein 
Neudesign in SMD mit Mega32 zu empfehlen, heute ist er froh drüber.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Maxi

>SSCCON &= 0x00;    // deaktivierung ssi und alle bits auf 0
>SYSCON |= 0x07;   // setze das 6te bit für bidirectional port structur
>IP1 |= 0x08;  // setze 7te bit um mit DIR5 in output modus zu gehen
>DIR5 &= 0x00;  // output modus  Port5

Hier könnte das Problem liegen. DIR5 liegt im Mapped-SFR Block, IP1 im 
Standard-SFR Bereich. Schau Dir mal das RMAP Bit in SYSCON genauer an. 
So wie jetzt erreichst Du DIR5 nicht, musst erst noch RMAP setzen.

Und die die Initialisierung im MAIN darf nicht in die While-Schleife, 
wie schon geschrieben wurde.

Autor: Maxi M. (keksii)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke erstmal an alle.
Ja meine Idee is der C515C auch nicht leider is der schon verbaut und 
wird nicht gewechselt werden.

Ich werd mal eure Tips befolgen und mich morgen melden. War schon mal 
sehr hilfreich.

Wie gesagt ich hab so ein Ding noch nie Programmiert, somit wusste ich 
dass mit der Endlosschleife nicht, danke nochmal.

Schönen Tag euch noch, maxi

Autor: Robert Teufel (robertteufel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C515C und C515, 80C5xx waren nicht pin-kompatibel. Der C515C ist auch in 
einer anderen Technologie gefertigt als die anderen 80C5xx und C515 war. 
Die ganzen abgekuendigten waren im 68-pin Gehaeuse, den C515C gab es 
nicht in diesem Gehaeuse, er ist in einem 80-pin QFP und der einzige 
dieser Reihe mit CAN.
Also schlicht und ergreifend dieser Baustein ist ein anderer als die 
abgekuendigten und das mit dem Grosskunden ist wahrscheinlich auch 
korrekt.

Robert

Autor: Maxi M. (keksii)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo zusammen,

leider funktioniert es immer noch nicht, es sind sowohl EN1 als auch 
DIS1 auf high und ich bekomm DIS1 nicht auf low.
Habt ihr noch ein paar tips für mich?

Vielen Dnak, maxi

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.