Pagina 1 di 3

Problemi con USB.Init()

MessaggioInviato: 29 apr 2017, 0:56
da jova
Ad Arduino è connessa una USB Host Shield e all'inizio dello sketch ho
#include <SPI.h>
#include <USB.h>
#include <usbhub.h>
#include <usbh_midi.h>
USB USB;
USBH_MIDI Midi(&USB);


e mi succede che la presenza di queste istruzioni nel void setup()
if (USB.Init() == -1) { while(1);}

non mi fa accendere i segmenti di un display collegati ai pin 11, 12 e 13 di Arduino.

Come mai ? Quei pin sono usati per caso dalla scheda USB ? Purtroppo l'unico pin libero che mi rimane è il pin analogico A5, ma se anche uso A5 come pin digitale al posto di uno dei tre di prima, non cambia nulla.

Re: Problemi con USB.Init()

MessaggioInviato: 29 apr 2017, 2:14
da xyz
Quel codice si comporta in questo modo: se non riesco ad inizializzare USB blocco tutto in un loop infinito.

Re: Problemi con USB.Init()

MessaggioInviato: 29 apr 2017, 8:26
da jova
sì quello lo sapevo, quello che non capisco è...se la USB funziona perché alcuni segmenti non accendono ?

Re: Problemi con USB.Init()

MessaggioInviato: 3 mag 2017, 9:44
da Paolino
jova ha scritto:Ad Arduino è connessa una USB Host Shield e...
...
Come mai ? Quei pin sono usati per caso dalla scheda USB ?


Difficile a dirsi, probabile che riesca a capirlo tu, avendo i riferimenti della scheda (schema elettrico) nonché la stessa sott'occhio.

Ciao.

Paolo.

Re: Problemi con USB.Init()

MessaggioInviato: 4 mag 2017, 23:24
da jova
In che senso dici che potrei capirlo avendo sottomano la scheda ?

Re: Problemi con USB.Init()

MessaggioInviato: 4 mag 2017, 23:49
da WALTERmwp
jova ha scritto:In che senso dici che potrei capirlo avendo sottomano la scheda ?
nella misura in cui lo vedi tu mentre gli altri non possono.
Dovresti fare uno schema, anche semplice, ma che consenta di capire esattamente cosa e come hai collegato quello che stai impiegando.
Utilizza FidoCadJ, se hai dei dubbi chiedi.

Saluti

Re: Problemi con USB.Init()

MessaggioInviato: 5 mag 2017, 15:56
da jova
Non credo serva postare lo schema in quanto il problema è indipendente dal tipo di circuito ma dipende esclusivamente dalla contemporaneità di 2 eventi:
1) presenza del controllo if (USB.Init() == -1) { while(1);}
2) 7 segmenti connessi a partire dal pin 5 al pin 11, con pin 12 e 13 rispettivamente necessari per attivare i due digit.

Se tolgo il controllo, i pin 11 12 e 13 funzionano regolarmente.
Con controllo attivo, funziona tutto solo se i 7 segmenti li collego dal pin 2 al pin 8, con 9 e 10 per l'attivazione delle due digit, senza però coinvolgere i pin 11 12 e 13

Comunque, sembra proprio che i pin 11 12 e 13 (e anche il 10 ) servano per fare comunicare Arduino con l'host https://www.robotstore.it/product/657/A ... hield.html

Re: Problemi con USB.Init()

MessaggioInviato: 10 mag 2017, 1:27
da MassimoB
jova ha scritto:Comunque, sembra proprio che i pin 11 12 e 13 (e anche il 10 ) servano per fare comunicare Arduino con l'host

Secondo me in questo caso l'host è arduino

Re: Problemi con USB.Init()

MessaggioInviato: 10 mag 2017, 14:13
da jova
in che senso

Re: Problemi con USB.Init()

MessaggioInviato: 10 mag 2017, 19:32
da xyz
MassimoB ha scritto:Secondo me in questo caso l'host è arduino

Il microcontrollore Atmel presente su Arduino più diffuso non ha compatibilità con USB in hardware, quindi non può essere un host, quella board serve appunto a Arduino per interfacciarsi via USB come host senza passare per la seriale e il chip della FTDI.