Conversation
|
Great work. 😃 I don't have any OSCR with Vselect so I can't test it though As far as I remember it was important with Vselect that the 5V the OSCR starts with gets switched to 3.3V fast enough so that 3.3V cartridges never see the 5V. |
|
Thank you very much for your comment. 😃 I just noticed the pin I used (D13) is not suitable for VSELECT because it is used by LED on Arduino as well and it changes voltage unexpectedly on boot. Then, I'm going to change the pin to another, so let me convert this PR to draft. |
|
I updated the code to use PD3 for VSELECT based on ENABLE_ROTARY flag. And I saw its voltage during boot by oscilloscope and it looks ok.
By the way, to prevent 5V spike during boot, PD3 must be pulled up to VCC like PD7 with R1(220R) on HW5. Without pull up, 5V spike happened like this: This happens on HW5 as well and it's critical, so we probably should mention about this pull up clearly. Wiki or warning message on compile seem good, but where would be the best place? |
|
My testing didn't show a 5V spike on HW5 anymore post-fix, likely because the 470uF capacitor buffers it before it can climb to 5V. Regardless, I made a bootloader that also fixes the issue by setting 3.3V even earlier. It will be added soon with the firmware rework. VSELECT was originally unavailable on HW3 because I didn't have one. It remained that way because it doesn't fit well. It would need a revision to HW3 to best fit it, and HW3 is no longer on the repository. Perhaps HW3 should still be on the repository since it's still popular as it's a smaller build? |
|
Thank you for the comments. I'm not sure how popular HW3 still is, but I believe there are still a fair number of people who built it in the past and continue to use it. VSELECT itself is a well-designed feature, and although it requires a pull-up, it can be controlled from pins other than PD7 with only minor changes. With proper external wiring, it also works reliably, so I feel it's reasonable to extend support to HW3 as well, not just HW5. That said, I don’t think we need to integrate VSELECT directly into the HW3 PCB at this point. The layout constraints you mentioned make sense, and in my view, external support is sufficient as long as the software handles it properly. Also, I may have made it sound like the goal was specifically to support HW3, but my intention is simply to enable VSELECT whenever there is a spare pin available (such as ROTARY or LCD). Whether it’s HW5 or not is less important—the key point is whether a controllable pin is connected to the VSNS pin of the TPS2113(A)PW(R). |



I'd like to use VSELECT on HW3, so I'm opening this PR.
As far as I understand, VSELECT is not available on HW3 because VSELECT depends on PD7(D38) and this pin is already connected to a button on HW3.
However, on HW3, PD3(D18) is available instead because this pin is connected to ROTARY that is not used on HW3. So, if PD3 can be used for VSELECT instead of PD7, then VSELECT can work on HW3.
Then, I changed the code like:
I tested on HW5 and customized HW3 that can have VSELECT module.
Please review when possible. Thanks in advance!