VID28 PCB - TorstenC/Notizblog GitHub Wiki

Ziel

Eine preiswerte Platine, um einen VID28 Doppel-Schrittmotor (Zeiger-Modul) als Sensor und/oder Aktor zu benutzen.
Nachtrag: Besser Layout, bei dem zwei gleiche PCBs für einen Doppel-Schrittmotor verbunden werden und damit für Zeiger-Module mit einer Achse nur ein einzelnes PCB genutzt wird.

  • Sensor:
    Drehwinkel und Dreggeschwindigkeit ermitteln
  • Aktor:
    Siehe auch Thread: Uhr wie im Ham Yard Hotel in London
  • Sensor und Aktor:
    Doppelachsiger Dreh-Drückgeber mit programmierbarer hapischer Rückmeldung.
    Nachtrag: Das geht vielleicht nicht zufriedenstellend, wenn man sehr langsam dreht, weil der Motor dabei im Open-Loop-Betrieb laufen muss. Die Zeiger-Module haben eine große Über- bzw. Untersetzung, das muss man ausprobieren.

Sehr guter Artikel dazu: Sensorlose Regelung von Schrittmotoren

Realisierung

Um bei hohen Drehzahlen trotz der Induktionsspannungen ausreichend hohe Spannungen für die Schrittmotoren in den VID28-Modulen erzeugen zu können, werden die Schrittmotoren mit bis zu 10V angetrieben. Da hierfür nur 20mA benötigt werden, kommen DA-Umsetzer und Operationsverstärker zum Einsatz, denn sie sind billiger und verursachen weniger Störungen (EMV) als PWM und H-Brücken.

Zur Steuerung wird entweder der µC STM32F030F4P6 (ca. 50ct, 3,3V) oder der STM8S103F3P6 (ca. 25ct, 5,0V) eingesetzt.

STM8S103F3P6 STM32F030F4P6
Versorgung 5V, wie DAC 3,3V, dafür separat für ADC
Remote-Schnittstelle UART (auch zum Debuggen oder für Bootloader) I²C
DMA nein ja

Pin-Belegungen

Pin-Belegung STM32F030F4P6

Pin GPIO µC-Funktion Uhr-Funktion Kommentar
1 BOOT0 (BOOT) Kann über einen Pin auf der Stiftleiste auf 1 gezogen werden, zum flashen
2 PF0 Output RS485-OE Output-Enable des optionalen RS-485-Treibers
3 PF1 Input Taster Taster für die Umsetzung als Dreh-Drück-Bedienelement
4 NRST (BOOT) Kann über einen Pin auf der Stiftleiste auf 0 gezogen werden, zum flashen
5 VDDA (Supply) Analog-Referenzspannung, wird über separaten Spannungsregler erzeugt
6 PA0 ADC_IN0 Shunt 1 Spannungsabfall am Shunt vor der Motor-Wicklung, ±20mA ≙ 0..3,3V
7 PA1 ADC_IN1 Shunt 2 Spannungsabfall am Shunt vor der Motor-Wicklung, ±20mA ≙ 0..3,3V
8 PA2 ADC_IN2 Shunt 3 Spannungsabfall am Shunt vor der Motor-Wicklung, ±20mA ≙ 0..3,3V
9 PA3 ADC_IN3 Shunt 4 Spannungsabfall am Shunt vor der Motor-Wicklung, ±20mA ≙ 0..3,3V
10 PA4 TIM14_CH1 PT8211 - WS Word-Select für Digital-Analog-Umsetzer
11 PA5 SPI1_SCK PT8211 - BCK Bit-Clock für Digital-Analog-Umsetzer, wird per BCK-Select umgeschaltet
12 PA6 TIM14_CH1, ADC_IN6 Hall / Counter Je nach Bestückungsvariante: Spannung ais Hall-Sensor oder Frequenz aus RC-Schwingkreis für das Homing
13 PA7 SPI1_MOSI PT8211 - DIN Data-Input für Digital-Analog-Umsetzer
14 PB1 TIM3_CH4 BCK-Select Umschaltung für das PT8211-BCK-Signal, um zwei DAUs an einem SPI betreiben zu können
15 VSS (Supply) Versorgungs- und Signal-Masse
16 VDD (Supply) Spannungsversorgung, wird über separaten Spannungsregler erzeugt
17 PA9 USART1_TX Bootloader, Debug, RS485 TX TX-Ausgang für USB-VCOM und RS-485
18 PA10 USART1_RX Bootloader, Debug, RS485 RX RX-Eingang für USB-VCOM und RS-485
19 PA13 SWDIO (SWIM) SWIM-Anschluss für ISP und ICD
20 PA14 SWCLK (SWIM) SWIM-Anschluss für ISP und ICD

Pin-Belegung STM8S103F3P6

Pin GPIO µC-Funktion Uhr-Funktion Kommentar
1 D4 TIM2_CH1 Counter Bestückungsvariante: Frequenz aus RC-Schwingkreis für das Homing
2 D5 ADC_IN5 Shunt 4 Spannungsabfall am Shunt vor der Motor-Wicklung, ±20mA ≙ 0..3,3V
3 D6 ADC_IN6 Shunt 3 Spannungsabfall am Shunt vor der Motor-Wicklung, ±20mA ≙ 0..3,3V
4 - NRST (SWIM) SWIM-Anschluss für ISP und ICD
5 A1 Output BCK-Select Umschaltung für das PT8211-BCK-Signal, um zwei DAUs an einem SPI betreiben zu können
6 A2 Input Taster Taster für die Umsetzung als Dreh-Drück-Bedienelement
7 - VSS (Supply) Versorgungs- und Signal-Masse
8 - Reg.-Capa (1.8V-Capa) (externer Kondensator)
9 - VDD (Supply) Spannungsversorgung, über Spannungsregler
10 A3 (frei) (freier Pin)
11 B5 I2C SDA I²C SDA Fernsteuerung der Uhr über I²C
12 B4 I2C SCL I²C SCL Fernsteuerung der Uhr über I²C
13 C3 (frei) (freier Pin)
14 C4 ADC_IN0 Shunt 1 Spannungsabfall am Shunt vor der Motor-Wicklung, ±20mA ≙ 0..3,3V
15 C5 SPI1_SCK PT8211 - BCK Bit-Clock für Digital-Analog-Umsetzer, wird per BCK-Select umgeschaltet
16 C6 SPI1_MOSI PT8211 - DIN Data-Input für Digital-Analog-Umsetzer
17 C7 Output PT8211 - WS Word-Select für Digital-Analog-Umsetzer
18 D1 SWIM (SWIM) SWIM-Anschluss für ISP und ICD
19 D2 ADC_IN3 Shunt 2 Spannungsabfall am Shunt vor der Motor-Wicklung, ±20mA ≙ 0..3,3V
20 D3 ADC_IN4 Hall Bestückungsvariante: Spannung aus Hall-Sensor für das Homing