Forum: Mikrocontroller und Digitale Elektronik F330 von SiLabs Programmieren


von Mr Bean (Gast)


Lesenswert?

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

von Pieter (Gast)


Lesenswert?

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

von Mr Bean (Gast)


Lesenswert?

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

von Mr Bean (Gast)


Lesenswert?

Danke für den Tip mit dem Configuration Wizard. Das Teil ist echt gut.

MFG

Bean

von Mr Bean (Gast)


Lesenswert?

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

von Ralf (Gast)


Lesenswert?

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

von Pieter (Gast)


Lesenswert?

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

von Mr Bean (Gast)


Lesenswert?

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.

von Jürgen H. (nobody)


Lesenswert?

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ß

von Jürgen H. (nobody)


Lesenswert?

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.

von Pieter (Gast)


Lesenswert?

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

von Jürgen H. (nobody)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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

von Ralf (Gast)


Lesenswert?

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

von Pieter (Gast)


Lesenswert?

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

von M. G. (looking)


Lesenswert?

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
Noch kein Account? Hier anmelden.