El componente que destacamos es indispensable en proyectos que involucren el control de motores de 33V. Esto incluye proyectos de automatización, robótica, electrónica integrada y mucho más. Hemos elegido el controlador de puente Texas Instruments DRV8231 H, disponible en Mouser Electronics para cubrir este artículo.

Este artículo se preparó en base a la información de la propia hoja de datos de Mouser Electronics y Texas Instruments a la que se puede acceder en el siguiente enlace.

https://www.mouser.com/new/texas-instruments/ti-drv8231a-h-bridge-driver/

El circuito integrado DRV8231A es un controlador de motor integrado con un puente H de canal N, bomba de carga, sensor de corriente, retroalimentación, regulación de corriente y circuitos de protección.

La bomba de carga mejora la eficiencia al admitir medios puentes MOSFET de canal N y un ciclo de trabajo del 100 %.

Una arquitectura de espejo de corriente interna en el pin IPROPI implementa la detección y regulación de corriente. Esto elimina la necesidad de una gran resistencia de derivación de disipación, lo que ahorra espacio en la placa y reduce el costo del sistema.

La salida de detección de corriente IPROPI permite usar un microcontrolador para detectar el bloqueo del motor o cambios en las condiciones de carga.

El pin de referencia de voltaje externo, VREF, determina el umbral de regulación actual durante los eventos de inicio y parada sin la interacción de un microcontrolador. Un modo de suspensión de baja potencia logra un consumo de corriente ultrabajo en reposo al apagar la mayor parte del circuito. Las características de protección integradas incluyen bloqueo de bajo voltaje, sobrecorriente de salida y dispositivo de sobretemperatura.

El DRV8231A es parte de una familia de dispositivos que vienen en pin a pin, RDS escalable (encendido) y brindan opciones de voltaje para soportar varias cargas y potencia con cambios mínimos de diseño.

 

 

Carcasas

 

En la figura 1 tenemos los gabinetes para este componente.

 

Figura 1 - Carcasas
Figura 1 - Carcasas | Clique na imagem para ampliar |

 

 

HSOP (8) 4,90 mm × 6,00 mm

WSON (8) 2,00 mm × 2,00 mm

(1) Para ver todos los paquetes disponibles, consulte el apéndice de pedidos en final de la hoja de datos.

Las funciones de los pines se detallan en la hoja de datos.

En la figura 2 tenemos el uso típico del dispositivo.

 

Figura 2 - Aplicación típica
Figura 2 - Aplicación típica | Clique na imagem para ampliar |

 

 

Los máximos y mínimos se proporcionan en tablas en la documentación de 46 páginas de Texas Instruments, así como en varios gráficos que detallan el rendimiento del dispositivo.

El circuito de la figura 3 muestra los componentes externos que deben utilizarse en una aplicación típica.

 

Figura 3 - Componentes externos
Figura 3 - Componentes externos | Clique na imagem para ampliar |

 

Para usar con un microcontrolador, la Figura 4 muestra un circuito típico.

 

Figura 4 - Conexiones para microcontrolador
Figura 4 - Conexiones para microcontrolador | Clique na imagem para ampliar |

 

 

Otra aplicación interesante se da en la figura 5 en la que tenemos el uso de un relé como carga, siendo conmutado por un microcontrolador.

 

Figura 5 - Control de un relé
Figura 5 - Control de un relé | Clique na imagem para ampliar |

 

 

Se pueden obtener otras aplicaciones y circuitos de detección de corriente de la hoja de datos. También tenemos información sobre el diseño de la placa y para el control del motor paso a paso.

 

 

18.813MBMemory Usage43.37msRequest Duration
Joomla! Version5.2.3
PHP Version8.3.16
Identityguest
Response200
Templatecassiopeia
Database
Server
mysql
Version
10.5.22-MariaDB
Collation
latin1_swedish_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:51 [ "USER" => "apache" "HOME" => "/usr/share/httpd" "SCRIPT_NAME" => "/index.php" "RE...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1741942407 "last" => 1741942407...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (85.67KB) (225μs)
  • afterInitialise (1.14MB) (3.64ms)
  • afterRoute (90.7KB) (772μs)
  • beforeRenderComponent com_content (100.46KB) (494μs)
  • Before Access::preloadComponents (all components) (33.5KB) (178μs)
  • After Access::preloadComponents (all components) (107.06KB) (706μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (10μs)
  • After Access::preloadPermissions (com_content) (16.19MB) (20.03ms)
  • Before Access::getAssetRules (id:27088 name:com_content.article.30726) (514.65KB) (1.07ms)
  • After Access::getAssetRules (id:27088 name:com_content.article.30726) (7.38KB) (60μs)
  • afterRenderComponent com_content (362.9KB) (7.61ms)
  • afterDispatch (2.25KB) (73μs)
  • beforeRenderRawModule mod_articles_category (Banco de Circuitos) (359.33KB) (2.15ms)
  • afterRenderRawModule mod_articles_category (Banco de Circuitos) (15.43KB) (405μs)
  • beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (141μs)
  • afterRenderRawModule mod_finder (Busca_inteligente) (129.29KB) (1.33ms)
  • beforeRenderModule mod_articles_category (Banco de Circuitos) (10.1KB) (626μs)
  • afterRenderModule mod_articles_category (Banco de Circuitos) (5.39KB) (101μs)
  • beforeRenderModule mod_finder (Busca_inteligente) (6.39KB) (226μs)
  • afterRenderModule mod_finder (Busca_inteligente) (4.44KB) (51μs)
  • afterRender (258.05KB) (3.34ms)
  • 1 x After Access::preloadPermissions (com_content) (16.19MB) (46.18%)
    20.03ms
    1 x afterRenderComponent com_content (362.9KB) (17.55%)
    7.61ms
    1 x afterInitialise (1.14MB) (8.4%)
    3.64ms
    1 x afterRender (258.05KB) (7.7%)
    3.34ms
    1 x beforeRenderRawModule mod_articles_category (Banco de Circuitos) (359.33KB) (4.96%)
    2.15ms
    1 x afterRenderRawModule mod_finder (Busca_inteligente) (129.29KB) (3.06%)
    1.33ms
    1 x Before Access::getAssetRules (id:27088 name:com_content.article.30726) (514.65KB) (2.47%)
    1.07ms
    1 x afterRoute (90.7KB) (1.78%)
    772μs
    1 x After Access::preloadComponents (all components) (107.06KB) (1.63%)
    706μs
    1 x beforeRenderModule mod_articles_category (Banco de Circuitos) (10.1KB) (1.44%)
    626μs
    1 x beforeRenderComponent com_content (100.46KB) (1.14%)
    494μs
    1 x afterRenderRawModule mod_articles_category (Banco de Circuitos) (15.43KB) (0.93%)
    405μs
    1 x beforeRenderModule mod_finder (Busca_inteligente) (6.39KB) (0.52%)
    226μs
    1 x afterLoad (85.67KB) (0.52%)
    225μs
    1 x Before Access::preloadComponents (all components) (33.5KB) (0.41%)
    178μs
    1 x beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (0.32%)
    141μs
    1 x afterRenderModule mod_articles_category (Banco de Circuitos) (5.39KB) (0.23%)
    101μs
    1 x afterDispatch (2.25KB) (0.17%)
    73μs
    1 x After Access::getAssetRules (id:27088 name:com_content.article.30726) (7.38KB) (0.14%)
    60μs
    1 x afterRenderModule mod_finder (Busca_inteligente) (4.44KB) (0.12%)
    51μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.02%)
    10μs
21 statements were executed, 5 of which were duplicates, 16 unique11.51ms1.55MB
  • SELECT @@SESSION.sql_mode;34μs968B/libraries/src/Session/MetadataManager.php:184Copy
  • SELECT `session_id` FROM `incbmx_session` WHERE `session_id` = :session_id LIMIT 191μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `incbmx_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)165μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `incbmx_viewlevels`47μs656B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `incbmx_usergroups` AS `a` LEFT JOIN `incbmx_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest73μs1.64KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`191μs3.86KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `incbmx_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39)552μs7.44KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `incbmx_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 07.59ms1.46MBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `incbmx_content`418μs2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `incbmx_content` SET `hits` = (`hits` + 1) WHERE `id` = '30726'284μs48B/libraries/src/Table/Table.php:1348Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `incbmx_content` AS `a` INNER JOIN `incbmx_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `incbmx_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `incbmx_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `incbmx_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `incbmx_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)249μs22.13KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`210μs3.91KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `incbmx_contentitem_tag_map` AS `m` INNER JOIN `incbmx_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)248μs3.97KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`167μs3.91KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM incbmx_fields AS a LEFT JOIN `incbmx_languages` AS l ON l.lang_code = a.language LEFT JOIN incbmx_users AS uc ON uc.id=a.checked_out LEFT JOIN incbmx_viewlevels AS ag ON ag.id = a.access LEFT JOIN incbmx_users AS ua ON ua.id = a.created_user_id LEFT JOIN incbmx_fields_groups AS g ON g.id = a.group_id LEFT JOIN `incbmx_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2)) AND `a`.`access` IN (:preparedArray3,:preparedArray4)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray5,:preparedArray6)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC397μs4.75KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`222μs3.91KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `incbmx_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1196μs1.89KB/administrator/components/com_finder/src/Helper/LanguageHelper.php:135Copy
  • SELECT `title` FROM `incbmx_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)91μs648B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM `incbmx_schemaorg` WHERE `itemId` = :itemId AND `context` = :context68μs1.55KBParams/plugins/system/schemaorg/src/Extension/Schemaorg.php:403Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `incbmx_content` AS `a` INNER JOIN `incbmx_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `incbmx_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `incbmx_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `incbmx_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `incbmx_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)147μs22.17KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `incbmx_scheduler_tasks` AS `a` WHERE `a`.`state` = 167μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:465Copy