Hallo Zusammen Kann mir jemand sagen ob ein PIC32 ähnlich funktioniert wie ein ARM9. Beim ARM9 bin ich kläglich gescheitert, ich habe es einfach nicht geschaft die notwendigen Funktionen einzubinden. Ich mitlerweile für die Ein- und Ausgabebaugruppen einen PIC18 verwendet, aber nun benötige ich für eine MCU einen Leistungsfähigen Controller. Ich habe den PIC32 ebenfalls mit einer Netzwerk Schnittstelle gefunden und nun würde mich interresieren ob dieser wie der PIC18 oder doch eher wie der ARM programmiert werden muss. Bitte. Danke. Lg. Johann K.
Naja, wenn man mal davon absieht, daß im PIC32 eine MIPS und in einem ARM eben ein ARM werkelt, dann sind beide so ziemlich gleich... W.S.
Mist, ich dachte immer, man kann die in C programmieren und die Funktionen schreibt man entweder selbst oder hängen vom Compiler ab. So kann man sich irren.
Die Peripherieblöcke der einzelnen Architekturen sind nicht identisch, aber ähnlich. Wenn Du ein SPI auf einem PIC18 ansteuern kannst, solltest Du das auf nem PIC32 auch hinbekommen. Die MPLAB IDE verwendest Du weiter, Dein PicKIT3 oder ICD2 benutzt Du weiter (PicKIT2 und ICD2 funktionieren nicht bzw nur sehr eingeschränkt), den C32 musst Du nachinstallieren. Ansonsten gibts einige architekturbedingte Unterschiede, in die Du Dich einarbeiten musst. Insgesamt wird der Umstieg auf PIC32 weniger schwierig sein als auf ARM9. fchk
Klatec schrieb: > ... oder doch eher wie der ARM programmiert > werden muss. > Bitte. Danke. > > Lg. > Johann K. In dem o.g. Punkt musst du Differenzieren! ARM ist nicht gleich ARM! Die wesentliche Frage ist hier, da darin wohl die größten Unterschiede bestehen, ob es sich um ein System MIT Betriebssystem handelt oder ohne. Also ob du direkt in C Alles incl. HArdwarezugriff programmierst (wie beim PIC18) oder ob es ein Betriebssystem wie Linux gibt, in dem du die Hardwaretreiber einbinden musst UND danach nur die reine Aplikation als Ausführbare Datei schreibst die dann vom BEtriebssystem aufgerufen wird. Die letztere Version ist insbesondere bei den Vertretern mit sehr hoher Leistung anzutreffen, da du von ARM9 schreibst nehme ich mal ganz stark an das du so einen Fall hattest! (Mir ist bisher noch kein ARM9 System untergekommen das ohne Betriebssystem lief, technisch würde das natürlich auch ohne gehen, aber das noch effizient ist?) Die PIC32 haben üblicherweise kein Betriebssystem. Das heißt nicht das es nicht gehen würde, aber es ist zumindest als Standard nicht üblich. Du schreibst ja ob es ähnlich wie PIC18F ist. JA- Es ist sehr ähnlich! Du schreibst ganz normal aus MPLAB heraus in C. (Natürlich musst du mindestens den kostenlosen Compiler vorher runtergeladen haben). Der Aufbau des Programms ist völlig identisch. Auch das setzen der Fuses usw. Die Unterschiede betreffen nur die erweiterten HArdwarefähigkeiten sowie den etwas erweiterten Befehlssatz in der mitgelieferten MC Lib. (wobei man auch mit der reinen Beschränkung auf den PIC18F Befehlssatz zurechtkommen würde) Wenn du mit den PIC18F zurechtkommst, dann ist es nur ein KLEINER Sprung auf die PIC32! Aber: Weshalb ich oben die Differenzierung machte: Auch unter den ARM gibt es welche die wie die PIC32 direkt in mit C laufen. Vom Aufwand und Ablauf entsprechen die dann auch den PIC32. Verbreitete Beispiele sind ARM7 und CortexM3. Wenn du allerdings über die Microchip Hardware zum Programmieren verfügst und dich mit der Umgebung schon auskennst, dann dürfte es für dich am einfachsten sein auf PIC32 zu setzen. Gruß Carsten
Carsten Sch. schrieb: > (Mir ist bisher noch kein ARM9 System > untergekommen das ohne Betriebssystem lief Die STR9 Familie verwendet einen ARM9 Core ohne Cache und ohne MMU und ist von Aufbau und Zielrichtung her mit grösseren ARM7 oder Cortex-M3 Controllern vergleichbar. Und ist damit auch ungefähr in der Liga der PIC32. Bisschen komplizierter sind die STR9 eigentlich nur dadurch, dass die I/O-Module zweimal und das RAM dreimal im Adressraum auftauchen, mit jeweils unterschiedlichen Puffercharakteristiken. Wer mit coherency Konzepten bisher nichts zu tun hatte kann da leicht ins schwimmen kommen. Zumal sich der Autor des Insider's Guide vor diesem Thema gedrückt hat.
Hallo Danke für die vielen Antworten. Zur Aufklärung, ich habe mir von taskit das Stamp9G20 Board (Linux mit Betriebssytem) gekauft, zuvor arbeitete ich nur mit 80C535 mit max. 12MHz und da haben mich die Eigenschaften des verwendeten Prozessor AT91SAM9G20 sehr beeindruckt, eine Wahnsinns Maschi'n. Aber das einzigewas ich geschaft habe war die Ausgabe der am Testboard befindlichen Leds. Aber am meisten hat mich die Netzwerk-Schnittstelle beeindurckt, die wollte ich für die Kommunikation mit andenren Komponenten über das Fernwirkprotokoll IEC60870-5-104 verwenden und für das IEC 60870-5-101 hat der Prozesser auch genügend RS232 zur Verfügung. Eine SPI Schnittstelle für den Bus der die eigenen Ein- und Ausgabebaugruppen verbindet, und einen Flash-Speicher für die Feinrangierungen der Telegramme und Baugruppenparameter, viel mehr muss das Ding nicht können. Vieleicht noch einen kleine Bereich des Speichers für einen Funktionsplan zum Ausführen von Logischen Verknüpfungen.
Gratulation. Wir verwenden das PortuxG20. Ich habe aber auch im Hinterkopf ggf. bei Projekten, wo Platz eine Rolle spielt, mal auf das kompatible und billigere System auszuweichen. Was machst Du genau mit dem Teil? Gruss hro
Leider nichts, weil ich einfach zu blöd war dafür. Ich mache mir eine Fernwirkkomponente die aus digitalen Ein- und Ausgabebaugruppen mit je 16 Ein- und Ausgängen und einer CPU besteht. Diese sind über einen Seriellen Bus verbunden. Die CPU steuert den Datenverkehr, sprich Telegramme zwischen den Baugruppen und anderen Komponenten, Paramter die aus der Anlage einen universalen Einsatz ermöglichen, so wie Kommunikationsschnittstell die einen Datenfluss zu anderen Fernwirkkoponenten oder Visualisierungen (PC) ermöglichen. Da würde sich dieser Prozessor mit den 400Mhz Takt super eignen weil da richtig die Post ab geht. Wenn ich von Daten rede, dann sind das nicht Unmengen von Byts sondern je Baugruppe nur 16 Bit Nutzdaten, die über Optokoppler an eine Logic übergeben werden, 24 V oder auch 12V. Oder die Ausgänge, 16 Ausgänge entweder über Relais oder auch über kurzschlußfeste Bausteine mit max 500mA. Mich würde ein nochmaliger Versuch schon reizen aber ich weiß noch nicht. Ich hoffe das ich einigemaßen verständlich meine Antrieb beschrieben habe.
Klatec schrieb: > Hallo > > Danke für die vielen Antworten. > Zur Aufklärung, ich habe mir von taskit das Stamp9G20 Board (Linux mit > Betriebssytem) gekauft, zuvor arbeitete ich nur mit 80C535 mit max. > 12MHz und da haben mich die Eigenschaften des verwendeten Prozessor > AT91SAM9G20 sehr beeindruckt, eine Wahnsinns Maschi'n. Aber das > einzigewas ich geschaft habe war die Ausgabe der am Testboard > befindlichen Leds. > Aber am meisten hat mich die Netzwerk-Schnittstelle beeindurckt, die > wollte ich für die Kommunikation mit andenren Komponenten über das > Fernwirkprotokoll IEC60870-5-104 verwenden und für das > IEC60870-5-101 hat der Prozesser auch genügend RS232 zur Verfügung. Mal den Standard angesehen? Ich hätte noch einen Stack hier, da den Verantwortlichen damals, trotz einiger Warnungen, der Einkauf eines fertigen Stacks zu teuer war... Wenn das Protokoll nicht vorgeschrieben ist, würde ich mir zumindest noch DNP3 ansehen (http://en.wikipedia.org/wiki/DNP3) Ansonsten würde ich mich den Vorrednern anschließen: PIC32, gleiche Tools wie bisher, ähnliche Peripherie und mit den Beispielen aus den Application und Peripheral Libraries sollte man schnell einen Einstieg finden können
Klatec schrieb: > Mich würde ein nochmaliger Versuch schon reizen aber ich weiß noch > nicht. Naja, wie schon geschrieben: ICh vermute deine Probleme liegen im Umgang mit dem Betriebssystem. Linux auf µC ist etwas für Leute die auch Linux auf dem PC aus dem FF beherschen und zwar nicht nur die Bedienung sondern auch die Konfiguration, das einbinden von treibern, teilweise gar die Kompilation eigener Kernel. Für jemanden der diese Anforderung erfüllt ist das in der Tat wohl so das er auch bei einachen Projekten schneller mit solchen Bords zum ziel kommt. Allerdings sind das o.G. Fachkenntnisse die nicht zwangsläufig direkt etwas mit der µC Programmierung zu tun haben. Da sind diejenigen die bisher in der reinen PC Welt daheim waren definitiv im Vorteil. ICh muss auch zugeben das ich mich zwar zur Zeit meiner Ausbildung auch privat etwas mit Linux beschäftigt habe, seit sicher 10 JAhren abernur noch so viel wie ich gerade musste. Wenn ich mal mit solchen "Powerboards" konfrontiert bin vergeht auch erst einmal überproportional viel ZEit für Einrichtung bevor ich überhaupt loslegen kann. Auftragsentwicklungen auf solchen Systemen habe ich bisher im übrigen immer abgelehnt, würde es zwar sicher auch schaffen, aber nicht in einem ZEitansatz den ich dem Kunden und auch mir gegenüber guten Gewissens hätte vertreten können. Da sind andere bedeutend fitter. Meine Stärken liegen woanders. Zumal ja auch die Applikationen zumeist in eine gänzlich andere Richtung gehen als mein übliches Feld! (Privat habe ich schon etwas damit gespielt wenn mal Zeit war, im Moment habe ich aber kein System mehr, war nur geliehen, und ich kann mich irgendwei nicht durchringen eines zu kaufen...) Werde es aber noch mal in Angriff nehmen, man weiß ja nie was kommt und es kann ja auch nur von Vorteil sein da auch fit zu sein. Ich vermute mal das es bei dir ähnlich ist, es fehlt das Hintergrundwissen zum Betriebssystem selbst. Die Applikation wäre dann nicht mehr das Problem. > Ich hoffe das ich einigemaßen verständlich meine Antrieb beschrieben > habe. Naja, so ganz bin ich da noch nicht hintergestiegen was die CPU nun machen soll. Zumindest bin ich mir noch nicht sicher. Meine Vermutung anhand deiner BEschreibung und eigener Vorstellung/erfahrung : Du willst eine Reihe identischer Baugruppen herstellen... JEDE dieser Baugruppen ist folgendermaßen Aufgebaut: Eine CPU zur Steuerung, 16xIN und 16xOUT. Die Baugruppen können über einen Seriellen BUS miteinander Kommunizieren. Als Steuertelegramme werden jeweils Datenwörter von 16Bit breite verwendet von denen jeweils ein Bit einen Kanal repräsentiert. Die Verarbeitung der Daten erfolgt quasi wie in einem Schieberegister (Die Schaltung bekommt ein Datenwort, schiebt dies in den Ausgang und je nachdem ob ein High oder Low anliegt schaltet der Ausgang, beim Eingang ist es dann umgekehrt...). (Diese serielle Kommunikation untereinander und zur Aussenwelt soll der IEC 60870-5-101 entsprechen) Zusätzlich spielst du mit dem Gedanken die ganze geschichte noch auf das IEC 60870-5-101 Protokoll zu erweitern welches Datenübertragung über TCP/IP erlaubt. Die STEUER-CPU übernimmt dabei die Aufgabe des Kommunikationscontrollers, sie überwacht den Seriellen Bus um festzustellen ob eine für sie bestimmte Übertragung kommt, wertet diese aus und dekodiert sie um aus dem zwecks Übertragung gesicherten Datenstream wieder die 16Bit Nutzdaten zurückzugewinnen. Ebenso kann sie selber die Übertragung veranlassen wobei die Empfänger durchaus wechseln können. (Andere Module oder PC/Anzeigetafel) Dies soll nun auch über TCP/IP möglich sein. Eventuell gar soweit das JEDES Modul auch als Gateway TCP/IP <> SERIELL fungieren kann. Weitere Aufgaben sollen nicht ausgeführt werden! IST DIES EINIGERMAßEN RICHTIG INTERPRETIERT? Wenn ja, dann geht das natürlich mit den ARM9 Boards. Allerdings ist das ein wenig SEHR Überdimensioniert... In einem anderen Thread was die Rede für einfaches Geblinke von "Thermobare Bomben auf Spatzen" werfen. Hier jagst du dann mit den Thermobaren Bomben keine Spatzen sondern immerhin schon Fasane... Hast du dir mal wirklich ausgerechnet wie lange z.B. die Ausführungszeit für die einzelnen Berechnungen nach dem Empfang eines Datenwortes über den Seriellen BUS im Verhältniss zur reinen Übertragungsgeschwindigkeit auf dem BUS (die ja sicherlich vorgegeben niedrig ist, oder) ist? Selbst bei 8Bittern wird die gesamte Ausführungszeit kleiner als eine Bitzzeit sein, Wahrscheinlich ist das Stoppbit noch nicht einmal beendet, da sind alle Berechnungen schon erledigt! Selbiges für die Ausgabe. Selbst wenn dann noch die TCP/IP Geschichte dazukommt würde das sogar noch ein 8Bitter genrell schaffen, wobei es dann wirklich schon gut zur Sache geht. Da ist dann schon ein geschickter Programmaufbau gefragt damit es nicht hakt. Mit einem 32Bitter fährt man da sicher "Besser" Aber mit einem PIC32 (oder CortexM3) , die ja auch mit 80Mhz oder mehr laufen hast du wieder reserven bis Ultimo. Da könntest du mal kurz nebenbei noch ein TFT Graphikdisplay zur Anzeige an jedem einzelnen µC direkt anschließen, nebenbei MP3 zur Unterhaltung Abspielen und der µC hat immer noch reserven. Zudem hast du hier immer noch die Möglichkeit HARTE ECHTZEITKRITERIEN vorzugeben was bei Betriebssystembasierenden Systemen nicht, oder nur mit deutlich höheren Aufwand geht. Zudem glaube ich nicht mal das du beim 400Mhz board wirklich schneller bist, denn ich habe die Erfahrung gemacht das die Berechnungszeit im Vergleich zu der ZEit die die Spannung am IO Braucht um Hochzukommen (der Spannungsanstieg folgt ja einer Kurve) nicht mehr ins Gewicht fällt. Wenn man dann noch bedenkt das beim ARM9 die Informationen ja durch die verschiedene Schichten der laufenden Software durchgereicht werden müssen wohingegen du bei den kleineren die Treiberstufe(Hardware) direkt ansprichst, dann ist bei solch einfachen Dingen jeder Vorteil dahin. (Von dem ich immer noch nicht glaube das man den in deinem Fall überhaupt braucht.) Wie gesagt, ich bin mir nicht sicher ob ich das richtig verstanden habe was die Systeme können müssen.Acuh zweifle ich gar nicht an das die ARM9 durchaus Ihre berechtigung haben. Falls ich deine Beschreibung aber halbwegs richtig interpretiert habe würde ich mir den Einsatz der ARM9 aber SEHR GUT überlegen. Die Leistung brauchst du nicht. Die kommen da zum Einsatz wo GEWALTIGE DATENSTRÖME zu bewältigen sind. Videobearbeitung in nahezu Echtzeit oder HighSpeed Datenübertragung und ähnliche Dinge. Gerade wenn du mehrere Brauchst spielt da ja auch der PReis eine bedeutende Rolle. entweder muss du ein System selbst aufbauen, was einiges an Erfahrung und teure Fertigung vorraussetzt (teilweise 4 oder gar 6 Layer Bord, teilweise Impedanzrichtiges und Laufzeitangepasstes Routing) oder du kaufst ganze Module zu welche pro Stück mit 60Euro oder gar deutlich mehr ins Gewicht fallen. Für nicht benötigte Leistung ein ganz schöner Happen. Der PIC32MX795 mit 80Mhz Takt, 512K Flash, 128K Ram, USB, Ethernet, 2xCAN, 4xSPI, 5xSPI und 6x UART kostet beispielsweise um die 6 Euro. Als EINZELSTÜCK immer noch "nur" 10Euro... Montage ist auf einer Zweilagigen Platine ohne Probleme möglich. Die 64Pinnige H Version ist notfalls sogar noch von einem Gelegenheitslöter von HAnd lötbar. Das ist Preisfaktor 10x! Wenn die Leistung oder die Schnittstellen nicht ausreichen und auch kein anderer µC mit ausreichend Schnittstellen unter den Vertretern der C-M3 zu finden ist, klar - dann muss etwas größeres her. Aber wenn es reicht, dann ist 54 Euro UNTERSCHIED FÜR EINE BAUGRUPPE für den Hobbyisten eine Menge Holz. Bei mehreren Baugruppen erst recht. Und für den Kommerziellen Einsatz wo es um Stückzahlen geht braucht man erst gar nicht diskutieren. zumnal die sonstige HArdware die ich mir anhand deiner Beschreibung auf dem Bord vorstelle kostenmäßig auch unter 10 Euro liegen dürfte... Wie gesagt: Wenn ich jetzt etwas übersehen habe oder du vergessen hast eine Anforderung mitzuteilen -Klar- dann macht ARM9 eventuell doch Sinn, ist gar nötig! Aber sollte dem nicht so sein sind es einfach nur erhebliche Mehrkosten, rausgeworfenes GEld, für Leistung die du nicht brauchst. Insbesondere da ich auch keine echte Zeitersparniss bei der Softwareentwicklung erkennen kann die eine deutlich teurere HArdware bei kleinen bis je nach komplexität mittleren Stückzahlen wieder rentabel machen würde. ICh würde sogar vermuten das man bei deinen Anforderungen auf dem PIC32 bzw. CortexM3 sogar schneller zum Ziel kommt. Gruß Carsten
Hallo Carsten Ich kann nur Ufff sagen, mit so einem ausführlichen Report habe ich nicht gerechnet. Ich bin beruflich in der Ferwirktechnik und habe mit solchen Anlagen von der Firma Siemens (früher SAT) zu tun, also das Gesamtkonzept ist nicht auf meinem Mist gewachsen. Es gibt diese Anlagen von den verschiedesten Anbietern, Sprecher,... Die Kommunikation am Bus funktioniert nicht nach dem Schiberegisterprinzip, sondern es werden Telegramme von vier bis einien zig Bytes gesendet. Diese haben einen Header, Adressen und Nutzdaten, das Ganze ist auch noch genormt, jedoch packen die Firmen sehr viel in den privaten Bereich und dadurch sind die verschiedenen Anbiter nicht kompatibel. Danke für deine Ausführungen ich werde mich doch auf den PIC32 stürzen, so wie du es mir geraten hast. Danke. Lg. Johann K.
Hallo Carsten Bist du wirklich an dem Stamp9G20 interessiert, kannst dich ja mal auf der Seite von taskit darüber informieren. Ich habe zwei solcher Board's und ich könnte mir vorstellen das ich eines davon abgebe. Ich habe sie sehr günstig erhalten, dies und einen Print mit einigen Tasten, Leds, usw. gehören zu dem Paket. Ich mache dir den Vorschlag, du über nimmst das Porto und ich schicke dir einfach dieses Paket (kostenlos), bei mir würde es ohne hin nur rum liegen und mich würde es freuen wenn doch jemand damit was anfangen kann. Solltest du es haben wollen müßte ich irgend wie an deine Adresse kommen. Gib mir Bescheid. Lg. Johann K.
Hallo Johann, Interesse besteht auf jeden Fall. Und dein Vorschlag ist ja wirklich sehr entgegenkommend. Wobei ich da durchaus bereit bin dir auch mehr als das Porto zukommen zu lassen. Aber hier zuerst mal meine Kontaktdaten, dann können wir ja näheres Besprechen. Eine Email Addresse von mir "CARSTEN_1003 DasATZEICHEN yahoo.de" (das ist meine Forenuniversaladresse als Spamschutz für die "guten" Adressen) Schreibe mir da mal eine Email kurze Hinweismail und wir klären das weitere (Ich Antworte natürlich dann mit der "richtigen" ;-) Mail- und meiner Postadresse. Alternativ kannst du sonst auch gerne Anrufen http://www2.dastelefonbuch.de/?vm=detail&recuid=7DWNOAKHJS7ZXBA4KB3HKI5ZPGPCMXCTD5JOEAQ&sD=1&sp=69&aktion=38 (Link wegen "Rückwärtssuche" damit google nicht jeden Forenbeitrag zeigt ;-). Das ist auch der einzig Grund für die Abkürzung im Namen oben. Realnamen bekommt man ja sonst auch über das Call) Ach ja: Klatec schrieb: > Die Kommunikation am Bus funktioniert nicht nach dem > Schiberegisterprinzip, sondern es werden Telegramme von vier bis einien > zig Bytes gesendet. Diese haben einen Header, Adressen und Nutzdaten, > das... Da haben wir uns etwas Missverstanden, ich bin da nur aufs "Schieberegister" gekommen weil ich mal eine ähnliche Schaltung gebaut habe die die Daten über CAN bekommen hat der µC hat das dann dekodiert und in eine Kette aus CD4094 Schieberegister geschoben. (waren 20Relais und noch einiges mehr auf dem Bord) Ansosnten bleibt nur nochmals zu sagen das ich persöhnlich denke das du FÜR DIESES PROJEKT mit dem PIC32 wohl die beste Wahl getroffen hast ;-) Gruß Carsten
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.