STM8S Pin Problem

OP #5495815
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.
Gast #5497693
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.
OP #5498364
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.
Gast #5498378
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren