Forum: Mikrocontroller und Digitale Elektronik STM8S Pin Problem


von Felix M. (teppichboden2)


Lesenswert?

Hallo,

ich habe ein Problem mit meinem STM8S103F3P6. Da ich keinerlei 
Vorerfahrung im Bereich Mikrocontroller habe (dies ist das erste Mal, 
dass ich etwas in die Richtung mache), hoffe ich, dass es sich um etwas 
offensichtliches handelt, was ich übersehen hab.

Das Problem ist folgendes: An dem Board sind (unter anderem) Pins D1 - 
D6. Wenn ich diese einzeln als Output konfiguriere, funktionieren diese 
auch, wie sie sollen. Allerdings scheint es nur bei manchen 
Kombinationen zu klappen. In gewissen Zahlenbereichen, die ich in das 
Output Register schreibe, schalten sich alle Pins des Ports auf Low.

Mein Code:
1
void main(void) {
2
    CLK_DIVR = 0;
3
4
    PD_DDR = 0xFF;
5
    PD_CR1 = 0xFF;
6
    PD_CR2 = 0;
7
8
    PD_ODR = 0xF1; // 0xF2 - 0xF7 --> Alle Pins low
9
10
    while(1) {
11
    }
12
}

Ich weiß nicht, ob es noch andere Bereiche gibt, ich vermute aber schon.

von Tippgeber (Gast)


Lesenswert?

Felix M. schrieb:
> An dem Board

Welches? Schaltplan? Aufbau?

Felix M. schrieb:
> 0xF2 - 0xF7 --> Alle Pins low

Wie stellst Du das fest?

von Demos ueber Demos (Gast)


Lesenswert?

Warum benutzt du soviele F?

Das Netz ist voll mit Demos für Einsteiger:
http://embedonix.com/articles/embedded-projects/getting-started-with-stm8-development-part-1-blinking-a-led/

von Michael K. (Gast)


Lesenswert?

Die Register scheinen richtig gesetzt.
Wenn die Peripherie nicht aktiv ist, die sich der Port D Pins 
bemächtigt, ist das vor Dir beschriebene Verhalten sehr merkwürdig.
Ich tippe auf einen Fehler den wir nicht sehen können, weil Du uns zu 
wenig zeigts.
Wahrscheinlich fliegender Steckbrettaufbau, schlechte VCC, fehlende 
Pufferung und ein im Reset befindlicher STM während Deiner Messung.

Die STM8S sind relativ gutmütige Burschen mit netten Features.
Zeig uns den kompletten Aufbau, dann können wir mehr sagen.

von Felix M. (teppichboden2)


Lesenswert?

Tippgeber schrieb:
> Welches? Schaltplan? Aufbau?

Michael K. schrieb:
> Wenn die Peripherie nicht aktiv ist, die sich der Port D Pins
> bemächtigt, ist das vor Dir beschriebene Verhalten sehr merkwürdig.
> Ich tippe auf einen Fehler den wir nicht sehen können, weil Du uns zu
> wenig zeigts.
> Wahrscheinlich fliegender Steckbrettaufbau, schlechte VCC, fehlende
> Pufferung und ein im Reset befindlicher STM während Deiner Messung.

Das STM8S103F3 Entwicklungsboard. Einen elektrischen Schaltplan konnte 
ich in der Dokumentation nicht finden. Ich selber habe den Ground Pin 
des Boards genutzt und die Pins D1 - D6 jeweils direkt ohne 
Vorwiderstand an eine grüne LED angeschlossen. Das Board an sich bekommt 
seinen Strom über einen ST-Link V2, den ich zum Programmieren benutze.

Demos ueber Demos schrieb:
> Warum benutzt du soviele F?

Was meinst du? Wie ich die Register setze? So ist es für mich am 
einfachsten. Macht man das nicht so?

> Das Netz ist voll mit Demos für Einsteiger:

Ich kenne diese Demos, an denen habe ich mich auch anfangs orientiert. 
Allerdings gehen diese meistens nicht über das Blinkenlassen der 
Onboard-LED hinaus. Wie gesagt, eigentlich funktioniert alles soweit, 
nur in ganz bestimmten Fällen scheint es ein Problem zu geben.

Michael K. schrieb:
> Die Register scheinen richtig gesetzt.

Okay, dann wiederhole ich nochmal den Aufbau und tausche, falls es nicht 
klappt, das Board komplett aus.

von Michael K. (Gast)


Lesenswert?

Felix M. schrieb:
> ie Pins D1 - D6 jeweils direkt ohne
> Vorwiderstand an eine grüne LED angeschlossen.

Uns was hast Du Dir in Deiner grenzenlosen Weisheit dabei gedacht?
Was glaubst Du wohl was den Strom begrenzt ohne Widerstand?

Man, ich könnte Dir links und rechts die Pantoffel um die Ohren hauen, 
so einen Mist zu bauen und sich dann zu wundern das der STM sich dabei 
selbst die Versorgung wegzieht und nur nicht kaputtgeht weil die Dinger 
überaschend robust sind.

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.