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
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.
Eine eigene Frage?
Dieser Thread ist über 17 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.