Your programmable USB stick

Startseite

YupStick

Mit dem Yupstick lernst du die Programmierung von STM32 Mikrocontrollern. Das Board ist gut für Schüler, weil es bequem in jede Tasche passt und keine weiteren Teile erfordert.

YupStick Platine
Größe: 42·72 mm

Das Board hat 4 frei programmierbare Taster und 7 Leuchtdioden. In die großen Löcher passen Krokodilklemmen für externe Beschaltung. Du kannst den YupStick direkt nach dem Zusammenlöten an deinen Laptop stecken und programmieren. Eine Batterie auf der Rückseite ermöglicht mobilen Betrieb ohne Computer.

Mikrocontroller

Der STM32L072CBT6 hat folgende Eckdaten:

Meine Programieranleitung findest du hier, Grundkenntnisse in C vorausgesetzt.
Dokumente vom Chip-Hersteller:

Schaltplan

YupStick Schaltplan

Anschlusslöcher

Port PWM Analog Digitale Spezialfunktionen
PA0 ja ADC_IN0, COMP1_INM, COMP1_OUT TIM2_CH1, USART2_CTS, TIM2_ETR, USART4_TX
PA1 ja ADC_IN1, COMP1_INP TIM2_CH2, USART2_RTS, TIM21_ETR, USART4_RX
PA2 ja ADC_IN2, COMP2_INM, COMP2_OUT TIM21_CH1, TIM2_CH3, USART2_TX, LPUART1_TX
PA3 ja ADC_IN3, COMP2_INP TIM21_CH2, TIM2_CH4, USART2_RX, LPUART1_RX
PA4 ADC_IN4, COMP1_INM, COMP2_INM, DAC_OUT1 SPI1_NSS, USART2_CK, TIM22_ETR
GND Ground, Masse
Diese Anschlüsse sind durch 1kΩ Widerstände geschützt.

Stiftleiste

An der Stiftleiste ist der komplette freie Port B im Uhrzeigersinn herausgeführt. Die Pins sind alle 5V tolerant (aber nur wenn der Chip mit Strom versorgt wird). Sie haben keine Schutzwiderstände.

Port PWM Analog Digitale Spezialfunktionen
PB0 ja ADC_IN8, VREF_OUT EVENTOUT, TIM3_CH3
PB1 ja ADC_IN9, VREF_OUT TIM3_CH4, LPUART1_RTS
PB2 ja LPTIM1_OUT, I2C3_SMBA
PB3 ja COMP2_INM SPI1_SCK, TIM2_CH2, EVENTOUT, USART1_RTS, USART1_DE, USART5_TX
PB4 ja COMP2_INP SPI1_MISO, TIM3_CH1, TIM22_CH1, USART1_CTS, USART5_RX, I2C3_SDA
PB5 ja COMP2_INP SPI1_MOSI, LPTIM1_IN1, I2C1_SMBA, TIM3_CH2, TIM22_CH2, USART1_CK, USART5_CK, USART5_RTS, USART5_DE
PB6 COMP2_INP USART1_TX, I2C1_SCL,LPTIM1_ETR
PB7 COMP2_INP, VREF_PVD_IN USART1_RX, I2C1_SDA, LPTIM1_IN2, USART4_CTS
PB8 I2C1_SCL
PB9 EVENTOUT, I2C1_SDA, SPI2_NSS
PB10 ja TIM2_CH3, LPUART1_TX, SPI2_SCK, I2C2_SCL, LPUART1_RX
PB11 ja EVENTOUT, TIM2_CH4, LPUART1_RX, I2C2_SDA, LPUART1_TX
PB12 SPI2_NSS, LPUART1_RTS, LPUART1_DE, EVENTOUT
PB13 ja SPI2_SCK, I2S2_CK, MCO, LPUART1_CTS, I2C2_SCL, TIM21_CH1
PB14 ja SPI2_MISO, I2S2_MCK, RTC_OUT, LPUART1_RTS, LPUART1_DE, I2C2_SDA, TIM21_CH2
PB15 SPI2_MOSI, I2S2_SD, RTC_REFIN
GND Ground, Masse
3V Versorgungsspannung

Anmerkungen zur Schaltung

Um den USB Bootloader zu aktivieren musst du den Boot0 Taster gedrückt halten und gleichzeitig kurz auf den Reset Taster drücken. Der Bootloader unterstützt auch serielle Verbindungen über USART2. Alternativ dazu kannst du einen Debugger (ST-Link) an J2 anschließen.

Die Taster ziehen den jeweiligen Eingang auf VDD. Zur Abfrage musst du daher den Pull-Down Widerstand aktivieren. Externe Schaltkontakte die den Eingang auf GND ziehen müssen hingegen mit aktiviertem Pull-Up Widerstand abgefragt werden.

Auf der Rückseite befinden sich Kontaktflächen für Batteriehalter im Format CR2032 oder 2·LR44. Bedenke dass billige CR2032 Knopfzellen nur wenig Strom (typisch 5 mA) liefern können. LR44 Zellen liefern viel mehr Strom und eignen sich daher besser. Du kannst natürlich auch andere Batteriehalter (z.B. für zwei AA oder AAA Zellen) unter die Platine kleben.

Falls du den YupStick dauerhaft per Batterie versorgst, vergiss nicht den Standby oder Stop Modus des Mikrocontrollers zu nutzen, damit er die Batterie nicht leer zieht.

Platine herstellen lassen

Die Firma JLCPCB stellt solche Platinen für wenige Euros her. Du musst dazu nur die Gerber Files hoch laden. Ich habe dort für die ersten fünf Platinen (ohne Bauteile) mit Versand nur 10 Euro bezahlt.

Folgende Teile kannst du anfangs weg lassen und später bei Bedarf nach rüsten:

Das Auflöten des Mikrocontrollers sollte man jemandem mit Übung überlassen. Ab 20 Platinen lohnt sich der Bestückungs-Service von JLCPCB. Kontaktiere mich ggf. per Mail um die dazu nötige BOM Datei zu erhalten.

Damit der USB Stecker gut sitzt, muss die Platine 2,1 mm dick sein. Man kann auch dünnere 1,6 mm Platinen verwenden, wenn man auf der Rückseite des USB Steckers ein 10 mm Klettpad anbringt. Schleife die Vorderkante des Steckers glatt, damit sie nicht an den Kontakten in der USB Buchse hängen bleibt.