Skip to content
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

SerialUPDI implementation - release candidate 1 #772

Merged
merged 13 commits into from
Dec 22, 2021
Merged

Conversation

dbuchwald
Copy link
Contributor

This pull request contains most up-to-date version of SerialUPDI implementation. Sources have been moved to src/ folder and all the latest changes from the main branch have been incorporated.

This version has been thoroughly tested against the following devices:

  • ATtiny406 (new ATtiny 0-family, SOIC-20),
  • ATtiny416 (new ATtiny 1-family, SOIC-20),
  • ATtiny1626 (new ATtiny 2-family, SOIC-20),
  • ATmega808 (SSOP-28),
  • ATmega4809 (DIP-40),
  • AVR128DB28 (DIP-28),
  • AVR128DB64 (TQFN-64).

The following testing procedure was applied:

  • read factory settings from SIGNATURE, FUSES, EEPROM, FLASH and LOCK memories,
  • write simple slow blink program to FLASH memory,
  • write small change (BOD enable) to FUSES memory (both single fuse and FUSES memory),
  • write sample message to EEPROM memory,
  • lock device using LOCK memory,
  • try to write fast blink program to FLASH (expected fail - device locked),
  • try to erase device (expected fail - device locked),
  • force erase device,
  • upload fast blink program to FLASH,
  • kill AVRDUDE in the middle of EEPROM upload,
  • start EEPROM upload again - expected behaviour is being able to recover from failed NVM programming session and carry on as if nothing happened.

All these tests have been executed on every single device with both manual and automatic verification of memories. Each test passed successfully.

Here is the photo of the "test fixture":
IMG_3664

Known issues:

  • currently AVRDUDE doesn't support USERROW memory. Support for this was implemented in Serial UPDI programmer and partially tested, but this is a bigger story to decide how to handle this later,
  • DA-series chips haven't been tested - I haven't had access to them,
  • NVM mode 3 has not been tested, since I don't have EA-series chips either. I don't even know if they can be obtained,
  • EEPROM upload is extremely slow on DA-series devices due to definition of single-byte pages in AVRDUDE.CONF. I tested in against my devices with 32-byte page settings and it all worked very well (and significantly faster), but I didn't want to change AVRDUDE.CONF without good enough understanding of the existing configuration,
  • all the tests were done using baud rate od 230400 with FTDI FT232RL based USB->UART adapter (built on the breadboard). Probably some more testing with different adapters could be done, but I'm not sure if this is needed,
  • Windows build wasn't tested in this iteration, everything was tested on MacOS.

Bottom line: I believe this version of AVRDUDE SerialUPDI is stable and mature enough for public experimental release, hence the pull request being raised. I will be happy to answer any questions/comments here.

Have a great Holidays!

…lementation

git-svn-id: svn://svn.savannah.nongnu.org/avrdude/branches/serial_refactoring@1511 81a1dc3b-b13d-400b-aceb-764788c761c2
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/branches/serialupdi@1513 81a1dc3b-b13d-400b-aceb-764788c761c2
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/branches/serialupdi@1514 81a1dc3b-b13d-400b-aceb-764788c761c2
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/branches/serialupdi@1516 81a1dc3b-b13d-400b-aceb-764788c761c2
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/branches/serialupdi@1517 81a1dc3b-b13d-400b-aceb-764788c761c2
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/branches/serialupdi@1518 81a1dc3b-b13d-400b-aceb-764788c761c2
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/branches/serialupdi@1519 81a1dc3b-b13d-400b-aceb-764788c761c2
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/branches/serialupdi@1520 81a1dc3b-b13d-400b-aceb-764788c761c2
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/branches/serialupdi@1522 81a1dc3b-b13d-400b-aceb-764788c761c2
@dl8dtl
Copy link
Contributor

dl8dtl commented Dec 22, 2021

Your work (and the test fixture :-) is impressive!
The only thing I'd like to have is some documentation. By now, this is still texinfo files (which is not really related to TeX or LaTeX, it's yet another markup format, and offered the option to derive a PS / PDF file from back 20 years ago). I'd appreciate having that ASCII graphic there in the documentation.
Later on, if someone volunteers to migrate the texinfo stuff, I'm fine with moving documentation towards .md or such, but that's a different story.

@dbuchwald
Copy link
Contributor Author

You are right, I should have thought of that. Do you want me to withdraw the PR and come back with updated one that will contain documentation updates, or would you rather merge that one in, followed by another?

@dl8dtl
Copy link
Contributor

dl8dtl commented Dec 22, 2021

I can merge that one, I'm not afraid you'll disappear before you can keep your promise to also extend the documentation. ;-)

@dl8dtl dl8dtl merged commit 2c0ccfe into avrdudes:main Dec 22, 2021
@mcuee mcuee added the enhancement New feature or request label Jun 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants