STM8S105S4T6C

Wie letztens geschrieben, gibt es diesen µC derzeit für 50 Cent bei Pollin.

Demnächst geht es ans Testen. Heute war es einfach zu warm, zu mehr als zum Auflöten hatte ich keine Lust …

STM8S105S4T6C Adapterboard
STM8S105S4T6C Adapterboard

 

 

Unterseite
Sicht von unten auf das Modul mit den notwendigen Kondensatoren
von oben
Sicht von oben auf das Modul mit allen Kondensatoren (siehe auch rechter Bildrand zwischen den unteren Pins des Steckers)

Projekt: STM8S105 6×8 Bits Output Teil 1a

Mein LED-Weihnachtsbaum hat schon lange eine neue Steuerung verdient. Der AT90S1200 war schon beim Bau aus der Mode:

LED-Weihnachtsbaum mit AT90S1200
LED-Weihnachtsbaum mit AT90S1200

Jetzt muss etwas neues her, am besten mit dem bei Pollin gekauften STM8S105S4T6C, siehe früheren Beitrag: STM8S105S4T6C bei Pollin

Die Platine soll möglichst universell sein, außerdem möchte ich nach Möglichkeit recyclte Bauteile wiederverwenden, hier schwebt mir der HC573 von diversen alten Festplattenplatinen vor. Den derzeit viel genutzten HC595 müßte ich erst neu kaufen.

STM32F030 eigenes breakout Board V

Nachdem ich einen ganzen Vormittag mit der Fehlersuche aufgrund eigener Dummheit verbracht habe, (der Chip sitzt auf der Unterseite, ist also bezüglich der Anschlüsse, von oben gesehen, gespiegelt – ein Nachteil meines Layouts, aber verschmerzbar, wenn man die Unterseite als Oberseite betrachtet und die DIL-Pins entsprechend einlötet) geht das Board nunmehr so wie geplant.

Board in Funktion
Board in Funktion
bestückte Oberseite
bestückte Oberseite

Beim fertigen Board fällt auf, dass noch viel Platz ist. Das soll zwar auch zum Teil so sein, denn es wird ja mit Hand bestückt. Aber hier ist noch Optimierungspotential und doch Platz für einen RESET-Taster und einen ST-Link-Stecker. Die Lötbrücken auf die Chip-Seite umlegen, der Quarz geht sowieso auf beiden Seiten einzulöten, die zusätzlichen Teile ebenfalls auf die Chipseite und dann oben und unten „tauschen“, so sollte es besser gehen.

bestückte Unterseite
bestückte Unterseite

Der fehlende Lack auf einem Leiterzug der Unterseite ist mein Fehler, bin mit dem Lötkolben abgerutscht – Weller WECP-20, siehe Foto als Größenvergleich:

Vergleich Lötkolben Chip (baugleicher STM8S103)

 

Es wird Zeit, sich eine „ernsthafte“ Anwendung zu überlegen. Hier zunächst das mit Coocox erstellte Test-Programm:

#include "stm32f0xx.h"
#include "stm32f0xx_gpio.h"
#include "stm32f0xx_rcc.h"

#include <stdio.h>

void init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);

    // LED: Configure PA0 and PA1 in output pushpull mode
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}

void Delay(__IO uint32_t nCount)
{
    while(nCount--)
    {
    }
}

int main (void)
{
    init();

    while (1)
    {
        GPIOA->BSRR = GPIO_Pin_1 | GPIO_Pin_0;  // Set PA! HIGH = LED off
        Delay(500000L);
        GPIOA->BRR = GPIO_Pin_0;  // Set PA0 to GND (red LED on)
        Delay(500000L);
        GPIOA->BRR = GPIO_Pin_1;  // Set PA1 to GND (green LED on)
        Delay(500000L);
    }
}

Ach ja, mit Quarz läuft dasselbe blinky-Programm deutlich schneller als auf dem TSSOP28-Adapter-Board. (ca. 3..4 mal schneller?) Schaltet der Chip die Taktquellen selbstständig um (angeblich startet er immer mit HSI und man muss mittels Programm umschalten) oder ist das Umschalten im Startcode von Coocox zu suchen? Ok, hab also noch zu tun …

EDIT: Hier:

 

ist ein Video des Testprogrammes zu sehen. Die Lösung des Geschwindigkeitsproblems liegt wie vermutet im startup-Code von Coocox, der bei externem Takt die PLL einschaltet.

STM32F030 eigenes breakout Board IV

Heute habe ich die Boards erhalten.

Platinen
Platinen
Platine von oben
Platine von oben
Platine von unten
Platine von unten

Der fehlende Bestückungsaufdruck ist keine Absicht. 😐 Da hab ich wohl beim Gerbern geschlafen.

Wie trenne ich jetzt die Einzelnutzen auf? Das Platinenmaterial ist FR4, der Staub soll gesundheitsgefährlich sein. Sägen mit der Dekupiersäge fällt aus, das wird krumm und schief, vom Sägestaub ganz zu schweigen. Sägen per Hand mit der Metallsäge dauert lange, ist aufwendig und staubt. Schneiden mit dem Seitenschneider (in Ermangelung einer Blechschere, die öfter empfohlen wird) erzeugt unvorhersehbare Brüche und Risse in der Platine.

Die Lösung, bis mir etwas besseres unterkommt: Ritzen auf beiden Seiten mit dem Teppichmesser mit dem (Metall-)Meßschieber als Anschlag und dann über die Tischkante einfach brechen. Das funktioniert erstaunlich gut. Danke an das Internet, wo ich auf mehreren Seiten diesen Tipp fand.

Was mache ich jetzt mit 60 Boards? 🙂