|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
navigator Član
Pridružen-a: Tor 26 Feb 2013 21:15 Prispevkov: 32 Aktiv.: 0.24
|
Objavljeno: Sob Feb 22, 2014 1:19 pm Naslov sporočila: STM otg |
|
|
Zatika se mi pri uporabi usb komunikacije na stm32f107. Imam preprosto razvojno ploščico, kjer ni običajnega pullup-a na dp liniji, ampak je zvezano na drugačen-otg način. Sem bolj začetnik, zato prosim, če mi kdo lahko pomaga pri usposobitvi usb otg sistema pri STM32F107, da bi ga lahko uporabil kot virtual comport.
Ali usb otg lahko sploh deluje v načinu vcom, ali je otg čisto nekaj drugega - mode host ali device? Ali je možno, da na vezje dodam 1.5k pullup in tranzistor ter naložim sw za usb vcom isti kot za stm32f103 kjer mi to že deluje? Je pa to malo problem, ker je na razvojni ploščici kvarc 25MHz in ima dva pll-ja vezana zaporedno, da se dobi 72Mhz, oziroma 48MHz za usb. Tu je sw precej različen od stm103.
Prosim za kakršenkoli nasvet in morda, če mi kdo lahko da kakšen primer kode za usb, ker na netu ne najdem nič uporabnega le hid kot miš mi deluje, tudi na st-jevi strani ne vidim primera za otg kot vcom.
Hvala in LP. |
|
Nazaj na vrh |
|
|
samofab Neznanec
Pridružen-a: Čet 28 Feb 2013 10:28 Prispevkov: 8 Aktiv.: 0.06 Kraj: Ljubljana
|
Objavljeno: Sre Mar 05, 2014 10:20 pm Naslov sporočila: |
|
|
Jaz sem prav včeraj uspel usposobiti to stvar. Sicer na STM32F4, ampak ima prav tako OTG in kolikor vem je ST knjižnica za F1 enaka kot za F4.
Najbolj preprost primer je tukajle: http://www.das-labor.org/trac/browser/microcontroller/src-stm32f4xx/serialUSB
Nisem sicer tegale direktno skompajlal, ampak sem samo skopiral vsebino večine *usb* datotek, pa potem dodal OTG knjižnico iz ST sajta.
Moj dodatek h kodi je tole spodaj. Namreč če resetiraš kontroler je putty izgubil povezavo, tako, da spodnja koda zahteva re enumeracijo na USB oz. ponovno inštalacijo driverja na windowsih.
V povezavi s tvojim vprašanjem: spodnja koda ne more delovati, če boš dodal 1.5k na DP linijo, ker stvar pričakuje, da se na DP liniji uporablja interni pull-up (to imaš tudi na F1)
iz main.c:
USBD_DeInit(&USB_OTG_dev);
DCD_DevDisconnect(&USB_OTG_dev);
Delay(180); // v dokumentaciji sem nekje videl, da piše da mora bit minimalno 20ms. 40ms mi včasih ni delovalo, pa sem spremenil na 180, ki dela super.
USBD_Init(&USB_OTG_dev,
USB_OTG_FS_CORE_ID,
&USR_desc,
&USBD_CDC_cb,
&USR_cb); |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 74 dni
Powered by phpBB © 2001, 2005 phpBB Group
|