{"id":32678,"date":"2021-09-05T13:32:22","date_gmt":"2021-09-05T13:32:22","guid":{"rendered":"https:\/\/driverbr.com\/?p=32678"},"modified":"2024-02-16T13:29:14","modified_gmt":"2024-02-16T13:29:14","slug":"opcoes-ftdibus-inf-dispositivos-de-tecnologia-futuros-international-ltd-aplicativo-nota-an_107-opcoes-avancadas-do-driver","status":"publish","type":"post","link":"https:\/\/driverbr.com\/?p=32678","title":{"rendered":"Op\u00e7\u00f5es ftdibus.inf. Dispositivos de tecnologia futuros International Ltd. Aplicativo Nota An_107. Op\u00e7\u00f5es avan\u00e7adas do driver"},"content":{"rendered":"<p><strong>5. Op\u00e7\u00f5es ftdibus.inf.<\/strong><\/p>\n<p>Algumas op\u00e7\u00f5es de configura\u00e7\u00e3o padr\u00e3o s\u00e3o configur\u00e1veis \u200b\u200batrav\u00e9s de ftdibus.inf. Esta se\u00e7\u00e3o descreve as op\u00e7\u00f5es dispon\u00edveis e como implement\u00e1-las.<\/p>\n<p><strong>Ajustando a contagem de repeti\u00e7\u00e3o de tubos de reset<\/strong><\/p>\n<p>Em alguns casos raros, pode ser necess\u00e1rio aumentar o n\u00famero de vezes que o driver tenta redefinir um tubo USB no qual ocorreu um erro, por exemplo, em ambientes barulhentos em que os erros USB podem ocorrer.<\/p>\n<p>O valor padr\u00e3o para a contagem de repeti\u00e7\u00e3o do tubo de reset \u00e9 50. Este valor padr\u00e3o pode ser alterado no arquivo ftdibus.inf editando ou incluindo o seguinte fragmento.<\/p>\n<p>[Ftdibus.nt.addservice]<br \/>\nAddreg = ftdibus.nt.addservice.addreg [ftdibus.nt.addservice.addreg] HKR, par\u00e2metros, &#8220;RetryresetCount&#8221;, 0x00010001,100<br \/>\nNeste exemplo, a solicita\u00e7\u00e3o de tubula\u00e7\u00e3o de reset \u00e9 definida como 100. Esse valor \u00e9 mantido na chave do Registro localizada em:<br \/>\nHKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ Services \\ FTDIBUS \\ Parameters \\ RetryresetCoun T<\/p>\n<p><strong>Usando IDs de localiza\u00e7\u00e3o.<\/strong><\/p>\n<p>Em algumas \u00e1reas de aplica\u00e7\u00e3o, pode ser desej\u00e1vel instalar dispositivos por local f\u00edsico em vez de n\u00famero de s\u00e9rie. Nessas inst\u00e2ncias, isso pode ser realizado usando a entrada dos Loc\u00eddicos no arquivo INF do Driver.<br \/>\nO driver usa loc\u00eddeos para definir o conjunto de portas USB suportadas. Pode ser usado em sistemas que exigem apenas determinadas portas USB dispon\u00edveis, talvez em conjunto com MaxDEVs. O comportamento padr\u00e3o \u00e9 que todas as portas USB s\u00e3o suportadas. O padr\u00e3o pode ser substitu\u00eddo, incluindo Locids na se\u00e7\u00e3o Chave de Servi\u00e7o Ftdibus.inf.<\/p>\n<p>[Ftdibus.nt.addservice]<br \/>\nAddreg = ftdibus.nt.addservice.addreg [ftdibus.nt.addservice.addreg] HKR, par\u00e2metros, &#8220;Locados&#8221;, 1,21,00,00,00,00,00,00,00,00,00,00,00,00, 00,00.<br \/>\nNeste exemplo, infra\u00e7\u00f5es de arquivos inf, tr\u00eas portas USB s\u00e3o suportadas. Localiza\u00e7\u00e3o ID 0x00000021 Representa o controlador de host 1 Porta 1. ID de local 0x00000032 Representa o controlador do host 2 Porta 2.<br \/>\nID de localiza\u00e7\u00e3o 0x00000011 Representa o controlador do host 0 Porta 1. Este valor \u00e9 realizado na chave do Registro localizada em<br \/>\nHKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ Services \\ FTDIBUS \\ Parameters \\ Locids<\/p>\n<p><strong>Note que a defini\u00e7\u00e3o de Locais alterar\u00e1 radicalmente o comportamento do motorista; Entre em contato com o FTDI.<\/strong><\/p>\n<p><strong>Se voc\u00ea acha que tem que mudar os locais.<\/strong><\/p>\n<p>Os IDs de localiza\u00e7\u00e3o podem ser obtidos usando a vers\u00e3o mais recente do Utilit\u00e1rio USBView dispon\u00edvel na se\u00e7\u00e3o Utilit\u00e1rios do site da FTDI. Uma nota de aplicativo no local IDS AN232B-07 Configurando os drivers VCP do FTDI para usar o ID do local tamb\u00e9m est\u00e1 dispon\u00edvel.<\/p>\n<p>O USBView pode ser configurado para mostrar IDs de localiza\u00e7\u00e3o selecionando Op\u00e7\u00f5es&gt; IDs de localiza\u00e7\u00e3o. A tela disparou abaixo mostra um PC com um hub conectado \u00e0 localiza\u00e7\u00e3o 0x0000002a e dispositivos conectados nos locais 0x00000019 e 0x00002A3.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-32679 size-full\" src=\"https:\/\/driverbr.com\/wp-content\/uploads\/2021\/09\/img169.jpg\" alt=\"Figura 5.1 Vista USB\" width=\"689\" height=\"571\" srcset=\"https:\/\/driverbr.com\/wp-content\/uploads\/2021\/09\/img169.jpg 689w, https:\/\/driverbr.com\/wp-content\/uploads\/2021\/09\/img169-300x249.jpg 300w, https:\/\/driverbr.com\/wp-content\/uploads\/2021\/09\/img169-560x464.jpg 560w, https:\/\/driverbr.com\/wp-content\/uploads\/2021\/09\/img169-260x215.jpg 260w, https:\/\/driverbr.com\/wp-content\/uploads\/2021\/09\/img169-160x133.jpg 160w\" sizes=\"auto, (max-width: 689px) 100vw, 689px\" \/><\/p>\n<p>Figura 5.1 Vista USB<\/p>\n<p>As entradas INF para os dispositivos conectados a estas portas seriam [ftdibus.nt.addservice.addreg] HKR, par\u00e2metros, &#8220;Locids&#8221;, 1.19,00,00,00,00,2a, 00,00,00<br \/>\nPor favor, note que a entrada INF deve terminar com uma entrada 00 adicional para encerrar a lista de ID de localiza\u00e7\u00e3o.<br \/>\nSe uma tentativa for feita para instalar um dispositivo em um local que n\u00e3o seja suportado, um erro de c\u00f3digo 10 (&#8220;Este dispositivo n\u00e3o pode iniciar&#8221;) \u00e9 gerado para o novo dispositivo.<\/p>\n<p>Observe que os IDs de local s\u00e3o representados no campo Loc\u00eddicos como 4 bytes hexadecimais e em byte invertidos<br \/>\npedido.<\/p>\n<p>Nota tamb\u00e9m que, embora em controladores host USB sejam indexados de 0 e portas de 1, os IDs de local s\u00e3o calculados ajustando o n\u00famero do controlador do host para que ele seja indexado de 1<\/p>\n<p><strong>Limitando o n\u00famero de portas COM que podem ser instaladas<\/strong><\/p>\n<p>O n\u00famero de portas COM Virtual FTDI que podem ser instaladas em um sistema podem ser limitadas definindo o par\u00e2metro MaxDEVS. MaxDevs padroniza para 0, o que significa que o recurso \u00e9 desativado e o driver sempre tentar\u00e1 criar uma porta COM. O padr\u00e3o pode ser substitu\u00eddo, incluindo um valor m\u00e1ximo maxdevs na se\u00e7\u00e3o de tecla de servi\u00e7o ftdibus.inf.<\/p>\n<p>[Ftdibus.nt.addservice]<\/p>\n<p>Addreg = ftdibus.nt.addservice.addreg [ftdibus.nt.addservice.addreg] hkr, par\u00e2metros, &#8220;maxdevs&#8221;, 0x00010001,3<br \/>\nNeste exemplo, o n\u00famero m\u00e1ximo de dispositivos \u00e9 definido como 3. Esse valor \u00e9 mantido na chave do Registro localizada em<br \/>\nHKEY_LOCAL_MACHINE \\ System \\ CurrentControlSet \\ Services \\ FTDIBUS \\ Parameters \\ MaxDevs<br \/>\nSe uma tentativa for feita para instalar mais do que dispositivos MaxDEVs, um erro de c\u00f3digo 10 (&#8220;Este dispositivo n\u00e3o pode iniciar&#8221;) \u00e9 gerado para o novo dispositivo.<br \/>\nObserve que a configura\u00e7\u00e3o de MaxDevs para um valor diferente de zero alterar\u00e1 radicalmente o comportamento do driver; Entre em contato com o FTDI se achar que tem que mudar a MaxDevs.<\/p>\n<p><strong>Substituir a configura\u00e7\u00e3o do driver EEPROM<\/strong><\/p>\n<p>No caso se dispositivos FT232R, FT245R e FT2232, o driver ler\u00e1 o dispositivo EEPROM para determinar se deseja expor uma porta COM ou n\u00e3o. Os dispositivos anteriores da s\u00e9rie B e AM n\u00e3o possuem uma configura\u00e7\u00e3o EEPROM para o tipo de driver, portanto, o padr\u00e3o para instalar uma porta COM. Esse recurso pode ser desligado e a escolha do driver para carga pode ser feita por meio de uma configura\u00e7\u00e3o no arquivo de instala\u00e7\u00e3o.<\/p>\n<p>Para uma instala\u00e7\u00e3o padr\u00e3o, as se\u00e7\u00f5es a seguir podem ser adicionadas ao ftdibus.inf para substituir a configura\u00e7\u00e3o EEPROM e carregar o driver VCP:<br \/>\n[Ftdibus.nt.hw] addreg = ftdibus.nt.hw.addreg [ftdibus.ntamd64.hw] addreg = ftdibus.nt.hw.addreg [ftdibus.nt.hw.addreg] HKR ,, &#8220;CONFIGDATA&#8221;, 0x00010001, 4.<br \/>\nBit 2 do par\u00e2metro ConfigData determina o driver a ser carregado: Se estiver definido como 1, o driver VCP ser\u00e1 carregado (como no exemplo acima); Caso contr\u00e1rio, apenas o driver D2XX \u00e9 carregado. Portanto, adicionando as se\u00e7\u00f5es acima ao arquivo de instala\u00e7\u00e3o e, em particular, configurando o valor do ConfigData para 4, far\u00e1 com que o driver VCP seja carregado, independentemente das configura\u00e7\u00f5es do EEPROM.<\/p>\n<p>Este m\u00e9todo pode ser estendido para o dispositivo Dual Channel FT2232. Nesse caso, novas se\u00e7\u00f5es devem ser criadas para cada canal para permitir que os canais sejam configurados e instalados separadamente. Os fragmentos a seguir mostram as altera\u00e7\u00f5es adicionais necess\u00e1rias para configurar o canal A apenas para carregar o driver D2XX e o canal B para carregar o driver VCP.<\/p>\n<p>[Ftdihw]<br \/>\n% USB \\ vid_0403 &amp; pid_6010 &amp; mi_00.devicedesc% = ftdibusa, USB \\ vid_0403 &amp; pid_6010 &amp; mi_00<br \/>\n% USB \\ vid_0403 &amp; pid_6010 &amp; mi_01.devicedesc% = ftdibusb, USB \\ vid_0403 &amp; pid_6010 &amp; mi_01 [ftdihw.ntamd64]<br \/>\n% USB \\ vid_0403 &amp; pid_6010 &amp; mi_00.devicedesc% = ftdibusa.ntamd64, USB \\ vid_0403 &amp; pid_6010 &amp; mi_00<br \/>\n% USB \\ vid_0403 &amp; pid_6010 &amp; mi_01.devicedesc% = ftdibusb.ntamd64, USB \\ vid_0403 &amp; pid_6010 &amp; mi_01 [ftdibusa.nt]<\/p>\n<p>CopyFiles = ftdibus.nt.copy, ftdibus.nt.copy2 addreg = ftdibusa.nt.addreg [ftdibusa.ntamd64]<br \/>\nCopyFiles = ftdibus.ntamd64.copy, ftdibus.ntamd64.copy2, ftdibus.ntamd64.copy3 addreg = ftdibusa.nt.addreg<br \/>\n[Ftdibusa.nt.hw] addreg = ftdibusa.nt.hw.addreg [ftdibusa.ntamd64.hw] addreg = ftdibusa.nt.hw.addreg [ftdibusa.nt.hw.addreg] HKR ,, &#8220;ConfigData&#8221;, 0x00010001, 0 [ftdibusa.nt.services]<\/p>\n<p>Addservice = ftdibus, 0x00000002, ftdibus.nt.addservice [ftdibusa.ntamd64.services]<\/p>\n<p>Addservice = ftdibus, 0x00000002, ftdibus.nt.addservice [ftdibusb.nt] copyfiles = ftdibus.nt.copy, ftdibus.nt.copy2 addreg = ftdibusb.nt.addreg<br \/>\n[Ftdibusb.ntamd64] copyfiles = ftdibus.ntamd64.copy, ftdibus.ntamd64.copy2, ftdibus.ntamd64.copy3 addreg = ftdibusb.nt.addreg<br \/>\n[Ftdibusb.nt.hw] addreg = ftdibusa.nt.hw.addreg [ftdibusb.ntamd64.hw] addreg = ftdibusa.nt.hw.addreg [ftdibusb.nt.hw.addreg] HKR ,, &#8220;CONFIGDATA&#8221;, 0x00010001, 4 [ftdibusb.nt.services]<\/p>\n<p>Addservice = ftdibus, 0x00000002, ftdibus.nt.addservice [ftdibusb.ntamd64.services]<br \/>\nAddservice = ftdibus, 0x00000002, ftdibus.nt.addservice<\/p>\n<p>Observe que o valor do ConfigData \u00e9 definido como 0 para o canal A (D2XX) e o valor do configData \u00e9 definido como 4 para o canal B (VCP) para obter a configura\u00e7\u00e3o necess\u00e1ria. Claro, se o ConfigData n\u00e3o estiver inclu\u00eddo no arquivo de instala\u00e7\u00e3o, as configura\u00e7\u00f5es do EEPROM determinar\u00e3o qual driver \u00e9 carregado.<\/p>\n<p>O par\u00e2metro ConfigData \u00e9 realizado no registro sob a chave<\/p>\n<p>HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControls et \\ enum \\ usb {vid do dispositivo, pid e interface} {n\u00famero de s\u00e9rie} \\ DeviceParameters \\ configdata<\/p>\n<p>A porta COM tamb\u00e9m pode ser suprimida ap\u00f3s a instala\u00e7\u00e3o atrav\u00e9s da guia Avan\u00e7ado da p\u00e1gina de propriedades do conversor de serial USB, que est\u00e1 dispon\u00edvel atrav\u00e9s do Gerenciador de dispositivos.<\/p>\n<p><strong>Tempo limite de USB.<\/strong><\/p>\n<p>O tempo limite USB \u00e9 o tempo m\u00e1ximo em milissegundos que uma solicita\u00e7\u00e3o USB pode permanecer em circula\u00e7\u00e3o. \u00c9 improv\u00e1vel que isso precise ser alterado do valor padr\u00e3o de 5000ms.<\/p>\n<p>Este tempo limite USB (em milissegundos) \u00e9 configur\u00e1vel atrav\u00e9s do arquivo Ftdibus Inf nos fragmentos INF mostrados abaixo:<br \/>\n[Ftdibus.nt.hw] addreg = ftdibus.nt.hw.addreg [ftdibus.ntamd64.hw] addreg = ftdibus.nt.hw.addreg [ftdibus.nt.hw.addreg]<br \/>\nHKR, &#8220;USBTimeout&#8221;, 0x00010001,5000<br \/>\nque corresponde \u00e0 entrada do registro<\/p>\n<p>HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ Enum \\ USB {DISPOSITIVO VID, PID e<br \/>\nInterface} {n\u00famero de s\u00e9rie} \\ DeviceParameters \\ usbtimeout<br \/>\nO valor padr\u00e3o para o tempo limite USB \u00e9 de 5 segundos (5000ms).<\/p>\n<p>Desativar Escreve EEPROM.<\/p>\n<p>Em alguns casos, pode ser desej\u00e1vel desativar a capacidade de escrever no dispositivo EEPROM. Isso pode ser realizado atrav\u00e9s de um bit configData no arquivo Ftdibus Inf.<br \/>\nO driver pode ser feito para ignorar quaisquer solicita\u00e7\u00f5es de grava\u00e7\u00e3o EEPROM, definindo bit 0 do campo ConfigData, conforme mostrado no fragmento INF abaixo:<br \/>\n[Ftdibus.nt.hw] addreg = ftdibus.nt.hw.addreg [ftdibus.ntamd64.hw] addreg = ftdibus.nt.hw.addreg [ftdibus.nt.hw.addreg]<br \/>\nHKR, &#8220;CONFIGDATA&#8221;, 0x00010001,1<br \/>\nque corresponde \u00e0 chave do registro<br \/>\nHKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ Enum \\ USB \\ {dispositivo vid, pid e interface} \\ {n\u00famero de s\u00e9rie} \\ DeviceParameters \\ configdata<\/p>\n<p><strong>Suspens\u00e3o seletiva USB.<\/strong><\/p>\n<p>O driver de MDL suporta suspens\u00e3o seletiva USB, um recurso que permite ao sistema suspender dispositivos que n\u00e3o est\u00e3o em uso e, assim, reduzir o consumo geral de energia. Suspens\u00e3o seletiva USB \u00e9 controlada atrav\u00e9s de bit 5 do par\u00e2metro CONFIGDATA e o valor SSidletimeout (em milissegundos) no arquivo ftdibus.inf.<br \/>\nPara uma instala\u00e7\u00e3o padr\u00e3o, as se\u00e7\u00f5es a seguir podem ser adicionadas ao ftdibus.inf para ativar a suspens\u00e3o seletiva:<\/p>\n<p>[Ftdibus.nt.hw] addreg = ftdibus.nt.hw.addreg [ftdibus.ntamd64.hw] addreg = ftdibus.nt.hw.addreg [ftdibus.nt.hw.addreg]<\/p>\n<p>HKR ,, &#8220;CONFIGDATA&#8221;, 0x00010001,0x20<br \/>\nHKR, &#8220;SSidletimeout&#8221;, 0x00010001.10000<\/p>\n<p>Este fragmento de arquivo INF mostra a suspens\u00e3o seletiva habilitada e o valor de tempo limite ocioso definido para 10 segundos.<br \/>\nEsses valores s\u00e3o mantidos no registro sob esta chave:<\/p>\n<p>HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ enum \\ ftdibus {dispositivo vid, pid e n\u00famero de s\u00e9rie} \\ 0000 \\ Device Parameters<br \/>\nNota: Se definir suspens\u00e3o seletiva para a camada de barramento do driver, n\u00e3o deve ser definida na camada de porta (consulte a se\u00e7\u00e3o 6.9)<\/p>\n<div class=\"social-share-buttons\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https:\/\/driverbr.com\/?p=32678\" target=\"_blank\" rel=\"noopener\">Facebook<\/a><a href=\"https:\/\/twitter.com\/intent\/tweet?url=https:\/\/driverbr.com\/?p=32678&text=Op%C3%A7%C3%B5es+ftdibus.inf.+Dispositivos+de+tecnologia+futuros+International+Ltd.+Aplicativo+Nota+An_107.+Op%C3%A7%C3%B5es+avan%C3%A7adas+do+driver\" target=\"_blank\" rel=\"noopener\">Twitter<\/a><a href=\"https:\/\/www.linkedin.com\/shareArticle?url=https:\/\/driverbr.com\/?p=32678&title=Op%C3%A7%C3%B5es+ftdibus.inf.+Dispositivos+de+tecnologia+futuros+International+Ltd.+Aplicativo+Nota+An_107.+Op%C3%A7%C3%B5es+avan%C3%A7adas+do+driver\" target=\"_blank\" rel=\"noopener\">LinkedIn<\/a><a href=\"https:\/\/pinterest.com\/pin\/create\/button\/?url=https:\/\/driverbr.com\/?p=32678&description=Op%C3%A7%C3%B5es+ftdibus.inf.+Dispositivos+de+tecnologia+futuros+International+Ltd.+Aplicativo+Nota+An_107.+Op%C3%A7%C3%B5es+avan%C3%A7adas+do+driver\" target=\"_blank\" rel=\"noopener\">Pinterest<\/a><\/div>","protected":false},"excerpt":{"rendered":"<p>5. Op\u00e7\u00f5es ftdibus.inf. Algumas op\u00e7\u00f5es de configura\u00e7\u00e3o padr\u00e3o s\u00e3o configur\u00e1veis \u200b\u200batrav\u00e9s de ftdibus.inf. Esta se\u00e7\u00e3o descreve as op\u00e7\u00f5es dispon\u00edveis e como implement\u00e1-las. Ajustando a contagem de repeti\u00e7\u00e3o de tubos de reset Em alguns casos raros, pode ser necess\u00e1rio aumentar o&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/driverbr.com\/?p=32678\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"no","_lmt_disable":"no","footnotes":""},"categories":[40],"tags":[],"class_list":["post-32678","post","type-post","status-publish","format-standard","hentry","category-software"],"modified_by":"driverbr","_links":{"self":[{"href":"https:\/\/driverbr.com\/index.php?rest_route=\/wp\/v2\/posts\/32678","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/driverbr.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/driverbr.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/driverbr.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/driverbr.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=32678"}],"version-history":[{"count":0,"href":"https:\/\/driverbr.com\/index.php?rest_route=\/wp\/v2\/posts\/32678\/revisions"}],"wp:attachment":[{"href":"https:\/\/driverbr.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=32678"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/driverbr.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=32678"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/driverbr.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=32678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}