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 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.
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 | Ground, Masse |
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 |
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.
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.