Ajax Posted February 28, 2013 Report Share Posted February 28, 2013 (edited) 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 :P -ajax Edited February 28, 2013 by Ajax Quote Link to comment Share on other sites More sharing options...
Ajax Posted February 28, 2013 Author Report Share Posted February 28, 2013 the only similiar issues that I have found other people have both point to two different things, the first one is more directly related to the PIC and is from this topic ( ), though I really hope that I didn't burn out both of my PICs. the other topic I found didn't really help, but the guy had the same issues, -ajax Quote Link to comment Share on other sites More sharing options...
Ajax Posted March 1, 2013 Author Report Share Posted March 1, 2013 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 :D -ajax Quote Link to comment Share on other sites More sharing options...
TK. Posted March 2, 2013 Report Share Posted March 2, 2013 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. Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Ajax Posted March 3, 2013 Author Report Share Posted March 3, 2013 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. -ajax Quote Link to comment Share on other sites More sharing options...
Ajax Posted March 3, 2013 Author Report Share Posted March 3, 2013 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? -ajax Quote Link to comment Share on other sites More sharing options...
TK. Posted March 3, 2013 Report Share Posted March 3, 2013 Yes, just type "make clean" in the application directory, pack it into a .zip file and attach it to this thread. Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Ajax Posted March 3, 2013 Author Report Share Posted March 3, 2013 (edited) 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. -ajax midibox_sid_v2_041_ajax_edit.zip Edited March 3, 2013 by Ajax Quote Link to comment Share on other sites More sharing options...
TK. Posted March 3, 2013 Report Share Posted March 3, 2013 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. Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Ajax Posted March 3, 2013 Author Report Share Posted March 3, 2013 (edited) 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 midibox_sid_v2_041_ajax_edit_v2.zip Edited March 3, 2013 by Ajax Quote Link to comment Share on other sites More sharing options...
TK. Posted March 4, 2013 Report Share Posted March 4, 2013 (currently I've not so much time to give you direct help on this) I hope that my assumption: ;; note: if some memory is required, 0xa80-0xaff could be used, because the wavetable only needs to exist once is still true - I never checked this if any part of the firmware really never overwrites 0xa80..0xaff Anyhow, I guess the problem is, that j5_din.inc is not prepared for the case that somebody locates the variables to addresses >= 0x80 This code has to be changed, so that BANKED accesses are used. See also this documentation: http://svnmios.midibox.org/filedetails.php?repname=svn.mios&path=%2Ftrunk%2Fdoc%2Fmios%2Fmios_ram_handling.txt Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
Ajax Posted March 5, 2013 Author Report Share Posted March 5, 2013 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 -ajax Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.