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++); }
Dsa Hauptproblem ist, das Teil ist schon lange nicht mehr lieferbar. Wer dafür noch kommerzielle Programme schreibt, dem ist wohl kaum zu helfen....
@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
Sprechen wir über den SAB-C515 ? Der wird seit 2 Jahren nicht mehr produziert- die ganze Familie ist tot.
Hi! Das interne SRAM wird wohl nicht freigegeben. Evtl. brauchst du das ja. SYSCON&=0xFC aktiviert des interne SRAM
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.html?channel=ff80808112ab681d0112ab6b813c0863 Peter
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.
@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.
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.