-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Level Shifter not needed? #4
Comments
Greetings, mister! I watched your fantastic video and am trying to follow you. One thing I'm not quite clear: It seems that you did not use level shifters between LCD bus and esp32. As far as I know, the GPIOs of esp32 are not 5V-tolerant. Should I use level shifters for safety? |
You are absolutely correct. You do need level shifter from 5V to 3v3. I mentioned this in the video. But i realize it's somewhat hard to understand me. Now, since wiring is so simple, you can just use simple resistor dividers. |
I finally built my counterpart of my style, using an authentic sgb cartridge rather than a gameboy handheld. It worked! |
I can't quite recognize what could be wrong. Hsync is actually not used as i only count pixel clock starting from VSync. |
I finally guessed out the reason why my display shakes horizontally, and, I got a solution. It is the horrible GPIO interrupt latency that caused the esp32 losing vsync from the gameboy. Let's just imagine, that the gameboy sends out vsync signal regularly, but due to the latency of GPIO interrupt, esp32 receives it long after it is sent. What if esp32 receives it too late that gameboy already sends out clk and pixel data? I2S will be started late, some pixels will be missed! The display will move left horizontally for a whole frame! What if worse, esp32 missed one or more vsync? |
I wonder why i did not have this issue but you did. Why does GPIO IRQ latency not matter in my case but it does in your case. |
No description provided.
The text was updated successfully, but these errors were encountered: