La Maxim (www.maxim-ic.com) en su Application Note 1931 presenta un interesante circuito de un preamplificador de audio de alta fidelidad de precisión, alimentado por la USB de un PC. En este artículo se describe cómo implementar el circuito asociado a la edición de música a través de la computadora.

Utilizando un amplificador operacional de bajo ruido cuádruple además de un regulador de tensión de baja caída de tensión LDO, es posible implementar un preamplificador con ecualización RIAA para la edición de señales de discos, que se pueden grabar en CD en un ordenador.

Este tipo de ecualización no es muy común actualmente, dado el uso de los CDs, pero son muchas las personas que poseen antiguos discos de vinilo y desean pasar su contenido a CDs lo que requiere un circuito como el que describimos.

El circuito tiene la ventaja de poder ser alimentado por la tensión de 5 V del puerto USB que se reduce a 3,3 V a través de un LDO en la configuración mostrada en la figura 1.

 


 

 

 

Otra ventaja que debe ser resaltada es que, además de no usar fuente externa la alimentación no necesita ser simétrica.

En la figura 2 tenemos el circuito del preamplificador que es alimentado por una tensión de 3,3 V.

 


| Haga click en la imagen para ampliar |

 

 

El circuito integrado utilizado es de bajo ruido, tipo rail-to-rail con una elevada tasa de rechazo de ruido que llega a los 120 dB.

En la figura 3 tenemos la curva de respuesta de ese circuito, que es justamente la de ecualización. RIAA usada en los antiguos discos de vinilo.

 


| Haga click en la imagen para ampliar |

 

 

Los capacitores de alto valor pueden ser de tántalo o electrolíticos comunes de aluminio. Los capacitores de menor valor deben tener una tolerancia del 2,5% para que la curva de ecualización se mantenga lo más fiel posible. Los capacitores comunes se pueden seleccionar para obtener los que tengan los valores más cercanos a los ideales.

Los resistores también deben ser de 1% de tolerancia de película metálica, para que el nivel de ruido sea el menor posible.

En el montaje, se debe tener mucho cuidado con el ruido de la red de energía, ya que se trata de circuito de alta ganancia.

La ganancia del circuito en 1 kHz es de 40 dB (100), lo que significa que una señal de 5 mV de una cápsula de disco común proporcionará una señal de salida de 500 mV.

En las bajas frecuencias la ganancia es mayor llegando a 60 dB (1000) a 20 Hz.

Para cambiar la ganancia, basta con modificar la resistencia de 100 k ohmios en la retroalimentación de la segunda etapa de preamplificación.

El consumo del circuito es extremadamente bajo, no sobrecargando el puerto USB que puede seguir siendo utilizado para otras aplicaciones en la comunicación entre periféricos.

La información sobre las características de los componentes usados y el pinado, para el diseño de la placa de circuito impreso, puede obtenerse en el sitio web de Maxim.

 

 

18.929MBMemory Usage38.17msRequest Duration
Joomla! Version5.2.3
PHP Version8.3.20
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
array:1 [ "c2123392c06423339225f3431360b7e6" => "i9tr7tk1tlpe2k0b1hkic5kri7" ]
$_SERVER
array:50 [ "USER" => "apache" "HOME" => "/usr/share/httpd" "PATH_TRANSLATED" => "redirect:/ind...
session
array:3 [ "counter" => 4 "timer" => array:3 [ "start" => 1752114678 "last" => 1752114680...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (85.66KB) (316μs)
  • afterInitialise (1.14MB) (3.53ms)
  • afterRoute (179.16KB) (885μs)
  • beforeRenderComponent com_content (100.69KB) (433μs)
  • Before Access::preloadComponents (all components) (33.45KB) (205μs)
  • After Access::preloadComponents (all components) (107.06KB) (352μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (8μs)
  • After Access::preloadPermissions (com_content) (16.22MB) (18.24ms)
  • Before Access::getAssetRules (id:18756 name:com_content.article.22605) (514.65KB) (577μs)
  • After Access::getAssetRules (id:18756 name:com_content.article.22605) (7.38KB) (32μs)
  • afterRenderComponent com_content (376.5KB) (6.26ms)
  • afterDispatch (2.25KB) (51μs)
  • beforeRenderRawModule mod_articles_category (Banco de Circuitos) (358.44KB) (1.58ms)
  • afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (330μs)
  • beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (91μs)
  • afterRenderRawModule mod_finder (Busca_inteligente) (64.9KB) (1.14ms)
  • beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (546μs)
  • afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (68μs)
  • beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (189μs)
  • afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (50μs)
  • afterRender (249.75KB) (3.18ms)
  • 1 x After Access::preloadPermissions (com_content) (16.22MB) (47.78%)
    18.24ms
    1 x afterRenderComponent com_content (376.5KB) (16.39%)
    6.26ms
    1 x afterInitialise (1.14MB) (9.24%)
    3.53ms
    1 x afterRender (249.75KB) (8.34%)
    3.18ms
    1 x beforeRenderRawModule mod_articles_category (Banco de Circuitos) (358.44KB) (4.13%)
    1.58ms
    1 x afterRenderRawModule mod_finder (Busca_inteligente) (64.9KB) (2.99%)
    1.14ms
    1 x afterRoute (179.16KB) (2.32%)
    885μs
    1 x Before Access::getAssetRules (id:18756 name:com_content.article.22605) (514.65KB) (1.51%)
    577μs
    1 x beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (1.43%)
    546μs
    1 x beforeRenderComponent com_content (100.69KB) (1.13%)
    433μs
    1 x After Access::preloadComponents (all components) (107.06KB) (0.92%)
    352μs
    1 x afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (0.86%)
    330μs
    1 x afterLoad (85.66KB) (0.83%)
    316μs
    1 x Before Access::preloadComponents (all components) (33.45KB) (0.54%)
    205μs
    1 x beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (0.5%)
    189μs
    1 x beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (0.24%)
    91μs
    1 x afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (0.18%)
    68μs
    1 x afterDispatch (2.25KB) (0.13%)
    51μs
    1 x afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (0.13%)
    50μs
    1 x After Access::getAssetRules (id:18756 name:com_content.article.22605) (7.38KB) (0.08%)
    32μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.02%)
    8μs
21 statements were executed, 5 of which were duplicates, 16 unique10.52ms1.58MB
  • SELECT @@SESSION.sql_mode;31μs968B/libraries/src/Session/MetadataManager.php:184Copy
  • SELECT `session_id` FROM `incbmx_session` WHERE `session_id` = :session_id LIMIT 158μs1.31KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • UPDATE `incbmx_session` SET `guest` = :guest , `time` = :time , `userid` = :user_id , `username` = :username , `client_id` = :client_id WHERE `session_id` = :session_id54μs992BParams/libraries/src/Session/MetadataManager.php:316Copy
  • SELECT `id`,`rules` FROM `incbmx_viewlevels`50μs608B/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` = :guest72μ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`226μs20.2KBParams/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)207μ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.39ms1.48MBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `incbmx_content`340μs2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `incbmx_content` SET `hits` = (`hits` + 1) WHERE `id` = '22605'150μ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)159μ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`178μs3.92KBParams/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)308μs4KBParams/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`174μs3.92KBParams/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,:preparedArray3)) AND `a`.`access` IN (:preparedArray4,:preparedArray5)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray6,:preparedArray7)) 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 ASC389μs4.81KBParams/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`172μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `incbmx_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1155μ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)99μs648B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM `incbmx_schemaorg` WHERE `itemId` = :itemId AND `context` = :context64μ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)167μ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` = 175μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:465Copy