On Sat, 1 Sep 2012 16:55:03 +0200 Virgil-Adrian Teaca darkstarlinux@gmail.com wrote:
Talking about the function DSR, in the AJAWe programmer, I think that the Zenner diode D5 is labeled wrong. In fact, the circuit makes sense only if we assume that DSR is high when the supply voltage VCC reaches a level of 3V.
i would agree, but i dont see it (it might make sense to look at the PCB instead of the schematic to understand it, but i am way too lazy :).
In other words, the DSR is used to signal that the circuit power, and he can work properly. And it seems that the original programmer made the same assumption.
what do you mean with the original programmer? did you disassemble the original software?
My patch check the DSR to emulate the original programmer operation.
this is your code: … /* The AJAWe serial programmer just have DSR off when it is active. */ data_in = sp_get_pin(PIN_DSR);
if(data_in) { have_prog = 0; } if (!have_prog) { msg_perr("No compatible %s programmer detected.\n", ((pony_type == TYPE_AJAWE) ? "AJAWe" : "SI-Prog")); return 1; }
i read that as if (DSR == high) then no ajawe attached. correct me please if that is wrong. if it would be if (DSR == low)... then i would agree with you that it is the most plausible configuration, but your code does not make sense to me.
since we can not test or verify it otherwise, i will disable the detection for now as posted. we can add it later if need be and we find out how it really is supposed to work. thanks for looking at the changes and your initial patch!
what do you mean with the original programmer? did you disassemble the original software?
No, I did not used the reverse engineering. There are only a number of assumptions, while I looked at PDF manual of the programmer.
this is your code: … /* The AJAWe serial programmer just have DSR off when it is active. */ data_in = sp_get_pin(PIN_DSR);
if(data_in) { have_prog = 0; } if (!have_prog) { msg_perr("No compatible %s programmer detected.\n", ((pony_type == TYPE_AJAWE) ? "AJAWe" : "SI-Prog")); return 1; }
i read that as if (DSR == high) then no ajawe attached. correct me please if that is wrong. if it would be if (DSR == low)... then i would agree with you that it is the most plausible configuration, but your code does not make sense to me.
Ouch, you just found a bug in the detection code. :)
The right code (after my last thinking) is:
/* The AJAWe serial programmer just have DSR on when it is active. */ data_in = sp_get_pin(PIN_DSR);
if(!data_in) { have_prog = 0; }
since we can not test or verify it otherwise, i will disable the detection for now as posted. we can add it later if need be and we find out how it really is supposed to work. thanks for looking at the changes and your initial patch!
I totally agree with the disabling of AJAWe auto-detection until we figure out how it really works and IF really we need it.
All the best, Virgil-Adrian.