I have the new PCB assembled and installed above the 1.6mhz cpu card. It generally looks ok but it won’t run Blink.
If I make a very simple assembly program that blinks q it’s fine. I had a problem like this in june getting the 4mhz cpu card working – that, I believe was sloppy soldering. I can’t see that here but I’ll take it apart and touch everything up.
I took apart a C program to get the smallest things that would fail/not fail. I find that if I put a seq/idl right after the lcc1802init label it halts with Q on. if i move it down one instruction, after ldireg rcall, it halts, if i go one more, after the ldireg rret, it doesn’t halt. I can also duplicate the ldireg rret so it’s both before and after the seq/idl and it works. Semantically that doesn’t make any sense to me.
I found one not-great solder joint and reseated the ic’s. The situation changed very slightly. It now halts as expected with the seq/idl after the ldireg rret but fails if i move it after the ldireg sp.
I’m quite sure it has nothing to do with the code.
Update: HAH! i put the new board on the 4mhz cpu card and it seems fine. Either something physically wrong with the 1.6mhz card or some timing thing that I’m forgetting
Update Aug 10: Changing a delay constant (presstimeu) in the avr loader code from 10 to 20 us makes it work ok. I would have sworn i had run the version 2 olduino on the slower mc but whatever. The effect on load time is minimal, it adds .12 sec for a 6k load which takes 2 sec total.