5. Opções ftdibus.inf.
Algumas opções de configuração padrão são configuráveis através de ftdibus.inf. Esta seção descreve as opções disponíveis e como implementá-las.
Ajustando a contagem de repetição de tubos de reset
Em alguns casos raros, pode ser necessário aumentar o número 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.
O valor padrão para a contagem de repetição do tubo de reset é 50. Este valor padrão pode ser alterado no arquivo ftdibus.inf editando ou incluindo o seguinte fragmento.
[Ftdibus.nt.addservice]
Addreg = ftdibus.nt.addservice.addreg [ftdibus.nt.addservice.addreg] HKR, parâmetros, “RetryresetCount”, 0x00010001,100
Neste exemplo, a solicitação de tubulação de reset é definida como 100. Esse valor é mantido na chave do Registro localizada em:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ FTDIBUS \ Parameters \ RetryresetCoun T
Usando IDs de localização.
Em algumas áreas de aplicação, pode ser desejável instalar dispositivos por local físico em vez de número de série. Nessas instâncias, isso pode ser realizado usando a entrada dos Locídicos no arquivo INF do Driver.
O driver usa locídeos para definir o conjunto de portas USB suportadas. Pode ser usado em sistemas que exigem apenas determinadas portas USB disponíveis, talvez em conjunto com MaxDEVs. O comportamento padrão é que todas as portas USB são suportadas. O padrão pode ser substituído, incluindo Locids na seção Chave de Serviço Ftdibus.inf.
[Ftdibus.nt.addservice]
Addreg = ftdibus.nt.addservice.addreg [ftdibus.nt.addservice.addreg] HKR, parâmetros, “Locados”, 1,21,00,00,00,00,00,00,00,00,00,00,00,00, 00,00.
Neste exemplo, infrações de arquivos inf, três portas USB são suportadas. Localização ID 0x00000021 Representa o controlador de host 1 Porta 1. ID de local 0x00000032 Representa o controlador do host 2 Porta 2.
ID de localização 0x00000011 Representa o controlador do host 0 Porta 1. Este valor é realizado na chave do Registro localizada em
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ FTDIBUS \ Parameters \ Locids
Note que a definição de Locais alterará radicalmente o comportamento do motorista; Entre em contato com o FTDI.
Se você acha que tem que mudar os locais.
Os IDs de localização podem ser obtidos usando a versão mais recente do Utilitário USBView disponível na seção Utilitários 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ém está disponível.
O USBView pode ser configurado para mostrar IDs de localização selecionando Opções> IDs de localização. A tela disparou abaixo mostra um PC com um hub conectado à localização 0x0000002a e dispositivos conectados nos locais 0x00000019 e 0x00002A3.
Figura 5.1 Vista USB
As entradas INF para os dispositivos conectados a estas portas seriam [ftdibus.nt.addservice.addreg] HKR, parâmetros, “Locids”, 1.19,00,00,00,00,2a, 00,00,00
Por favor, note que a entrada INF deve terminar com uma entrada 00 adicional para encerrar a lista de ID de localização.
Se uma tentativa for feita para instalar um dispositivo em um local que não seja suportado, um erro de código 10 (“Este dispositivo não pode iniciar”) é gerado para o novo dispositivo.
Observe que os IDs de local são representados no campo Locídicos como 4 bytes hexadecimais e em byte invertidos
pedido.
Nota também que, embora em controladores host USB sejam indexados de 0 e portas de 1, os IDs de local são calculados ajustando o número do controlador do host para que ele seja indexado de 1
Limitando o número de portas COM que podem ser instaladas
O número de portas COM Virtual FTDI que podem ser instaladas em um sistema podem ser limitadas definindo o parâmetro MaxDEVS. MaxDevs padroniza para 0, o que significa que o recurso é desativado e o driver sempre tentará criar uma porta COM. O padrão pode ser substituído, incluindo um valor máximo maxdevs na seção de tecla de serviço ftdibus.inf.
[Ftdibus.nt.addservice]
Addreg = ftdibus.nt.addservice.addreg [ftdibus.nt.addservice.addreg] hkr, parâmetros, “maxdevs”, 0x00010001,3
Neste exemplo, o número máximo de dispositivos é definido como 3. Esse valor é mantido na chave do Registro localizada em
HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ FTDIBUS \ Parameters \ MaxDevs
Se uma tentativa for feita para instalar mais do que dispositivos MaxDEVs, um erro de código 10 (“Este dispositivo não pode iniciar”) é gerado para o novo dispositivo.
Observe que a configuração de MaxDevs para um valor diferente de zero alterará radicalmente o comportamento do driver; Entre em contato com o FTDI se achar que tem que mudar a MaxDevs.
Substituir a configuração do driver EEPROM
No caso se dispositivos FT232R, FT245R e FT2232, o driver lerá o dispositivo EEPROM para determinar se deseja expor uma porta COM ou não. Os dispositivos anteriores da série B e AM não possuem uma configuração EEPROM para o tipo de driver, portanto, o padrão 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ção no arquivo de instalação.
Para uma instalação padrão, as seções a seguir podem ser adicionadas ao ftdibus.inf para substituir a configuração EEPROM e carregar o driver VCP:
[Ftdibus.nt.hw] addreg = ftdibus.nt.hw.addreg [ftdibus.ntamd64.hw] addreg = ftdibus.nt.hw.addreg [ftdibus.nt.hw.addreg] HKR ,, “CONFIGDATA”, 0x00010001, 4.
Bit 2 do parâmetro ConfigData determina o driver a ser carregado: Se estiver definido como 1, o driver VCP será carregado (como no exemplo acima); Caso contrário, apenas o driver D2XX é carregado. Portanto, adicionando as seções acima ao arquivo de instalação e, em particular, configurando o valor do ConfigData para 4, fará com que o driver VCP seja carregado, independentemente das configurações do EEPROM.
Este método pode ser estendido para o dispositivo Dual Channel FT2232. Nesse caso, novas seções devem ser criadas para cada canal para permitir que os canais sejam configurados e instalados separadamente. Os fragmentos a seguir mostram as alterações adicionais necessárias para configurar o canal A apenas para carregar o driver D2XX e o canal B para carregar o driver VCP.
[Ftdihw]
% USB \ vid_0403 & pid_6010 & mi_00.devicedesc% = ftdibusa, USB \ vid_0403 & pid_6010 & mi_00
% USB \ vid_0403 & pid_6010 & mi_01.devicedesc% = ftdibusb, USB \ vid_0403 & pid_6010 & mi_01 [ftdihw.ntamd64]
% USB \ vid_0403 & pid_6010 & mi_00.devicedesc% = ftdibusa.ntamd64, USB \ vid_0403 & pid_6010 & mi_00
% USB \ vid_0403 & pid_6010 & mi_01.devicedesc% = ftdibusb.ntamd64, USB \ vid_0403 & pid_6010 & mi_01 [ftdibusa.nt]
CopyFiles = ftdibus.nt.copy, ftdibus.nt.copy2 addreg = ftdibusa.nt.addreg [ftdibusa.ntamd64]
CopyFiles = ftdibus.ntamd64.copy, ftdibus.ntamd64.copy2, ftdibus.ntamd64.copy3 addreg = ftdibusa.nt.addreg
[Ftdibusa.nt.hw] addreg = ftdibusa.nt.hw.addreg [ftdibusa.ntamd64.hw] addreg = ftdibusa.nt.hw.addreg [ftdibusa.nt.hw.addreg] HKR ,, “ConfigData”, 0x00010001, 0 [ftdibusa.nt.services]
Addservice = ftdibus, 0x00000002, ftdibus.nt.addservice [ftdibusa.ntamd64.services]
Addservice = ftdibus, 0x00000002, ftdibus.nt.addservice [ftdibusb.nt] copyfiles = ftdibus.nt.copy, ftdibus.nt.copy2 addreg = ftdibusb.nt.addreg
[Ftdibusb.ntamd64] copyfiles = ftdibus.ntamd64.copy, ftdibus.ntamd64.copy2, ftdibus.ntamd64.copy3 addreg = ftdibusb.nt.addreg
[Ftdibusb.nt.hw] addreg = ftdibusa.nt.hw.addreg [ftdibusb.ntamd64.hw] addreg = ftdibusa.nt.hw.addreg [ftdibusb.nt.hw.addreg] HKR ,, “CONFIGDATA”, 0x00010001, 4 [ftdibusb.nt.services]
Addservice = ftdibus, 0x00000002, ftdibus.nt.addservice [ftdibusb.ntamd64.services]
Addservice = ftdibus, 0x00000002, ftdibus.nt.addservice
Observe que o valor do ConfigData é definido como 0 para o canal A (D2XX) e o valor do configData é definido como 4 para o canal B (VCP) para obter a configuração necessária. Claro, se o ConfigData não estiver incluído no arquivo de instalação, as configurações do EEPROM determinarão qual driver é carregado.
O parâmetro ConfigData é realizado no registro sob a chave
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControls et \ enum \ usb {vid do dispositivo, pid e interface} {número de série} \ DeviceParameters \ configdata
A porta COM também pode ser suprimida após a instalação através da guia Avançado da página de propriedades do conversor de serial USB, que está disponível através do Gerenciador de dispositivos.
Tempo limite de USB.
O tempo limite USB é o tempo máximo em milissegundos que uma solicitação USB pode permanecer em circulação. É improvável que isso precise ser alterado do valor padrão de 5000ms.
Este tempo limite USB (em milissegundos) é configurável através do arquivo Ftdibus Inf nos fragmentos INF mostrados abaixo:
[Ftdibus.nt.hw] addreg = ftdibus.nt.hw.addreg [ftdibus.ntamd64.hw] addreg = ftdibus.nt.hw.addreg [ftdibus.nt.hw.addreg]
HKR, “USBTimeout”, 0x00010001,5000
que corresponde à entrada do registro
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum \ USB {DISPOSITIVO VID, PID e
Interface} {número de série} \ DeviceParameters \ usbtimeout
O valor padrão para o tempo limite USB é de 5 segundos (5000ms).
Desativar Escreve EEPROM.
Em alguns casos, pode ser desejável desativar a capacidade de escrever no dispositivo EEPROM. Isso pode ser realizado através de um bit configData no arquivo Ftdibus Inf.
O driver pode ser feito para ignorar quaisquer solicitações de gravação EEPROM, definindo bit 0 do campo ConfigData, conforme mostrado no fragmento INF abaixo:
[Ftdibus.nt.hw] addreg = ftdibus.nt.hw.addreg [ftdibus.ntamd64.hw] addreg = ftdibus.nt.hw.addreg [ftdibus.nt.hw.addreg]
HKR, “CONFIGDATA”, 0x00010001,1
que corresponde à chave do registro
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum \ USB \ {dispositivo vid, pid e interface} \ {número de série} \ DeviceParameters \ configdata
Suspensão seletiva USB.
O driver de MDL suporta suspensão seletiva USB, um recurso que permite ao sistema suspender dispositivos que não estão em uso e, assim, reduzir o consumo geral de energia. Suspensão seletiva USB é controlada através de bit 5 do parâmetro CONFIGDATA e o valor SSidletimeout (em milissegundos) no arquivo ftdibus.inf.
Para uma instalação padrão, as seções a seguir podem ser adicionadas ao ftdibus.inf para ativar a suspensão seletiva:
[Ftdibus.nt.hw] addreg = ftdibus.nt.hw.addreg [ftdibus.ntamd64.hw] addreg = ftdibus.nt.hw.addreg [ftdibus.nt.hw.addreg]
HKR ,, “CONFIGDATA”, 0x00010001,0x20
HKR, “SSidletimeout”, 0x00010001.10000
Este fragmento de arquivo INF mostra a suspensão seletiva habilitada e o valor de tempo limite ocioso definido para 10 segundos.
Esses valores são mantidos no registro sob esta chave:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ enum \ ftdibus {dispositivo vid, pid e número de série} \ 0000 \ Device Parameters
Nota: Se definir suspensão seletiva para a camada de barramento do driver, não deve ser definida na camada de porta (consulte a seção 6.9)
Última atualização em fevereiro 16, 2024 por driverbr
Deixe um comentário