Chat freely about anything...

User avatar
By teddyz
#73058 My goal:
I want to make a device that can send data on one pin that I previously have captured with a Logic analyzer (PulseView). One pin is enough, more is a bonus.
Wanted speed is 250 kilosamples per second.
Wanted length to be able to send is at least 1Mbit (4 seconds), but longer makes it more useful.
Wifi is not needed.

What have I done so far?
Using esp8266/Arduino I successfully did this by having the data to send in a 40 kB variable. That is close to what can be achieved with the RAM we have. 320 kbit is just over a second @250kHz.

Reading the data from FFS was way too slow,
Using SD was much faster, but every ~540 bit it has to read from the card, which freezes the loop for 1.5ms.
I am already running the chip at 160MHz.

What I need help with
I want to know if it can be possible to use the UART to send any data, or is it locked to use start/stop-bits? Or are there any other MCU-features that can clock out the data I want to send without having to loop every bit in the code?

Thanks in advance!
User avatar
By teddyz
#73073 Found the hardware manual.. This will keep me busy for a while. http://www.espressif.com/sites/default/files/esp8266-technical_reference_en_0.pdf

Things I'm ponering on
Is it possible to compile without the wifi-stuff (or whatever is running in the background)? I am thinking of being able to use more than the ~40kB RAM that is available now, if everything else fails.
How do I completely turn off WDT? Even if I run wdt_disable(); it kicks in after 8 seconds.
User avatar
By teddyz
#73076 If UART could be set to skip atart/stop-bits it would be great. But right now I think i2s will be my friend. It can clock out at different frequencies, both higher and lower than what I need. This project seems to be a perfect start: https://github.com/bbx10/SFX-I2S-web-trigger