Hallo Für ein Projekt möchte ich mal den F330 von SiLabs ausprobieren. Ich habe bis jetzt nur mit AVR`s gearbeitet und diese programmiert. Der SiLabs bietet aber einen wesentlich schnelleren AD Wandler. Darum möchte ich es nun mal mit diesem probieren. Meine AVR`s habe ich bisher in C programmiert. Ich habe mir nun mal einige Ap.Notes von SiLabs durchgelesen. Einiges sieht schon sehr ähnlich aus, mit einigen Dingen kann ich aber nicht wirklich viel anfangen. Könnt ihm mir ein paar Tips geben was ich am Anfang mit diesem Prozessor auf jeden Fall beachten muss? Vor allem was das Programmieren angeht. Damit ich da nicht gleich von Anfang an etwas grundlegendes falsch mache. Wie waren eure Erfahrungen mit diesem Prozessor? Es geht bei dem Projekt darum einen Sensor auszulesen und die Daten über eine RS485 Schnittstelle zu versenden. Würde mich freuen wenn ihr mir da weiterhelfen könnt. MFG Bean
moin moin, zum proggen brauchst Du ein C2-Interface. Von Silabs lade den ConfigWizard SMS6.24..spart einiges an Zeit und beantwortet einige Fragen... Ich hab da was mit nem F365 am kochen.. mfg Pieter
Hallo Pieter Danke für die schnelle Antwort. Ich habe den ToolStick von SiLabs. Werde mir den ConfigWizard gleich mal anschauen. Was ist das genau? MFG Bean
Danke für den Tip mit dem Configuration Wizard. Das Teil ist echt gut. MFG Bean
Hallo Ich bins nochmal. Wollte mal fragen ob es auch möglich ist den Hautteil der Software in C zu schreiben und einen etwas zeitkritischen Teil in Asambler zu schreiben. Wie mache ich das in der IDE von SiLabs? Ist noch nicht gesagt dass ich das wirklich brauche, aber interessiert mich einfach wie und ob das geht. Habe das schon bei AVRs gesehen, aber noch nicht selber gemacht. Wisst ihr da was? MFG Bean
Das hängt von deinem C-Compiler ab. Da du nicht schreibst, welchen du verwendest, musst du in dessen Handbuch unter dem Stichwort "inline assembler" nachgucken :) Ralf
moin moin, wenn der Compiler (eigendlich Hochsprachenassembler) auch die Assemblerquelle ausgibt, kann man dort sehen wo Zeit "verplämpert" wird. Dann ist auch sichtbar, wo und wie man schon die Hochsprache besser an den Compiler und seine (Schlüsselloch-)Optimierung anpassen kann. Der SDCC hat zum Beispiel viele Stellen, wo gezeigt wird, wie man es eigendlich nicht machen sollte. Bestes Beispiel ist die Funktion _fabsf. Der SDCC braucht dazu ca 100Bytes (und mindestens soviele Takte), in Assembler verwende ich dazu einfach CLR A.7, 2 Bytes und 1 Takt. mfg Pieter
Ah ok, ich benutze die IDE von SiLabs. Und hab de freeware von Keil als Compiler eingebunden. Hab jetzt unter Configuration was gefunden, da konnte ich ein Häckchen setzten "include assembly code". Denke das ist es was ich brauche :-) Werd das dann vielleicht mal versuchen. Danke! MFG Bean PS.: Bin immernoch dankebar über alle Tips zum Programmieren des SiLabs F330.
Hallo, der Controller hat einen Crosslink eingebaut! Den must Du richtig konfigurieren! Das Problem dabei, es können sich dabei die Pinfunktionen verschieben. Das heißt erst die Konfiguration dann das Layout. Ansonsten ist es ein 8051 aber so ein super Contoller. Der Adc ist dem der AVR's um welten vorraus! Gruß
Noch was, wir haben den Controller, unter µVision3 von Keil programmiert. Das ging sehr gut damit. Auch debugging mit dem C2 wird unterstützt und macht es somit leichter.
moin moin, @Jürgen, bei einem F365 kann ich alles lesen und Register schreiben, beim löschen gibt es einen TimeOut und programmieren geht nicht mehr. Hast Du dazu eine Idee, ob ein Register mit falschem Wert beschrieben wurde? mfg Pieter
Sorry, von so einem Problem ist mir nichts bekannt. Hatte aber auch nichts mit der 360 Serie zu tun. Das einzige das wir festgestellt habe, ist das sich beim Programmieren immer wieder mal das ein oder andere Byte im Flash nicht richtig programmieren ließ. Das haben wir dann mit einer CRC Prüfung abgefangen.
Pieter wrote: > eigendlich nicht machen sollte. Bestes Beispiel ist die Funktion _fabsf. > Der SDCC braucht dazu ca 100Bytes (und mindestens soviele Takte), in > Assembler verwende ich dazu einfach CLR A.7, 2 Bytes und 1 Takt. Wozu braucht man denn eine Funktion, die -1 zu 127 umwandelt? Peter
Falls ihr am Reset einen Kondensator nach GND und einen Widerstand nach VCC habt, werft den mal raus. Das funktioniert zwar auf den DevBoards, aber in den normalen Schaltungen erwies sich der Cap immer als Problem (nicht bei mir, sondern bei den Usern des SiLabs Forums). Ausserdem bei Schreiben vom Flash über Firmware immer den VDD-Monitor aktivieren. Einige Bereiche des Flash lassen sich nur unter bestimmten Bedingungen beschreiben bzw. sind reserviert! Ralf
moin moin,
Peter wrote:
>>Wozu braucht man denn eine Funktion, die -1 zu 127 umwandelt?
...wie ... was, Du kennst die Funktion
float fabsf(const float x) _FLOAT_FUNC_REENTRANT
{
union float_long fl;
fl.f = x;
fl.l &= 0x7fffffff;
return fl.f;
}
nicht???
mfg
Pieter
Mr Bean wrote:
> Danke für die schnelle Antwort. Ich habe den ToolStick von SiLabs.
Wo hast Du den ToolStick gekauft?
Direkt bei Silabs im Onlineshop? Wie hoch waren die Versandkosten?
Danke.
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.