Forum: Mikrocontroller und Digitale Elektronik STM32 und L293D - Zusammengelegte Inputs


von Jan (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

ich möchte einen L293DD mit einem STM32F103 ansteuern, um DC-Motoren zu 
betreiben. (Siehe Schaltplan)

Am L293d sollen zwei Motoren hängen, die sich gleich bewegen, daher habe 
ich die korrespondierenden Inputs zusammen gelegt (In1/in4, In2/in3).

Da der L293D mit 5v arbeitet, aber der STM32 mit 3.3v habe ich für die 
Ansteuerung Transistoren vorgeschaltet. - Um zusätzlich Pins am MCU zu 
sparen wollte ich mit einem PNP-Transistor das einkommende Signal 
negieren, sodass ich mit einer Leitung die Richtung bestimmen kann. (Um 
beim L293D eine Richtung anzugeben, muss ein Input für einen Kanal HIGH 
und der andere LOW sein.)

Ich hoffe man versteht mein vorhaben und den Schaltplan. Funktioniert 
das so wie ich es mir gedacht habe? Ich habe leider keine Erfahrung mit 
Transistoren, deswegen würde ich mich freuen, wenn jemand den Plan 
korrigieren kann.
Ebenso, kann mir jemand Transistoren vorschlagen, welche dafür verwenden 
kann? Ich benötige welche im SMD format - bei Reichelt wurde ich leider 
von dem Angebot und meinem Fehlenden wissen erschlagen.

Vielen Dank für eure Hilfe.

Mfg,
Jan

von Bauform B. (bauformb)


Lesenswert?

Die 100k sind schon verdammt hochohmig, besonders für das PWM-Signal. 
Die 500R könnten zum Ausgleich ruhig 10mal hochohmiger werden.

Aber das ist alles egal, weil ein 74HCT00 (mit T) die Transistoren und 
die Widerstände drum herum ersetzen kann. Der bekommt die 5V-Versorgung 
vom L293 und hat Eingänge, die zu den 3.3V vom STM32 passen. Zwei 
Widerstände an PWM_M_EN und M_DIR braucht man trotzdem noch, damit die 
Signale auch dann stabil sind, wenn der STM32 gerade programmiert wird 
oder während Reset. Je nachdem, was der Motor dann machen soll, müssen 
das Pull-Up und/oder Pull-Down werden.

von Jan (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

Danke für deine Antwort, ich habe darüber nachgedacht - meinst du so wie 
auf meinem Angehängten Bild zu sehen? (Pullup Widerstände an den 
Signalen habe ich vergessen)
Wenn ich den ersten Ausgang rückkoppele und ihn als Eingang für den 
zweiten Kanal verwende, sollte es doch funktionieren, dass ich das eine 
einkommende Signal multiplexen kann, oder?
Laut der Wahrheitstabelle ergibt zweil mal HIGH LOW am Ausgang, das 
würde doch auch bedeuten, dass der Duty Cycle vom PWM invertiert ist, 
wäre das nicht blöd?

Aber der Verständis wegen, würde meine NPN/PNP kombination 
funktionieren?

Danke für die Hilfe.

Mfg,
Jan

von Stefan F. (Gast)


Lesenswert?

Der L293 erwartet bei High Pegel mindestens 2,3 Volt. Die liefert dein 
STM32 aber ganz locker ohne Pegelwandler.

> Wenn ich den ersten Ausgang rückkoppele und ihn als Eingang für den
> zweiten Kanal verwende, sollte es doch funktionieren, dass ich das eine
> einkommende Signal multiplexen kann, oder?

Kommt drauf an, was du vorhast. Durch dieses Konstrukt bewirkst du, dass 
beide Motoren immer gleichzeitig laufen, aber in entgegengesetzte 
Richtung. Das kannst du auch einfacher haben: Einen Motor anders herum 
anschliessen ( Plus und Minus vertauschen).

von Stefan F. (Gast)


Lesenswert?

Jan schrieb:
> Ebenso, kann mir jemand Transistoren vorschlagen, welche dafür verwenden
> kann?

Ziemlich egal. Zum Beispiel BC848 / BC858.

von Jan (Gast)


Lesenswert?

Stefanus F. schrieb:
> Der L293 erwartet bei High Pegel mindestens 2,3 Volt. Die liefert dein
> STM32 aber ganz locker ohne Pegelwandler.

Ich habe von leuten gelesen, die damit Probleme hatten, daher wollte ich 
vorsorglich den Pegelwandler einbauen, nicht dass ich mich nach dem 
Ätzen drüber ärgere das nichts funktioniert.

Stefanus F. schrieb:
> Kommt drauf an, was du vorhast. Durch dieses Konstrukt bewirkst du, dass
> beide Motoren immer gleichzeitig laufen, aber in entgegengesetzte
> Richtung. Das kannst du auch einfacher haben: Einen Motor anders herum
> anschliessen ( Plus und Minus vertauschen).
Das ist mein Plan - ich will zwei L293D verwenden, um 4 Motoren 
anzusteuern, zwei davon sollen in die gleiche Richtung.
Das mit dem invertieren ist dafür gedacht, dass jeweils immer ein Input 
HIGH, und der andere LOW ist.

Stefanus F. schrieb:
> Ziemlich egal. Zum Beispiel BC848 / BC858.

danke für den Tipp

von Stefan F. (Gast)


Lesenswert?

Jan schrieb:
> Ich habe von leuten gelesen, die damit Probleme hatten

Die müssen irgend etwas falsch gemacht haben.

Du kannst übrigens auch 5V tolerante Ausgänge (die SRM32 haben davon 
viele) im Open-Drain Modus verwenden und mit einem externen Pull-Up 
Widerstand auf 5V hoch ziehen, wenn du unbedingt willst.

von Jan (Gast)


Lesenswert?

hmm, dann müsste ich auf das "multiplexen" verzichen, wenn ich es ohne 
Transistoren machen würde.
Ich habe mir das Datasheet nochmal angesehen. 
(https://www.mouser.de/datasheet/2/389/l293d-954810.pdf)

Dort steht "High Voltage Input Curren 0.1ma" und 2.3v für HIGH. Dann 
sollte es eigentlich wirklich unnötig sein, ein Levelshift 
vorzuschalten. Du hast vermutlich recht, und die Probleme lagen wo 
anderst. Danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.