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: 44·80 mm

Für dein Programm stehen 4 Taster, 9 Leuchtdioden, sowie Sensoren für Helligkeit und Temperatur zur Verfügung. Die großen Löcher sind für Krokodilklemmen vorgesehen. Du kannst den YupStick dank des integrierten Bootloaders direkt an dein Notebook stecken. Auf der Rückseite ist Platz für einen Knopfzellen-Halter, damit du deine Projeke unterwegs vorführen kannst.

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
Diese Anschlüsse sind durch 1kΩ Widerstände geschützt. PA0-PA3 sind mit den darüber liegenden Tastern verbunden.

Stiftleiste J2

Stift Port PWM Analog Digitale Spezialfunktionen
1 PB15 SPI2_MOSI, I2S2_SD, RTC_REFIN
2 PB0 ja ADC_IN8, VREF_OUT EVENTOUT, TIM3_CH3
3 PB14 ja SPI2_MISO, I2S2_MCK, RTC_OUT, LPUART1_RTS, LPUART1_DE, I2C2_SDA, TIM21_CH2
4 PB1 ja ADC_IN9, VREF_OUT TIM3_CH4, LPUART1_RTS
5 PB13 ja SPI2_SCK, I2S2_CK, MCO, LPUART1_CTS, I2C2_SCL, TIM21_CH1
6 PB2 ja LPTIM1_OUT, I2C3_SMBA
7 PB12 SPI2_NSS, I2S2_WS, LPUART1_RTS, LPUART1_DE, I2C2_SMBA, EVENTOUT
8 PB3 ja COMP2_INM SPI1_SCK, TIM2_CH2, EVENTOUT, USART1_RTS, USART1_DE, USART5_TX
9 PB11 ja EVENTOUT, TIM2_CH4, LPUART1_RX, I2C2_SDA, LPUART1_TX
10 PB4 ja COMP2_INP SPI1_MISO, TIM3_CH1, TIM22_CH1, USART1_CTS, USART5_RX, I2C3_SDA
11 PB10 ja TIM2_CH3, LPUART1_TX, SPI2_SCK, I2C2_SCL, LPUART1_RX
12 PB5 ja COMP2_INP SPI1_MOSI, LPTIM1_IN1, I2C1_SMBA, TIM3_CH2, TIM22_CH2, USART1_CK, USART5_CK, USART5_RTS, USART5_DE
13 PA7 ja ADC_IN7, COMP2_OUT SPI1_MOSI, TIM3_CH2, TIM22_CH2, EVENTOUT
14 PB6 COMP2_INP USART1_TX, I2C1_SCL, LPTIM1_ETR
15 PA6 ja ADC_IN6, COMP1_OUT SPI1_MISO, TIM3_CH1, LPUART1_CTS, TIM22_CH1, EVENTOUT
16 PB7 COMP2_INP, VREF_PVD_IN USART1_RX, I2C1_SDA, LPTIM1_IN2, USART4_CTS
17 GND
18 GND
19 3V Versorgungsspannung von JP1
20 3V Versorgungsspannung von JP1
Diese Ports sind 5 V tolerant, ohne Schutzwiderstände.

Anmerkungen zur Schaltung

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. Nach dem Ändern der Pull-Up/Down Widerstände musst du kurz warten, bevor die Eingänge sinnvolle Werte liefern.

Der Optische Sensor ist (um Strom zu sparen) nur dann aktiv, wenn PC13 auf LOW steht. Dann ist auch die gelbe LED an.

Falls du den YupStick dauerhaft per Batterie versorgst, vergiss nicht den Standby oder Stop Modus zu nutzen, sonst zieht er dir die Batterie leer. Bedenke dass CR2032 Knopfzellen nur wenig Strom (typisch 5 mA) liefern können. LR44 Zellen liefern viel mehr Strom. Du kannst natürlich auch andere Batteriehalter unter die Platine kleben. Wenn du den Jumper JP1 entfernst, kann die Platine extern über Anschluss J2 mit Strom versorgt werden.

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 USART2. Alternativ dazu kannst du einen Debugger wie den ST-Link an J3 anschließen. Die LEDs an PA13 und PA14 sind dann allerdings nicht frei programmierbar.

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ötigen Unterlagen zu erhalten.

Eigentlich müsste die Platine 2,1 mm dick sein. Aus Kostengründen habe ich sie jedoch in 1,6 mm herstellen lassen und dann auf der Rückseite des USB Steckers mit einem 10 mm Klettpad verstärkt. Das passte zufällig sehr gut. Schleife die Vorderkante des Steckers beim Label J1 glatt, damit sie nicht an den Kontakten in der USB Buchse hängen bleibt.