Hello there, I’ve been trying to work out this problem for a few weeks now, with no changes. My issue is that when I press the first GP button on my SID minimal CS it works just fine, but the second GP button acts like every other button there is. When I hold it down it activates the shift function, and when I release it toggles the waveform, sync function, and menu page. Every other pin on the DIN chain doesn’t respond. I’ve tried everything from the interconnection test, which showed good values, using different DIN boards, switching 165s, using different PICs, using different PIC cores, and changing the code, as well as using the default setup file. I have no idea what can be causing this issue, since I feel like I’ve covered all the bases multiple times, if anyone has any idea where to look next let me know. :]
EDIT: oh, and it was all working before, as the full CS, then my DOUT stuff started to mess up, then my DIN stuff, now none of the SRIO stuff works
at this point, after confirming it’s not a wiring issue, multiplexer issue, board issue, or software issue, I have pretty much confirmed in my head that it’s a PIC issue, though I do not have any more PICs to test with. So this leaves me at still needing a minimal CS for my SID. My thoughts right now are on using J5 without multiplexers as digital inputs, which requires coding (and I am still learning). I will post updates if I get anywhere with this, or if anyone would like to help I would very much appreciate it
Although I don’t want to from trying to implement the J5 based button functions: for me it sounds like a problem with the SC line to the shift register. If it would be permanently 0V or 5V, you would notice exactly the described issue.
I just ran the SRIO test again, and it reads 0.1v when it should be 0v, and then 6v when it should be 5v. I checked the voltage when I ran the SID application too, and it reads 1.25v between VS and SC; and -4.38v between VD and SC, are these correct? I don’t have a scope so I can’t tell if the voltage is continuous or just refreshing at a rate that’s too fast for my multimeter. I’ve essentially switched everything out in the project except the PIC, which leads me to believe it’s the PIC. I’ve even redone the wiring multiple times and have used different DIN modules and Core modules.
also, I have tried to implement it using the J5 DIN demo application, can’t seem to figure out what is wrong with my implementation care to look through some source code?
thanks for being awesome tK :] so here what’s going on in the source: I added the j5_din.inc and tried calling all the neccesary functions in main.inc. also I setup the registers for the j5_din in app_defines. i’m still new to programming and have been practicing for a few weeks now, but I’m still a newb.
There is probably a conflict with J5_IO* which is initialized in main.inc as well (e.g. if DEFAULT_J5_FUNCTION == 2 or DEFAULT_J5_FUNCTION == 3, search for this)
Ensure that this function won’t be called, because it will configure the J5 pins as outputs.
I edited out the J5_IO_Init for DEFAULT_J5_FUNCTION == 4, but i also edited the button macro and the encoder macro at the begining of the tables in setup_8580.asm. I did this to try to assign buttons to SR 0 (J5), but I do not know if I failed or not (i’m not so good with registers and such).
-ajax
edit2: i thought that if you send 1 to J5_IO_Init then it will setup J5_IO as an input, as opposed to sending it 0 which will set it up as an output
edit: also, doesn’t it call j5_io* in j5_din? do I need to disable this?
this was in j5_din.inc:
;; initialize J5 via J5_IO driver (ensures compatibility between different PIC devices)
goto J5_IO_Ini
it’s okay tK, we all have lives outside of our tinkering :] thank you for the help you have given and designing this robust system :] i shall research and tinker some more