Your programmable USB stick
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.
Das Board hat 4 frei programmierbare Taster und 7 Leuchtdioden. In die großen Löcher für externe Beschaltung passen Krokodilklemmen. Du kannst den YupStick direkt nach dem Zusammenlöten an deinen Laptop stecken und programmieren. Auf der Rückseite ist Platz für einen Knopfzellen-Halter, damit du deine Projeke unterwegs vorführen kannst.
Der STM32L072CBT6 hat folgende Eckdaten:
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 |
An der Stiftleiste J2 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 | Stift | PWM | Analog | Digitale Spezialfunktionen |
---|---|---|---|---|
PB0 | 2 | ja | ADC_IN8, VREF_OUT | EVENTOUT, TIM3_CH3 |
PB1 | 4 | ja | ADC_IN9, VREF_OUT | TIM3_CH4, LPUART1_RTS |
PB2 | 6 | ja | LPTIM1_OUT, I2C3_SMBA | |
PB3 | 8 | ja | COMP2_INM | SPI1_SCK, TIM2_CH2, EVENTOUT, USART1_RTS, USART1_DE, USART5_TX |
PB4 | 10 | ja | COMP2_INP | SPI1_MISO, TIM3_CH1, TIM22_CH1, USART1_CTS, USART5_RX, I2C3_SDA |
PB5 | 12 | ja | COMP2_INP | SPI1_MOSI, LPTIM1_IN1, I2C1_SMBA, TIM3_CH2, TIM22_CH2, USART1_CK, USART5_CK, USART5_RTS, USART5_DE |
PB6 | 14 | COMP2_INP | USART1_TX, I2C1_SCL,LPTIM1_ETR | |
PB7 | 16 | COMP2_INP, VREF_PVD_IN | USART1_RX, I2C1_SDA, LPTIM1_IN2, USART4_CTS | |
PB8 | 15 | I2C1_SCL | ||
PB9 | 13 | EVENTOUT, I2C1_SDA, SPI2_NSS, I2S2_WS | ||
PB10 | 11 | ja | TIM2_CH3, LPUART1_TX, SPI2_SCK, I2C2_SCL, LPUART1_RX | |
PB11 | 9 | ja | EVENTOUT, TIM2_CH4, LPUART1_RX, I2C2_SDA, LPUART1_TX | |
PB12 | 7 | SPI2_NSS, I2S2_WS, LPUART1_RTS, LPUART1_DE, I2C2_SMBA, EVENTOUT | ||
PB13 | 5 | ja | SPI2_SCK, I2S2_CK, MCO, LPUART1_CTS, I2C2_SCL, TIM21_CH1 | |
PB14 | 3 | ja | SPI2_MISO, I2S2_MCK, RTC_OUT, LPUART1_RTS, LPUART1_DE, I2C2_SDA, TIM21_CH2 | |
PB15 | 1 | SPI2_MOSI, I2S2_SD, RTC_REFIN | ||
GND | 17, 18 | Ground, Masse | ||
3V | 19, 20 | Versorgungsspannung |
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.
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 und eignen sich daher besser. 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 maximal 3,6 Volt 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 serielle Verbindungen über USART2. Alternativ dazu kannst du einen Debugger (ST-Link) an J3 anschließen.
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:
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.