Just to point it out - I do have my ESP8266/ESP8285 communicating at low-speed USB, and I can do things like make it enumerate as a mouse and flash it over the USB interface...
https://github.com/cnlohr/espusb
Though I am still not 100% sure I can get full-speed USB working, but I think I can so long as I can minimize the latency between the GPIO interrupt firing and code execution. Currently there is a very, very long time spent within the interrupt handler code in the Espressif SDK.
Is it possible to release the details of how to put my own code in the interrupt vector for the GPIO interrupt instead of routing through the SDK? Additionally, if there is any way to set up the GPIO as an NMI that would be helpful (though not required) since USB does seem to gracefully re-try transmissions.
【Resolved】Need better interrupt access for Full-Speed USB
Re: Need better interrupt access for Full-Speed USB
Postby pratik » Wed Aug 10, 2016 10:39 am
Hello,
What kind of time delay are you getting between GPIO edge transition and ISR entry?
Also, note that high frequency, high priority interrupts may disrupt core Wi-Fi related routines too often, so do make sure that the CPU is not occupied for too long with interrupts when implementing GPIO interrupt based serial interface!
Find register description for GPIOs attached.
What kind of time delay are you getting between GPIO edge transition and ISR entry?
Also, note that high frequency, high priority interrupts may disrupt core Wi-Fi related routines too often, so do make sure that the CPU is not occupied for too long with interrupts when implementing GPIO interrupt based serial interface!
Find register description for GPIOs attached.
- Attachments
-
- 8b-esp8266_interface_gpio_registers_release_15-11-2014.xls
- (33 KiB) Downloaded 1302 times
Re: 【Resolved】Need better interrupt access for Full-Speed USB
Postby cnlohr » Sun Aug 21, 2016 9:43 am
Sorry, I thought this thread was put away 
So, it turns out the problem is that whenever the processor reads any of the registers behind the AHB? bus, it takes something like 17 cycles, which is just too much for USB. Unless there's some other side channel - someone else suggested maybe multichannel SDIO or something to ninja the data into RAM, it's not possible to transfer the data from the GPIO registers in time.

So, it turns out the problem is that whenever the processor reads any of the registers behind the AHB? bus, it takes something like 17 cycles, which is just too much for USB. Unless there's some other side channel - someone else suggested maybe multichannel SDIO or something to ninja the data into RAM, it's not possible to transfer the data from the GPIO registers in time.
Re: 【Resolved】Need better interrupt access for Full-Speed USB
Postby pratik » Mon Aug 22, 2016 1:42 pm
Yeah I know.
How are you accessing the registers? Using the register write APIs?
How are you accessing the registers? Using the register write APIs?
Who is online
Users browsing this forum: No registered users and 14 guests
Login
Newbies Start Here
Are you new to ESP8266?
Unsure what to do?
Dunno where to start?
Start right here!
Latest SDK
Documentation
Complete listing of the official ESP8266 related documentation release by ESPRESSIF!
Must read here!
- All times are UTC+08:00
- Top
- Delete all board cookies
About Us
Espressif Systems is a fabless semiconductor company providing cutting-edge low power WiFi SoCs and wireless solutions for wireless communications and Internet of Things applications. We are the manufacturer of ESP8266EX.