Hallo, ich mache zur Zeit mein Fachpraktikum (Student E-Technik/Nachrichtentechnik). Ein Projekt von mir benötigt nun einen µC der ein serielles 16bit-SPI-Signal aufnehmen soll. Ich bin ein absoluter Anfänger was Mikrocontroller angeht und belese mich hier den ganzen Tag. Der µC sollte zwei SPI-Eingänge und einen USART-Ausgang haben. Nun habe ich mir den Infineon XC164D-8F20F (deutsche Firma muss/soll es sein) ausgesucht und wollte mal fragen ob das damit funktioniert, wovon ich ausgehe. Da ich hier im Forum aber nie etwas über einen Infineon-µC gelesen habe, frage ich mich, ob diese irgendwelche Nachteile haben. Zusammenfassend frage ich nun zwei Sachen: 1. Gibt es eine deutsche gute Alternative mit SPI und UART oder gar eine Bestätigung meiner Wahl? 2. Haben Infineon-µCs generell Nachteile? Ich hoffe, ihr könnt mir ein paar Anregungen geben oder mir was Neues erzählen was ich in meine Auswahlkriterien aufnehmen sollte. Besten Dank im Voraus, Daniel
Nachtrag: Da ich wohl keinen CAN-Bus brauche, steht nun die Wahl der XC164N-Serie zur Wahl. Das Thema ist schon echt schwer...:(
Jo da hast du recht Daniel...da kann ich dir auch leider nicht weiterhelfen. Sorry...bin auf dem Gebiet auch ein Anfänger! Wollte dir nur zeigen, daß du nich alleine bist^^
Danke für dein Mitgefühl...dann lass uns mal gemeinsam hoffen, dass uns geholfen wird. :)
Bitte warum soll das eine deutsche Firma sein, das ist das Killerkriterium Nr.1!!!
Ja sorry aber das ist ne interne Sache. Da kann ich leider keine Aussage zu machen. Jedenfalls muss dieses Killerkriterium leider erfüllt sein. Übrigens, wieso ist das ein Killerkriterium? Ich habe bisher auf anderen Gebieten (Halbleiter/Sensorik) sehr gute Erfahrungen mit deutschen Firmen gemacht. Gruß, Daniel
Naja wenn ich spontan gefragt würde, welche Microcontrollerhersteller es gibt, würden mir fast nur ausländische einfallen (die übrigens auch allesamt gut sind). Ich bin der Meinung, dass man gerade in der Elektrontechnik global denken muss, aber naja, ist ja auch egal, das gehört jetzt glaub ich zu Off Topic. Was ich nur sagen wollte, dass du sehr viel flexibler bist, mehr Auswahl hast und evtl. besseren Support, weil ausländische Microcontroller u.U. weiter verbreitet sind (z.B. Atmel).
Hallo Daniel, der XC164 ist relativ neu. An Deiner Stelle würde ich den "bewährten" C167 bzw. C164 (Neu XC167, C164) nehmen. Dieser 16Bit Mikrocontroller war lange Zeit Industriestandard in D. Mittlerweile bekommt man Evaluation-Boards und Controller günstig bei ebay. Problem bei der ganzen Sache ist, dass es für Hobby-Bastler keinen freien C-Compiler gibt. Wenn es ganz einfach sein soll, dann nehme halt die C-Controll Unit 2 von Conrad ( = C164).
Hi Zusammen ich hab gerade auch mit dem C164 zu tun. Der iat aber in einem C-Control 2 verpackt. Wolle mein Rpjekt es mit dem Contrad OS machen. Kamm aber an die Grenzen des OS und hab nun mit einen GNU C Compiler der Firma Hightec das ganze Ding in C geschrieben. Den GNU C Compiler bekommt man vo Hightec kostenlos ist aber keine IDE dabei. Nullblicker hat recht wenn es einfach sein soll nimm ein C-Control 2 da ist der Ram und Flashrom schon drauf. Ich weis nicht ob es die schon mit internen Flash gibt. Der währe natürlich besser. Stromie
Kurze Anmerkungen zu den Rahmenbedingungen: Die Bedingung einen deutschen Controller zu nehmen kann man auch einfacher formulieren: Du musst Infineon einsetzen, ausser du hast die Meoglichkeit einen ARM von Micronas irgendwoher zu bekommen, sind allerdings nur fuer Automotive gemacht. Infineon macht im uebrigen sehr gute Micros, der XC ist bereits vielfacher Overkill fuer die Aufgaben, die du beschrieben hast aber kleine Chips haben keine 2 SPI Schnittstellen. Zum Thema Compiler wurde ja bereit High-Tech EDV Systeme und deren GNU Compiler genannt, allerdings kommt Support nur gegen bar (ich denke das ist auch OK so!) Bei freier Auswahl des Controllers wuerde ich natuerlich den Philips ARM (LPC2132 oder irgeneinen LPC213x) empfehlen. Muss das mal so sagen, schliesslich arbeite ich jetzt bei Philips ;-) Ganz im Ernst, da wuerde es Boards geben z.B. von www.embeddedartists.com fuer weniger als 40 Euro und Compiler von Keil (16kb User Code) oder IAR (32kB Usercode + Library code) koennen umsonst benuetzt werden und sollten fuer das beschriebene Projekt vollstaendig ausreichen. p.s. immerhin ist Philips eine Europaeische Firma)
Hallo Daniel, die von dir erwähnten Mikrocontroller halte ich für absolut überdimensioniert für die von dir genannten Aufgaben. Ich würde einen MSP430 von TI nehmen. Die gibt es mit 2 x ser. Port. Davon den einen als UART, den anderen als SPI (daran beide Geräte hängen und immer nur eines aktiv schalten). Ja ich weiß, der ist von TEXAS Instruments (böse, böse). Aber die Auswahl an deutschen Mikrocontrollerherstellern ist sehr überschaubar. Und wenn ich dann sehe, wo Siemens/Infineon hauptsächlich produzieren...
@ Robert >schliesslich arbeite ich jetzt bei Philips ;-) hmmm... Da fällt mir doch mal wieder mein Problem ein: http://www.mikrocontroller.net/forum/read-3-251984.html Kannst du mir da zufällig weiterhelfen?
Oder nen M16C von Renesas. Hat drei Uart`s, die auch für SPI genutzt werden können. Mfg Sascha
Hallo Daniel, wenn es ein "Deutscher Controller" sein muss, dann kannst Du auch die MSP430-Serie von TI nehmen - wurde und wird in Deutschland (München) entwickelt. Oder gleich den Hyperstone (Konstanz).
Wow, mit soviel Korrespondenz habe ich ja niemals gerechnet...danke vielmals. Also nun mal eine allgemeine Antwort: Der µC soll keinesfalls nur dieses Signal aufnehmen. Er bekommt noch ein zweites Signal und muss dann im Endstadium diverse Filterfunktionen und Statistikberechnungen durchführen. Ich weiß zwar auch noch nicht, wie ich das mache aber das soll jetzt nicht das Problem sein. Wenn ihr mir jetzt sagt dass Infineon coole µCs baut und der von mir Benannte einen SPI-Eingang, einen normalen Eingang und nen UART-Ausgang hat, bin ich glücklich. :) Ich weiß, das sind keine Ein-und Ausgänge aber so sollen sie halt wirken. ;) Wieviel kostet so ein Compiler für nen XC164 denn so? Das Board wird wohl für unter 200 zu haben sein. Wie bereits erwähnt, ist es halt nicht für den privaten Bastlerbedarf. Das wird schon ne professionellere Sache. Danke nochmals...nettes Forum mit netten Leuten! =) Gruß, Daniel P.s.: Deutsch = bleiben wir mal in der Infineon-Serie ;)
Noch zwei Fragen: Wenn der µC für meine Aufgaben überdimensioniert ist, ist er dann zwangsläufig auch schwerer zu programmieren? Ich wollte das teil nämlich etwas "zukunftssicher" machen. Der MSP430 hat doch nur zwei Ports...wie soll ich das machen?
Hallo Daniel, wenn du ernsthaft mit einem INFINEON XC164 arbeiten willst dann musst du auch entsprechend den z.B. KEIL C166 - 16 Bit Compiler kaufen (so um die 3000.-), willst du nur damit spielen brauchst du auch keinen XC164 ...
Hi Daniel, hab gerade ähnliche Probleme wie Du, allerdings ohne Einschränkung auf dt. Produkte, ich bin mittlerweile bei der Philips LPC2000 Familie gelandet (LPC2138FBD64, 32K Ram, 512K Flash für Data u. Programm), da gibts freie C-Compiler für Programme bis zu 32k. Ich weiß allerdings noch nicht ob die mir ausreichen :). Gruß
Hallo sandae, du kannst den Thread gern nutzen um dir den Rat der Experten zu holen. Ich bin ja auch für jede offtopic-Antwort glücklich...;) @Banker: Ich wollte eigentlich nicht gleich Infineon aufkaufen. :blink: Spielen will ich mit dem µC nicht, ich brauche halt nur nen µC mit mindestens drei Eingängen (2x SPI, 1x USART) und deutsch soll er sein. Da bleibt doch nur der XC164 über oder nicht? So langsam verwirrt ihr mich. :(
Hallo Daniel, Das mit den 3000,-- Euro stimmt, aber die Shareware kannst du bis 16K benutzen. Das ist für ein kleines Projekt eigentlich ziemlich viel. Ich würde dir, wenn du dich für Infineon entscheidest, den neueren Typ nehmen, den XC164. Der Prozessor ist immerhin auch schon wieder ein paar Jahre alt und sollte laut Quelle noch 8 Jahre halten und produziert werden. @ Wenn der µC für meine Aufgaben überdimensioniert ist, ist er dann zwangsläufig auch schwerer zu programmieren? Ich wollte das teil nämlich etwas "zukunftssicher" machen. Das muss nicht immer der Fall sein. Aber beim Infineon XC164 stimmt es leider. Bei diesem Prozessor wird zu Beginn sehr viel konfiguriert und die wichtigsten Kniffe für einen Start und für ein erstes Verständnis sind in all den Datenblättern verstreut. Leider sind diese Datenblätter nicht besonders gut gelungen, da sie auch oft verwirrend und unübersichtlich sind. Da sind Datenblätter von Atmel oder Philips besser. Hab mal aus einer internen Quelle erfahren, dass bei Infineon angeblich Praktikanten für das Schreiben der Datenblätter herhalten müssen. Wenn du die freie Wahl hättest würde ich dir den ARM2138 32-Bit von Philips empfehlen, der ist sehr neu, hat zwar seine Bugs, aber die kann man nachlesen. Hier sieht man dann, welche Einheiten gar nicht oder nur zum Teil funktionieren. Philips verschweigt leider bis heute, wann und in welcher Form die Bugs repariert werden, aber gut. Keine Ahnung, warum das der Kunde nicht erfahren darf. Der Support ist leider auch nicht so besonders, da es in Deutschland niemanden gibt, aber die meisten Fragen werden über die Datenblätter beantwortet. Sonst, von den Komponenten her, ist er sehr gut bestückt und deckt so ziemlich jedes Projekt im Hobbybereich mit seiner Leistungsfähigkeit ab. Tschüss, Mario
Hallo Daniel, Spielen will ich mit dem µC nicht, ich brauche halt nur nen µC mit mindestens drei Eingängen (2x SPI, 1x USART) und deutsch soll er sein. Da bleibt doch nur der XC164 über oder nicht? So langsam verwirrt ihr mich. :( Für eine SPI brauchtst DU 4 Leitungen (CLK, DI, DO, CS). Brauchst Du wirklich 2 getrennte SPI? Du kannst auch mehrere Teilnehmer an die SPI hängen, pro Teilnehmer ein CS-Leitung (BUS-System). Generell kannst Du mit nen C164 - es muss nicht die teuere XC-Familie sein, C-Controll 2 ist völlig ausreichend. Mit nen C16X, MSP, ATiny... kann man auch noch eine Software SPI programmieren - ist relativ einfach, hängt von der SPI-Geschwindigkeit ab. Im übriegen gilt das gleiche für ne UART.
Also den XC164N supported KEIL mal gar nicht... nur die XC164CS-Serie. Und ich wiederhole mich nochmal, es ist keine Hobbybastelei. :) Ich verstehe auch nicht, wieso du mir nen 32bitter empfiehlst obwohl ich doch nur 16bit brauche. Vielleicht erklärst du mir das mal. Danke, Daniel ^^
Hallo Nullblicker, ja das mit den gtrennten SPI-Kanälen habe ich mich auch schon gefragt. Ist es denn ein erheblicher Mehraufwand beim Programmieren wenn ich einen SPI-Eingang mit zwei Geräten nutze? Die vier Leitungen kenne ich aber ich dachte halt dass es einfacher wäre, zwei SPIs zu nutzen und die Mehrkosten halten sich ja in Grenzen.
@Und ich wiederhole mich nochmal, es ist keine Hobbybastelei. :) Da hast du recht. Du solltest froh sein, wenn du als µC-Anfänger an die Hobbybastelei ran kommst. Außerdem kann man den ARM von Philips auf 16-Bit runterschalten. Zufrieden? Gruß, Mario
@Mario: Ja sorry, musst dich nicht gleich angegriffen fühlen. Ich weiß selbst dass es ein komplexes Thema ist aber mein Arbeitgeber lässt mir nunmal keine Wahl. Es gibt übrigens ein Starter Kit von Infineon (http://www.infineon.com/cgi-bin/ifx/portal/ep/programView.do?channelId=-65582&programId=34744&programPage=%2Fep%2Fprogram%2Finformation.jsp&pageTypeId=17099&BV ) für 289 wo der Compiler schon drin ist. Verstehe ich doch richtig oder? Gruß, Daniel
Also jetzt muß ich hier mal was loswerden. Könnt ihr eigentlich nicht lesen? Daniel hat mehrmals geschrieben, dass er ein Controller eines deutschen Herstellers benutzen muß. Außerdem hat er mindestens einmal erwähnt, dass der Hersteller Infinion sein soll. Also warum kommt ihr ständig mit Philips und TI? Nochmal deutlich: DANIEL MÖCHTE EINEN CONTROLLER VON INFINEON BENUTZEN!!! ,,,, (QuadComma) P.S.: Wundert mich, daß noch keiner AVR oder PIC vorgeschlagen hat.
Hallo Daniel! Wozu benötigst du eigentlich das SPI Interface in Hardware Ausführung? Du kannst beliebige Portpins verwenden und das SPI Interface durch Software abbilden. Dann benötigst du gerade noch einen µC mit einer RS232. Und das kann dann auch jeder beliebige 8 Biter sein (z.B. 8051) ... Gruß Banker
Erstmal, Danke QuadComma! :D @Banker: Also ich bekomme aus einem Sensor ein 16bit-SPI-Signal. Daher sagt mir meine Laienlogik dass ich einen 16bitigen SPI µC brauche. Denke ich da falsch? Also du willst jetzt mit nem 8biter ein SPI-Interface emulieren? Ich muss dazu sagen dass der Programmieraufwand so gering wie möglich sein sollte, da die Zeit auch ein wenig drängt. Grüße, Daniel
Bei SPI werden meist hohe Übertragungs Frequenzen im MHZ Bereich benutzt. Deshalb macht es meist kein sein die SPI Schnittstelle in Software nachzubilden, da dürfte auch die meisten 32bit Prozessoren zulangsam sein. 16bit heist bei SPI nur das 16bit auf einmal übertragen werden, und sagt nichts darüber aus, das man einen 16bit Mikrocontroller verwenden muss. Bei dem Starterkit ist wahrscheinlich nur eine eingeschränkte Version des Entwicklungskits dabei.
Hallo Sebastian, mit den 16bit hast du ja Recht aber ist es nicht einfacher, 16bit auf einmal in den Register zu bekommen als 2 Zyklen dafür zu brauchen? Das war zumindest mein Gedankengang dabei. Die 16bit sind übrigens 1read/write bit, 7 adress bits und 8 data bits. Gruß, Daniel
Ich werde jetzt keine anderen Controller empfehlen, das haben andere ja schon versucht. Möchte aber folgendes zu bedenken geben - Die C166x Architekur ist nicht gerade "einfach". Ich halte es für sehr schwer als µC Anfänger dort einzusteigen. Das ist halt eine ganze Nummer größer als z.B. ein AVR (jetzt unabhängig davon ob ein derartiger Controller für dich geeignet wäre oder nicht). Für einen ersten Eindruck schaue man einfach mal ins Users Manual und gucke sich den EBC an oder die Speicheradressierung (DPPs Register, EXTS Instr.) Das alles erscheint mir doch deutlich komplexer als bei anderen Controllern - Dann der Compiler: Im Idealfall sollte der Compiler den Controller ja "verstecken". Ich kann in dieser Hinsicht nur vom Tasking abraten. Keil habe ich keine Erfahrung. Der Tasking produziert schon mal kaputten Code und es ist auch nicht weiter schwer den Compiler zum Absturz zu bringen. In jedem Fall trifft dich dann die Architektur der C166 Familie wieder mit voller Breitseite, wenn du im Debugger durch den generierten ASM Code steppen musst :) Nunja, ich empfehle dir auf jeden fall eher den Keil oder Hightec Compiler. Kenne beide nicht, aber verm. besser als Tasking. Alles in allem glaube ich aber, dass man sich als Anfänger am C166 leicht die Finger verbrennt. Ist jetzt nicht böse gemeint, sondern nur meine Meinung. Ich weiß ja nicht WIE gut du wirklich bist :)
So noch ein kleiner Nachtrag falls ich dich nicht von dem Controller abbringen kann :) Einige nette Evalualtion Boards bekommt man auch bei http://phytec.com/ und es gibt ein C166 Forum hier http://www.c166-forum.de/
Hallo Daniel! Ist schon vergessen. Ich wollte dich auch nicht beleidigen. Einen Tipp möchte ich noch geben. Der Kontroller hat IO-Pins, die herausgeführt werden. Man kann auf dem Bild erkennen, dass hierfür zwei Stecker auf der Oberseite vorgesehen sind. Ich bin mir nicht sicher, aber es kann auch sein, dass sich auf der Unterseite des Boards ebenfalls zwei Stecker befinden. Diese Stecker weisen ein kleineres Rastermaß als 2,54 auf. Man benötigt also einen speziellen Gegenstecker, um z.B auf ein Steckbrett gehen zu können. Es gibt aber auch hierfür extra Platinen, die man erwerben kann. Eine kostet um die 30 Euro. Erst dann kann man gewöhnliche 2,54 Stecker anschließen. @mit den 16bit hast du ja Recht aber ist es nicht einfacher, 16bit auf einmal in den Register zu bekommen als 2 Zyklen dafür zu brauchen? Es ist natürlich schon angenehmer, wenn man dies in einem Zug erledigen kann, aber auch wenn man zwei Züge benötigt ist der Aufwand eher gering. Man führt den SPI-Zugriff einfach zweimal aus und speichert dabei die erhaltenen Variablen zwischen. Danach fügt man sie einfach zusammen z.B. gesamt16bit=(byte1*0x100)+byte2; Gruß, Mario
Bei SPI braucht man normalerweise keine Read/Write Bits und auch keine Adressen. Das ist gerade der Vorteil von SPI das man "fast" keinen Overhead hat. Könntest du uns vielleicht mal sagen was für Sensoren du verwenden willst. Ausserdem kann man meist mehrere Chips an eine SPI Schnittstelle anschliessen. Der Master bestimmt dann über eine Chip Select Leitung welchen er anspricht.
Hi, auch wenn ich wieder als "altbacken" gelte, hier mein Tipp. Von Elektor gab es mal ein Buch "Das 80C166er Lehrbuch", das Buch ist von 1999. Enthält die Layouts und Schaltungen für Entwicklungssystem und Erweiterungen, und einiges an Software auf CD. Im ganzen ist es zwar etwas veraltet, bringt aber einen guten Überblick über Möglichkeiten und Programmierung. Bei ebay schon für kleines Geld zu haben. Die Auswahl des Controllers würde ich an der zu verarbeitenen Wortbreite festmachen, muss ich viele 32Bit breite Datenwörter verarbeiten macht sich ein 8Bit Controller nicht besonders gut. Dabei ist relativ wurscht ob die Schnittstelle vom Sensor 8 oder 16Bit breite Daten liefert, da ja ein Wort aus mehrern solcher Datenpackete bestehen kann. Gruß, Ralf N.
Wenn keine besonderen Berechnungen gemacht werden müssen, reicht hier ein 8bitter aus. Hat Atmel nicht ein Werk in Dresden? ;) Welcher µC wird schon in Deutschland gebaut(außer Infineon-obwohl ich mir da auch nicht so sicher wäre)? Und wenn dann sind sie schwer zu bekommen oder die Entwicklungswerkzeuge zu teuer. Ist ne eigenartige Regelung...
Hallo Daniel! @Banker: Also ich bekomme aus einem Sensor ein 16bit-SPI-Signal. Daher sagt mir meine Laienlogik dass ich einen 16bitigen SPI µC brauche. Denke ich da falsch? -> Ja, dieser Ansatz ist wirklich falsch! Es würde auch ein 8-Biter reichen. Also du willst jetzt mit nem 8biter ein SPI-Interface emulieren? Ich muss dazu sagen dass der Programmieraufwand so gering wie möglich sein sollte, da die Zeit auch ein wenig drängt. -> Dann hast du dich eh schon entschieden und natürlich ist es mit hardware SPI viel einfacher und weniger Aufwand! Aber damit du siehst dass es nicht unmöglich ist habe ich dir eine Startanleitung angehängt (SPI ist ja nichts anderes als eine simple und einfache serielle Schnittstelle ...), und @ Sebastian: nö, dazu benötigt man auch wirklich keinen 32Biter!!!(ist genauso falsch wie der 16 Biter...!!). Bleibt nach wie vor noch die Wahl der Programmiersprache und des Compilers übrig, und da wird es wohl teuer oder illegal werden? Du bist doch Nachrichtentechnik Student - bekommt ihr auf der Uni keine Hilfsmittel zur Verfügung gestellt? Bei uns auf der Uni gab/gibt es KEIL C166 Studentenlizenzen ohne Dongel... Gruß Banker
>Alles in allem glaube ich aber, dass man sich als Anfänger am C166 >leicht die Finger verbrennt. Ist jetzt nicht böse gemeint, sondern >nur meine Meinung. Ich weiß ja nicht WIE gut du wirklich bist :) Anhand meiner Fragen kann man sicher erkennen dass ich SEHR schlecht bin. :P Also gut, erstmal ein ganz dickes Dankeschön für die rege Beteiligung. Ich hätte nicht erwartet dass man auf so eine schwammig formulierte Anfrage soviele Antworten bekommt. :D Fassen wir zusammen: - 16bit hardware SPI ist gesetzt - Infineon µC ist gesetzt (da ich ne deutsche Firma und keinen deutschen Produktionsstandort brauche) Nun die Fragen: 16bit hardware SPI setzt zwar keinen 16bit-µC voraus, jedoch will ich noch ne Menge mit dem Teil berechnen so dass 16bit einfach komfortabler sind (Arbeitszeit ist teuer ;))!? Die Studentenversionen kann ich doch sicher nicht für den gewerblichen Einsatz nutzen, hm? Also wird es wohl teuer. :( Danke für die Anleitungen und nen schönen Arbeitstag wünsche ich. :) Gruß, Daniel
@Daniel
>Also wird es wohl teuer. :(
Das Geld wird doch gut in Deutschland investiert ;-)
Nur nochmal zum Vergleich:
Der MB90F347 von Fujitsu kann genau das, was du brauchst, kostet
weniger als 9,- EUR in Einzelstückzahlen und es gibt eine kostenlose,
unbeschränkte Entwicklungsumgebung dazu (Softtune).
Das nur mal so als Argument, falls dir jemand sagt, die
Entwicklungsumgebung für den Infineon uC sei zu teuer.
Ansonsten würde ich dir Keil uVision und ein Entwicklungsboard von
Phytec empfehlen.
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.