-
Notifications
You must be signed in to change notification settings - Fork 157
Feature hvsp ppi #1445
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature hvsp ppi #1445
Conversation
…hecking SDO when latching
I actually do not know what is
|
I can not test this though as I do not have access to a PC with parallel port. And this will not work under Windows or macOS. Probably it will work on Linux and FreeBSD if one has the right PCs with real parallel port. |
From github action, this PR does not build under Windows. |
Thanks for your PR @psagi . This would be the first bit-banging high-voltage serial programmer other that the official ones. Good! Avrdude knows 3 programmers and 23 parts that support HVSP programming:
The PR needs a few changes before it can be considered for merging:
|
@stefanrueger Please refer to the following PR. The old I also believe that it will not work under macOS either. I 8000 have collected some info here. |
@stefanrueger Big thx for the detailed review and discussion of my PR! Let me share my view on the issues that I have also considered during implementing the indeed minimal fuse-resetter feature.
To sum it up, my plans are (for short term): I am happy to hear your further thoughts on this, and especially the nice way of separating the HVSP functionality from the generic avr code but re-using the command bit handling and bitbangig parts. |
Sorry for being cryptic. It is a very simple circuit that fits in the case of a DB25 ('printer') connector. Details on this: https://pety.dynu.net/dapa_hvsp/
|
@psagi Can I suggest looking at how @jkent implemented an ftdi bitbanging jtag programmer for PR #1324. This is very well written, follows the AVRDUDE philosophy of separating out programmers, uses compile-time constants for the JTAG commands and works for a variety of JTAG parts and virtually all memories. The only reason we haven't merged PR #1324 yet is that we first need to establish exactly which parts it works for, but the team is on the case.
You can or the address into the constant command bits just like Jeff's code does. You would have different bitbang functions, of course, but the principle is the same.
In my experience this is very unlikely: even 10-year old computers rarely have parallel ports, so I predict the number of people being interested in this is vvv small. Incomplete PRs more likely raise expectations and lead to complaints that then clutter the issues page b/c no-one comes forward solving what the original contributor failed to provide, which isn't helpful for the maintainers and the user base alike.
Any implemented programmer should be a full programmer not only one that is able to reset fuses. This to ease documentation and maintainability and to avoid raising unmet expectations. It's not that hard to serve all memories, see code example here and here.
Not necessary if you follow above route.
@mcuee told us there are no drivers for parallel ports in Windows (Vista/7/8/8.1/10/11). So you might need to restrict your code using PR #1324's approach works so much better for the AVRDUDE philosophy, maintenance that I suggest closing this PR #1445 altogether, and asking you to consider the way PR #1324 has contributed a programmer if you wanted to provide a useful HVSP programmer for AVRDUDE. |
Please do consider above (use the same techniques as PR #1324). Another pro-tip: start form scratch from the current main branch to avoid merge conflicts. Your branch is > 417 commits behind. |
@stefanrueger Thank you for the insight and your time reviewing this PR. I have looked into PR #1324 and understood that going that way would be a huge benefit wrt. avrdude code maintainability - and also a quite significant effort to refactor my PPI HVSP code. Considering PPI is really not in the wild these days, this feature might be interesting only for the ones like me having piles of ancient hardware in their garage :) |
Fair enough, .. and should you stretch to implementing a full HVSP bitbanging programmer I am sure the team here would welcome a new PR very much.
... and thanks for thinking of us in the first place
|
Hmm, I can not move this to discussion, never mind. |
With this patch and a simple dapa-like hardware avrdude is able to re-enable the RESET function of PB5 of ATtiny85 on the Digispark board. To be more accurate: signature reading, fuses reading and writing in HVSP (High-Voltage Serial Programming) mode is implemented. Tested on ATtiny85 on a Digispark clone board. (Should work for other AVRs supporting HVSP.)