1 votos

¿Cómo accionar 3 semipuentes utilizando el menor número posible de clavijas?

Estoy trabajando en un pequeño controlador BLDC y el microcontrolador sólo tiene 12 pines utilizables para empezar, así que estoy tratando de encontrar maneras de ahorrar un poco. La forma directa de conducir un medio puente es con un par de pines, uno para el alto y uno para el lado bajo MOSFET. Para un driver trifásico son seis pines, pero esos pines no mostrarán toda la gama de patrones de bits. Por ejemplo, generalmente no quieres ver los MOSFETs de lado alto y bajo activos al mismo tiempo.

Efectivamente, de los 2^6 estados sólo nos preocupamos de 6 mientras el motor está en marcha y añadimos otro para cuando está parado. Eso cabe en 3 bits así que debería ser posible usar 3 pines para conmutar los MOSFETs, pero aquí es donde estoy atascado. ¿Existen ya dispositivos que hagan esto de forma rutinaria? Si quisiera implementar esto usando componentes lógicos, ¿cómo lo haría?

Esta es la tabla de verdad que estoy tratando de comprimir :

Paso

AH

AL

BH

BL

CH

CL

Nota

1

1

0

0

0

0

1

2

1

0

0

1

0

0

3

0

0

0

1

1

0

4

0

1

0

0

1

0

5

0

1

1

0

0

0

6

0

0

1

0

0

1

7

0

0

0

0

0

0

No conducir

3voto

AitorTheRed Puntos 241

Si usted está dispuesto a considerar la codificación Gray de su IO entonces:

$$\begin{array}{c|c} \text{States} & \text{Drive Outputs}\\\hline {\begin{smallmatrix}\begin{array}{cccc} IO_2 & IO_1 & IO_0\\\\ 0&0&1\\ 0&1&1\\ 0&1&0\\ 1&1&0\\ 1&1&1\\ 1&0&1\\ x&0&0 \end{array}\end{smallmatrix}} & {\begin{smallmatrix}\begin{array}{cccccc} AH & AL & BH & BL & CH & CL\\\\ 1&0&0&0&0&1\\ 1&0&0&1&0&0\\ 0&0&0&1&1&0\\ 0&1&0&0&1&0\\ 0&1&1&0&0&0\\ 0&0&1&0&0&1\\ 0&0&0&0&0&0\\ \end{array}\end{smallmatrix}} \end{array}$$

Entonces, si no metí la pata, sigue eso:

$$\begin{array}{r|l} \text{Drive Output} & \text{Logic}\\\hline {\begin{smallmatrix}\begin{array}{l} AH\vphantom{\overline{IO_2}\:\cdot\: IO_0}\\ AL\vphantom{IO_2\:\cdot\: IO_1}\\ BH\vphantom{IO_2\:\cdot\: IO_0}\\ BL\vphantom{\overline{IO_2}\:\cdot\: IO_1}\\ CH\vphantom{IO_1\:\cdot\: \overline{IO_0}}\\ CL\vphantom{\overline{IO_1}\:\cdot\: IO_0} \end{array}\end{smallmatrix}} & {\begin{smallmatrix}\begin{array}{c} \overline{IO_2}\:\cdot\: IO_0\\ IO_2\:\cdot\: IO_1\\ IO_2\:\cdot\: IO_0\\ \overline{IO_2}\:\cdot\: IO_1\\ IO_1\:\cdot\: \overline{IO_0}\\ \overline{IO_1}\:\cdot\: IO_0 \end{array}\end{smallmatrix}} \end{array}$$

Si esto ayuda o no, es otra cuestión. Pero puede permitirte conseguir una PAL realmente barata (si es que todavía fabrican algo así) o usar alguna lógica externa simple. Son solo seis compuertas AND.

Además, sólo es necesario cambiar un pin IO cada vez. Lo que creo que mejora un poco la idea.

(Por cierto, esta pregunta me retrotrae a 1974, cuando diseñaba mi primera CPU con lógica 7400 y me peleaba con el decodificador de instrucciones. Si no hubiera aprendido entonces a disfrutar con este tipo de preguntas, estoy seguro de que me habría rendido y habría fracasado).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X