|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Mar 2007
Messaggi: 6
|
Comunicare su "usb" con API fireware
Salve,
E' il mio primo messaggio e sono già a chiedere... cercherò di dare il mio contributo al forum in seguito... Per ora grazie in anticipo a chi mi presterà attenzione... Vengo al problema: Io ho il mio robot con interfaccia Firewire1394 che comunica con il pc che ha interfaccia Firewire1394 sul quale scrivo dei programmi c che usano usano API create per comunicare su 1394. Fin Qui ok. Allora....... Ho un convertitore usb-firewire, secondo voi facendo questo tipo di collegamento: | Robot -->| 1394| |-------------|Convertitore 1394 - USB | -------------| USB | -- PC | è possibile far funzionare i programmi C con API per firewire ? Fin qui tutto collegato, il problema sono le api che comunicano su 1394. E' possibile fare qualche cosa su linux in modo che il PC grazie al convertitore usb - firewire veda una porta firewire anzichè usb ? in mnodo che le API funzionino correttamente ??? Non mi sembra una cosa semplice ma se qualcuno ha già avuto esperienza con collegamenti di questo tipo e avesse qualche consiglio..... Grazie Ultima modifica di mZer0 : 27-03-2007 alle 11:31. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Tutto dipende se il bridge usb-fw viene riconosciuto. In genere dispositivi di questo tipo usano un bridge usb-pci e un normale chip pci per implementare il dispositivo (nel tuo caso fw). Se è così, vedrai semplicemente una porta fw aggiuntiva.
Se non è così, non credo ci sia molto da fare. L'unica cosa è provare e vedere cosa dice il kernel.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Mar 2007
Messaggi: 6
|
Grazie per la risposta, purtroppo il ponte non viene riconosciuto.
Dovrò cercare un'altra interfaccia probabilmente. Grazie ancora |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Per curiosità, puoi allegarmi l'output di lsusb -v e dmesg? (con il paperweight collegato, ovviamente)
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Mar 2007
Messaggi: 6
|
ciao,
In pratica il dispositivo è un'interfaccia aptica (un phantom prodotto da SensAble) il produttore naturalmente non produce driver aperti. viene fornito un script di configurazione in cui in base al modello del Phantom è possibile selezionare la porta di comunicazione, nel mio caso il modello comunica su firewire. Questo processo produce un file .ini (che ti ho allegato). lanciando un strace per osservare le informazioni che si scambia un programma che usa queste API e il Sistema Operativo vedo che il file .ini viene letto e probabilmente in base alla porta di comunicazione viene scelto il driver adatto. ho allegato l'output di lsusb senza dispositivo (lsusb.txt) e con distpositivo collegato (lsusb2.txt). L'output di dmesg è quello che ottengo con il dispositivo collegato. I Requirements delle API sono nel README. E' un "tantino" ostica probabilmente con i driver chiusi poter personalizzare la cosa. Mi serviva la comunicazione su usb per avere la possibilità di montare l'interfaccia su sistemi embedded linux con Slack com SO che comunicano su usb. Penso di non essermi dimenticato di niente.. Grazie |
![]() |
![]() |
![]() |
#6 | ||
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||
![]() |
![]() |
![]() |
#7 | |
Junior Member
Iscritto dal: Mar 2007
Messaggi: 6
|
Innanzi tutto grazie per aver visto la cosa..
Quote:
"cannot read port 3 status, Broken pipe (32)" (Solo quando collego il dispositivo) ed effettivamente il dmesg non riesce ad inizializzare quella porta quando collego il dipositivo; secondo me perchè non c'è scritto da nessuna parte del codice adatto per la gestione di quel convertitore. effettivamente il convertitore non penso che abbia il firmware per gestire la conversione dal protocollo usb al firewire e viceversa. La cosa che mi viene da pensare ora e che devo rimettermi alla ricerca di un convertitore usb-firewire con un microcontrollore a bordo che mi gestisca la conversione tra i due protocolli. Che ne pensi ? Sbaglio qualcosa? Foto convertitore: ![]() Ultima modifica di mZer0 : 28-03-2007 alle 12:01. |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Penso che il problema è addirittura a monte; per qualche difetto del controller usb, del dispositivo, o del driver del controller, non si riesce ad inizializzare il dispositivo usb trovato (staimo ancora molto prima dal porci il problema se il dispositivo è un controller firewire, un disco o una webcam -- stiamo cercando di vedere cosa c'è attaccato).
Quel dannato ehci_hcd ha dato problemi anche a me su alcuni computer...
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#9 | |
Junior Member
Iscritto dal: Mar 2007
Messaggi: 6
|
Quote:
Comunque grazie.. Vedremo se mi viene qualche idea... ![]() Spero di ricambiare se ne dovessi avere il bisogno. ![]() Ultima modifica di mZer0 : 28-03-2007 alle 14:24. |
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Il controller non riesce proprio a dialogare con il dispositivo, non ci arriva neanche a capire a che classe appartiene. E' un problema hardware, o del driver ehci_hcd come temo.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:46.