Ir ao conteúdo

test man*~

Membro Pleno
  • Posts

    567
  • Cadastrado em

  • Última visita

Tudo que test man*~ postou

  1. Eu baixei os esquemáticos (há um tempo atrás) dos Arduínos e vi que eles trocaram o FT232 pelo ATmega16U2... Acho que é foi pelo fato da FTDI ter usado uma atualização no driver para "brickar" os FT232 falsos (Product ID = 0). Pois é... Quando peguei os esquemáticos percebi que havia algo estranho pois o que ligava o PC (software do Arduíno) ao ATmega328P era uma comunicação serial (através do FT232, CH340 ou ATmega16U2), mas como o 328P era programado? Fui procurar e trombei com o bootloader... Assisti a um vídeo com um cara explicando como o bootloader funciona mas só para ter uma noção mesmo... Nesse momento entendi como um cara (em um outro vídeo que vi há uns anos atrás) programou um PIC com um par de XBEE... É... Às vezes dou uma navegada pelo site da Adafruit, lá aparece algumas coisas interessantes... Só que, mesmo que o cara usou um AVR, o mesmo projeto poderia ser feito com o PIC... Agora, isso dos professores ensinarem, na maioria das vezes, somente PIC16F eu não entendo o porquê... Tipo, na minha opinião, se o programa for feito em uma linguagem de alto nível o AVR e o PIC ficam empatados (projetos de hobby)... Em casos de projetos profissionais cada um se enquadrará melhor em uma determinada situação... Eu gosto de microcontrolador, qualquer um... PIC, AVR, motorola (nunca usei HAHHA)... Aliás, qualquer coisa que dê para quebrar a cabeça... Instrumentação, CLP, Redes industriais, Supervisório e por ai vai!!! Voltando ao BASCOM, estou achando estranho ontem fiz um contador 0-99 (Modificação do projeto 2 adicionando 2 CIs 4411) e o proteus não mostrou a variáveis, declaradas no programa, durante o debug... '------------------------------------- Descrição -------------------------------------'' Fazer dois leds piscarem a uma frequencia de 1Hz '------------------------ Modelo do AVR e velocidade de clock ------------------------'$regfile = "m48pdef.dat" ' ATmega48P$crystal = 8000000 ' Oscilador interno 8MHz (configurado nos Fuses) '------------------------- Configuração da direção dos pinos -------------------------'Config Portb = Output ' Poderia ser: ' Config Portb &B11111111 (1 = Saída | 0 = Entrada) ' Config Pinb.0 Input/Output '----------------------------------- Nomeando pinos ----------------------------------' '------------------------------ Declaração de variáveis ------------------------------'Dim Contador As ByteDim Aux1 As ByteDim Aux2 As Byte '---------------------------- Inicialização de variáveis -----------------------------'Contador = 0 '------------------------ Inicialização dos estados dos pinos ------------------------'Portb = &H00 ' inicializa os displays com zero (00) '----------------------------- Declaração de constantes ------------------------------' '--------------------------------- Código principal ----------------------------------'Do Aux1 = Contador / 10 ' EX: contador = 15 | Aux1=15/10=1 Aux2 = Aux1 * 10 ' Aux2=1*10=10 Aux2 = Contador - Aux2 ' Aux2=15-10=5 Shift Aux1 , Left , 4 ' Aux1=Aux1<<4 | Aux1<<=4 Aux1 = Aux1 Or Aux2 ' Aux1= DIGITO1 (4MSBits) DIGITO2(4LSBits) Portb = Aux1 Contador = Contador + 1 If Contador = 100 Then Contador = 0 End If Waitms 200Loop '-------------------------------------------------------------------------------------'End '------------------------------------ Sub-rotinas ------------------------------------' Faltou o VCC conectado ao AREF e AVCC Mas de boa! Agora vou para o 3. Uma coisa, aquela parte que você fala como debugar com o proteus, aqueles macetes... Ficou muito bacana, na época eu aprendi (mais ou menos) aos trancos e barrancos HEHE
  2. É daqui a pouco $asm$end asm Igual no C. @aphawk, eu estou pensando uma coisa... Se existisse um gravador barato e que permitisse a alteração dos FUSES facilmente (crystal externo/interno mesmo sem o crystal conectado, SPIEN abilitado/desabilitado, etc.), assim como existe o PICKIT 2 para os uc's da Microchip, os AVRs seriam mais famosos. Até existe o AVR Dragon (pelo que eu entendi) mas ele é bem carinho (pra mim) Enfim, estou indo com a programação, o BASIC é bem fácil de entender (mais fácil que o C) só gastei muiiiiiiiiiiiiiiiiiiiiiiiiiiiiittttttooooooooooo tempo para entender o funcionamento do gravador (sem/com crystal, SPIEN, clock da programação deve ser menor que o clock do chip a ser gravado, etc.)... Agora vou voltar para o tutorial PROJETO 2.
  3. Isso que eu queria ... Mas pulei tudo e fui direto para o tutorial... Você diz no tutorial: "o que importa aos iniciantes é que conheçam muito bem o que que o hardware existente em um AVR pode fazer, apenas isto, não se preocupem em COMO FAZER ISTO, pois é justamente aí que entra o BASCOM e sua linguagem BASIC!" E é verdade... Fiz algumas coisas um pouco complicadas (usando o CCS) lendo quase que nada o Datasheet do PIC usado... Fui direto para o tutorial e se precisar leio o Datasheet! Mas aquela coisa dos 32 Working Registers conectados diretamente à ALU é muito massa Obrigado Paulo!
  4. Um vendedor fez uma promoção e acabei comprando um UNO SMD (com o conversor USB<>SERIAL CH340), um UNO R3 (aquele que usa outro AVR para fazer a conversão USB<>SERIAL) e um DUEMILANOVE (FT232 para USB<>SERIAL com os pinos CTS DSR DCD e RI disponíveis)... Ficou em US $2.72 vai demorar para chegar... Mas uma dia chega HAHAHAHA, o Arduíno mega (ATmega2560) estava US $1.20 quando cliquei para comprar a oferta acabou =D... Perguntei do DATASHEET pois gosto de entender o que o compilador está fazendo. Depois de aprender assembly p/ o PIC a programação em C ficou mais eficiente, consigo fazer a mesma coisa gastando bem menos tempo e memória de programa... Mas vou seguir seu conselho. Vou direto para o BASIC... Depois dou uma espiada no datasheet (assim como foi com os PICs) Obrigado!
  5. @aphawk vou começar a ler e estou com umas dúvidas... > Você usa a versão DEMO do BASCON AVR (com a limitação de 4KB)? > Você pode me indicar um Atmel bem simples (tipo o PIC16F628A) para eu ler o datasheet e me acostumar com os registradores básicos dos AVRs? > O PIC (16F, 18F) precisa de 4 ciclos de clock para executar uma instrução, os AVRs executam com apenas um único ciclo? Obrigado.
  6. Há um tutorial sobre o uso do Arduíno com esse driver aqui: http://blog.filipeflop.com/motores-e-servos/motor-dc-arduino-ponte-h-l298n.html õ/
  7. the text to be spoilered Desculpem-me, foi sem querer... Estava testando o spoiler
  8. Hmm entendi... Lembro-me de um tempo (uns 5~6 anos atrás) em que era possível entrar no perfil de outro usuário e ver todos os seus arquivos separados por pastas e nem era necessário estar logado, eles devem ter mudado . Obrigado pela dica @aphawk e pelo arquivo @MOR!
  9. Entendo @aphawk, eu loguei e consegui fazer o download mas não consegui acessar todos os arquivos do @MOR... Quando clico no perfil dele o site mostra que ele tem duas pastas e um total de 52 arquivos mas não mostra os arquivos
  10. Legal =D @MOR, como eu acesso todos os seus arquivos no 4shared... Eu cliquei no seu perfil mas não mostrou coisa alguma...
  11. Quanto tempo não passo por aqui =D... O SHT1x e 7x não são I2C, em algum lugar do datasheet está escrito (não me lembro onde). Eu já usei 2 deles, são ótimos por sinal, repetitibilidade excelente mas realmente são caros. Na época comprei no mercado livre 2xSHT11 por R$100,00 mas não sei se encontra ainda. No início estava usando esse driver para simular (proteus): http://www.ccsinfo.com/forum/viewtopic.php?t=28564 Dava um erro na medição então eu resolvi criar um driver, o erro ficou igualzinho hehe! Uns amigos meus usaram o DHt11 e falaram que ele é muito bom mesmo...
  12. Valeu ai Mulder! Vou brincar com isso nas férias /gg
  13. Boa noite pessoal. Sink00, infomações valiosas essas... Valeu cara! (já copiei em um notepad =D) MatheusLPS, segue o vídeo com o acendimento dos LEDs. Percebi que ao dar o comando para acender o LED, no exato momento, a comunicação meio que dá uma travada, coloquei dois capacitores em paralelo à alimentação ai diminuiu, depois alimentei o circuito com uma fonte externa, ai ficou quase imperceptível. Valeu matheuzão...
  14. Vou fazer o esquema de acender leds. Tem que verificar se vai acontecer algo quando o PIC acender ou apagá-los, como você disse... Assim que fizé-lo, posto aqui. Cara, uma dúvida. Qual a principal diferença entre a configuração HID e BULK? HID já tem drivers instalados e é mais lenta? Valeu pela ajuda em Matheus! Se não fosse você, acho que nem teria tentado mexer com USB.
  15. O PICkit2 não reconheceu o PIC18F4550 (reconhece outros 18F's), mas o JDM reconheceu, estranho. Aê jovem! Fiz um teste com leitura de uma entrada analógica e plotagem das amostras no labVIEW, o capacitor usado foi de 224M (220nF). Segue o vídeo. Obs: A forma que consegui passar os dois vídeos ao mesmo tempo foi esta. Espere os dois vídeos carregarem, e depois aperte double up . USB PIC18F4550 labVIEW teste. (vídeo da esquerda adiantado 1 segundo, em relação ao vídeo da direita) *** EDIT Esqueci de tirar uns jumpers do gravador, por isto ele não estava reconhecendo.
  16. Aff cara, não é possível... Iria começar a testar hoje, mas o PIC18F4550 veio queimado. Vou entrar em contato com a loja para eles trocarem (espero).
  17. O pedido chegou, mas não tinha os capacitores (220/470n) na loja... Um amigo comprará eles pra mim, e ai sim começarei os testes... Pelo jeito, não terei problemas de fazer uma interface usando o labview, quando estiver finalizada coloco ela aqui... Mas quero aprender pelo menos o básico do visual C#, já arrumei umas vídeo aulas e apostilas. Qual eu baixo aqui: downloads Visual C# o Visual C# 2010 expres? Outra coisa, você poderia postar o seu projeto novamente Matheus? Quando vou baixar ele pelo 4shared da erro. Valeu ai cara!
  18. Matheus, estava lendo um artigo ontem, e este dizia que o comprimento máximo do cabo USB é 5m. Você já já pensou em algo para aumentar essa distância? Tipo um módulo wireless que substitua o cabo...
  19. Bem pensado, ótima dica! Vou fazê-lo. Segunda-feira começa a maratona de testes.. heh
  20. Ok... Comprei o PIC, só falta chegar, vou fazer uma plaquinha para ir testando... Assim que fizer um led acender a apagar através de um comando no labVIEW eu posto aqui. Uploaded with ImageShack.us
  21. Matheus (koala) você teve algum problema com o capacitor do VUSB? O cara aqui: http://www.vabsco.com/bardhp/ Fala que usou um de 200nF ceramico e teve problemas, e então trocou por um de 470nF também ceramico e os problemas se foram... Você usou 47uF, era polarizado? O terminal positivo ficou no pino VUSB? Entre o VCC e GND do USB você colocou um de 100nF mas isso foi apenas para deixar bem contínuo né? Vou encomendar o PIC, ai já vou pedir tudo de uma vez...
  22. Esta sim matheus... Vou postar ele completo. Cara estou até emocionado, USB não é um bicho de 7 cabeças, é um bicho de 1000 cabeças HAHAHAHEHEHEHE, no codigo tem um esquema de VID e PID e para alterar essas duas coisas tem que alterar no driver também, e eu não sei como montar um driver para USB, eu peguei o que veio pronto e editei as coisas e deu certo (O.O)... Aprender este troço vai dar um trabalho louco HAHEHAHEHA... Código PIC (sem alteração) ///////////////////////////////////////////////////////////////////////// //// SineWaveUSB.c //// //// //// //// A continuacion se describe el programa de prueba para la //// //// comunicacion USB. Este programa es el más sencillo. //// //// //// //// Espera recibir 3 bytes de la PC. El primer byte es el modo //// //// En este programa solo se maneja el modo cero. //// //// Los otros dos bytes son datos y en este ejemplo se ignoran. //// //// //// //// El pic simplemente envìa los 256 bytes de una onda senoidal //// //// lo más rápido que puede. //// //// //// //// Configurar el programa en el host para recibir 256 bytes.- //// //// //// //// //// //// //// //// Rafael Rodriguez Covarrubias //// //// IICO-UASLP //// //// [email protected] //// ///////////////////////////////////////////////////////////////////////// #include <18F2550.h> #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VREGEN #use delay(clock=48000000) #define USB_HID_DEVICE FALSE //No se trata de un dispositivo HID #define USB_EP1_TX_ENABLE USB_ENABLE_BULK //Se habilita EP1(EndPoint1) for IN bulk transfers #define USB_EP1_RX_ENABLE USB_ENABLE_BULK //Se habilita EP1(EndPoint1) for OUT bulk transfers #define USB_EP1_TX_SIZE 64 //Memoria a reservar para el endpoint tx (Inpipe) #define USB_EP1_RX_SIZE 3 //Memoria a reservar para el endpoint rx (Outpipe) #include <pic18_usb.h> //Carga de las librerias USB. #include <usb_desc_scope_alt.h> //Carga el header con las definiciones. #include <usb.c> char sine_wave[256]={ 127, 130, 133, 136, 139, 142, 145, 148, 151, 154, 157, 160, 163, 166, 169, 172, 175, 178, 181, 184, 186, 189, 192, 195, 197, 200, 202, 205, 207, 210, 212, 214, 216, 219, 221, 223, 225, 227, 229, 230, 232, 234, 236, 237, 239, 240, 241, 243, 244, 245, 246, 247, 248, 249, 250, 250, 251, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 251, 250, 250, 249, 248, 247, 246, 245, 244, 242, 241, 240, 238, 237, 235, 234, 232, 230, 228, 226, 224, 222, 220, 218, 216, 214, 211, 209, 207, 204, 202, 199, 197, 194, 191, 189, 186, 183, 180, 178, 175, 172, 169, 166, 163, 160, 157, 154, 151, 148, 145, 142, 138, 135, 132, 129, 127, 124, 121, 118, 114, 111, 108, 105, 102, 99, 96, 93, 90, 87, 84, 81, 78, 75, 73, 70, 67, 64, 62, 59, 56, 54, 51, 49, 46, 44, 42, 39, 37, 35, 33, 31, 29, 27, 25, 23, 22, 20, 18, 17, 15, 14, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 19, 21, 22, 24, 26, 28, 30, 32, 34, 36, 38, 41, 43, 45, 48, 50, 53, 55, 58, 60, 63, 66, 69, 71, 74, 77, 80, 83, 86, 89, 92, 95, 98, 101, 104, 107, 110, 113, 116, 119, 122, 125 }; #define mode usb_indata[0] void main(void) { int8 usb_indata[3]; //declaramos variables usb_init(); //Se inicializa USB y espera que sea enumerado por la PC usb_task(); usb_wait_for_enumeration(); while (TRUE) //Ciclo principal { if(usb_enumerated()) //Si el PIC ha sido enumerado por la PC { if (usb_kbhit(1)) //y si hay un dato en el buffer de entrada USB. { usb_get_packet(1, usb_indata, 3); //Leemos el paquete de 3 bytes que hay en el OutPipe //(Leemos de la PC) if (mode == 0) //Si el primer byte (modo) es cero { //entonces lee los ADC's y envia //los datos (4 bytes) usb_puts(1,sine_wave,256,50); //Colocamos los 4 bytes en el InPipe.(Enviamos a la PC) } } } } } [/spoiler] Cabeçalho que pelo que eu pude entender até agora, está ligado ao driver e tem o nomezinho que aprece quando a instalação do driver é solicitada, e também o tal de VID e PID: /////////////////////////////////////////////////////////////////////////// //// usb_desc_scope.h //// //// //// //// Este programa unicamente se modificó al final en las strings //// //// que identifican el dispositivo. //// //// Aqui se puede definir outro VID&PID. Por ahora esta definido como //// //// VID 0x04D8&PID 0x0003 //// //// //// /////////////////////////////////////////////////////////////////////////// #IFNDEF __USB_DESCRIPTORS__ #DEFINE __USB_DESCRIPTORS__ #include <usb.h> ////////////////////////////////////////////////////////////////// /// /// start config descriptor /// right now we only support one configuration descriptor. /// the config, interface, class, and endpoint goes into this array. /// ////////////////////////////////////////////////////////////////// #DEFINE USB_TOTAL_CONFIG_LEN 32 //config+interface+class+endpoint //configuration descriptor char const USB_CONFIG_DESC[] = { //config_descriptor for config index 1 USB_DESC_CONFIG_LEN, //length of descriptor size USB_DESC_CONFIG_TYPE, //constant CONFIGURATION (0x02) USB_TOTAL_CONFIG_LEN,0, //size of all data returned for this config 1, //number of interfaces this device supports 0x01, //identifier for this configuration. (IF we had more than one configurations) 0x00, //index of string descriptor for this configuration 0xC0, //bit 6=1 if self powered, bit 5=1 if supports remote wakeup (we don't), bits 0-4 reserved and bit7=1 0x32, //maximum bus power required (maximum milliamperes/2) (0x32 = 100mA) //interface descriptor 0 alt 0 USB_DESC_INTERFACE_LEN, //length of descriptor USB_DESC_INTERFACE_TYPE, //constant INTERFACE (0x04) 0x00, //number defining this interface (IF we had more than one interface) 0x00, //alternate setting 2, //number of endpoints, not counting endpoint 0. 0xFF, //class code, FF = vendor defined 0xFF, //subclass code, FF = vendor 0xFF, //protocol code, FF = vendor 0x00, //index of string descriptor for interface //endpoint descriptor USB_DESC_ENDPOINT_LEN, //length of descriptor USB_DESC_ENDPOINT_TYPE, //constant ENDPOINT (0x05) 0x81, //endpoint number and direction (0x81 = EP1 IN) 0x02, //transfer type supported (0 is control, 1 is iso, 2 is bulk, 3 is interrupt) USB_EP1_TX_SIZE & 0xFF,USB_EP1_TX_SIZE >> 8, //maximum packet size supported 0x01, //polling interval in ms. (for interrupt transfers ONLY) //endpoint descriptor USB_DESC_ENDPOINT_LEN, //length of descriptor USB_DESC_ENDPOINT_TYPE, //constant ENDPOINT (0x05) 0x01, //endpoint number and direction (0x01 = EP1 OUT) 0x02, //transfer type supported (0 is control, 1 is iso, 2 is bulk, 3 is interrupt) USB_EP1_RX_SIZE & 0xFF,USB_EP1_RX_SIZE >> 8, //maximum packet size supported 0x01, //polling interval in ms. (for interrupt transfers ONLY) }; //****** BEGIN CONFIG DESCRIPTOR LOOKUP TABLES ******** //since we can't make pointers to constants in certain pic16s, this is an offset table to find // a specific descriptor in the above table. //NOTE: DO TO A LIMITATION OF THE CCS CODE, ALL HID INTERFACES MUST START AT 0 AND BE SEQUENTIAL // FOR EXAMPLE, IF YOU HAVE 2 HID INTERFACES THEY MUST BE INTERFACE 0 AND INTERFACE 1 #define USB_NUM_HID_INTERFACES 0 //the maximum number of interfaces seen on any config //for example, if config 1 has 1 interface and config 2 has 2 interfaces you must define this as 2 #define USB_MAX_NUM_INTERFACES 1 //define how many interfaces there are per config. [0] is the first config, etc. const char USB_NUM_INTERFACES[USB_NUM_CONFIGURATIONS]={1}; #if (sizeof(USB_CONFIG_DESC) != USB_TOTAL_CONFIG_LEN) #error USB_TOTAL_CONFIG_LEN not defined correctly #endif ////////////////////////////////////////////////////////////////// /// /// start device descriptors /// ////////////////////////////////////////////////////////////////// //device descriptor char const USB_DEVICE_DESC[] ={ USB_DESC_DEVICE_LEN, //the length of this report 0x01, //constant DEVICE (0x01) 0x10,0x01, //usb version in bcd 0x00, //class code (if 0, interface defines class. FF is vendor defined) 0x00, //subclass code 0x00, //protocol code USB_MAX_EP0_PACKET_LENGTH, //max packet size for endpoint 0. (SLOW SPEED SPECIFIES 8) 0xD8,0x04, //vendor id (0x04D8 is Microchip) 0x03,0x00, //product id (0x0003) 0x00,0x01, //device release number 0x01, //index of string description of manufacturer. therefore we point to string_1 array (see below) 0x02, //index of string descriptor of the product 0x00, //index of string descriptor of serial number USB_NUM_CONFIGURATIONS //number of possible configurations }; ////////////////////////////////////////////////////////////////// /// /// start string descriptors /// String 0 is a special language string, and must be defined. People in U.S.A. can leave this alone. /// /// You must define the length else get_next_string_character() will not see the string /// Current code only supports 10 strings (0 thru 9) /// ////////////////////////////////////////////////////////////////// //the offset of the starting location of each string. //offset[0] is the start of string 0, offset[1] is the start of string 1, etc. const char USB_STRING_DESC_OFFSET[]={0,4,14}; #define USB_STRING_DESC_COUNT sizeof(USB_STRING_DESC_OFFSET) char const USB_STRING_DESC[]={ //string 0 4, //length of string index USB_DESC_STRING_TYPE, //descriptor type 0x03 (STRING) 0x09,0x04, //Microsoft Defined for US-English //string 1 10, //length of string index USB_DESC_STRING_TYPE, //descriptor type 0x03 (STRING) 'I',0, 'I',0, 'C',0, 'O',0, //string 2 32, //length of string index USB_DESC_STRING_TYPE, //descriptor type 0x03 (STRING) 'F',0, 'l',0, 'o',0, 'w',0, ' ',0, 'C',0, 'o',0, 'n',0, 't',0, 'r',0, 'o',0, 'l',0, 'l',0, 'e',0, 'r',0 }; #ENDIF [/spoiler] Arquivo .INF que eu alterei e consegui alterar o que me parece ser o endereço do dispositivo USB. ; Installation file for mchpusb driver ; Copyright (C) 2004 by Microchip Technology, Inc. ; All rights reserved [Version] Signature=$WINDOWS NT$ Class=%ClassName% ClassGuid={4D36E97E-E325-11CE-BFC1-08002BE10318} Provider=%MFGNAME% CatalogFile=mchpusb.cat DriverVer=08/06/2007 [Manufacturer] %MFGNAME%=DeviceList [DestinationDirs] DefaultDestDir=10,System32\Drivers [SourceDisksFiles] mchpusb.sys=1 wdmstub.sys=1 [SourceDisksNames] 1=%INSTDISK%,,, [DeviceList] %DESCRIPTION%=DriverInstall,USB\VID_04D8&PID_0003 ;------------------------------------------------------------------------------ ; Windows 2000/XP Sections ;------------------------------------------------------------------------------ [DriverInstall.ntx86] CopyFiles=DriverCopyFiles [DriverCopyFiles] mchpusb.sys,,,2 [DriverInstall.ntx86.Services] AddService=MCHPUSB,2,DriverService [DriverService] ServiceType=1 StartType=3 ErrorControl=1 ServiceBinary=%10%\system32\drivers\mchpusb.sys AddReg=TraceFlags ;------------------------------------------------------------------------------ ; Windows 98/Me Sections ;------------------------------------------------------------------------------ [DriverInstall] AddReg=DriverAddReg CopyFiles=DriverCopyFiles,StubCopyFiles DriverVer=08/06/2007 ; TODO replace with real info [DriverAddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,"wdmstub.sys,mchpusb.sys" [StubCopyFiles] wdmstub.sys,,,2 ;------------------------------------------------------------------------------ ; String Definitions ;------------------------------------------------------------------------------ [Strings] MFGNAME="IICO" INSTDISK="FlowController Installation Disc" DESCRIPTION="Flow Controller" ClassName="PIC 18Fxx5x USB Devices" [/spoiler] Vou ter que ler muito sobre o protocolo USB. Links interessantes: http://www.pads.ufrj.br/~rapoport/usb/usb4.html http://homepages.dcc.ufmg.br/~adrianoc/usb/
  23. Matheus, olhando este código você sabe me dizer se é bulk ou hid ou alguma outra coisa? #include <18F2550.h> #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN #use delay(clock=48000000) #define USB_HID_DEVICE FALSE //No se trata de un dispositivo HID #define USB_EP1_TX_ENABLE USB_ENABLE_BULK //Se habilita EP1(EndPoint1) for IN bulk transfers #define USB_EP1_RX_ENABLE USB_ENABLE_BULK //Se habilita EP1(EndPoint1) for OUT bulk transfers #define USB_EP1_TX_SIZE 3 //Memoria a reservar para el endpoint tx (Inpipe) #define USB_EP1_RX_SIZE 3 //Memoria a reservar para el endpoint rx (Outpipe) #include <pic18_usb.h> //Carga de las librerias USB. #include <usb_desc_scope_alt.h> //Carga el header con las definiciones. #include <usb.c> char sine_wave[3]={1, 2, 3}; #define mode usb_indata[0] void main(void) { int8 usb_indata[3]; //declaramos variables usb_init(); //Se inicializa USB y espera que sea enumerado por la PC usb_task(); usb_wait_for_enumeration(); while (TRUE) //Ciclo principal { if(usb_enumerated()) //Si el PIC ha sido enumerado por la PC { if (usb_kbhit(1)) //y si hay un dato en el buffer de entrada USB. { usb_get_packet(1, usb_indata, 3); //Leemos el paquete de 3 bytes que hay en el OutPipe //(Leemos de la PC) if ((usb_indata[0] == 1)&&(usb_indata[1] == 0)&&(usb_indata[2] == 0)) //Si el primer byte (modo) es cero { //entonces lee los ADC's y envia //los datos (4 bytes usb_puts(1,sine_wave,3,50); //Colocamos los 4 bytes en el InPipe.(Enviamos a la PC) sine_wave[0]=2; } } } } } Consegui fazer o labview enviar um pacote, o PIC entender e devolver um outro pacote. O que são os números 1 na primeira, e 1-50 na sgunda função? usb_get_packet(1, usb_indata, 3); usb_puts(1,sine_wave,3,50) Uma dúvida, entre o VCC e o GND do USB você coloca algum capacitor? Valeu cara!
  24. Valeu Mateus, o maior problema meu é montar a interface mesmo... Vou focar em uma e mandar ver, vou continuar com o Labview que tenho um pouco de experiencia... Valeu cara. **** EDIT. Se alguém estiver na mesma busca que eu: http://www.edaboard.com/thread113553.html Um ponta pé inicial!
  25. Matheus... Cara... Te perguntar, você tem algum exemplo de código para o USB HID? E alguns para montar a interface usando o C#? Ele é gratuito né? A licença do LABView é o olho da cara @#$%@%$!!!

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!