STM32-based programmer for popular IC's, interface between PC old IC world. The project is unfinished, so here are the IC list with degree of readiness on them:
*SPI flash - tested on only one w25q64, TODO: copy full list of SPI flash from flashrom app.
*I2C flash - tested on only one m24c64, TODO: copy full list of I2C flash from flashrom app.
*DS1990 - key reader tested, writing of RW1990 works in half of the cases. TODO: find full command system of RW1990.
*AVR - programmer written, not tested. TODO: test and debug, add full list of AVRS (today mega8/328, tiny13 only).
*STM32 - flash page written successfully. TODO: add flash command to the interface, for all STM32s.
*NRF51 - flash access registers added. TODO: try to write flash using ADI from previous point, add to the interface.
*CH32V003 - functions for writing flash through 1 wire written, not tested. TODO: test, add to the interface.
*CC2640 - my dream to try them.
At first i written a programmator for two flash IC's in order to switch off cartridge control function on the printer. As a way for connecting device with PC I choose the virtual COM port through USB instead of just libusb. Because we do not need a driver installation even on windows in this case. At the same time, there is no so much difference between transmitting data throught the USB bulk endpoint in USB-COM abstracion and without it. Another advantage of the first attempt was HEX viewer, which was able to open large files.
Later I learned an ARM SWD interface and ADI debug module by ARM official pdf's for a long time. At the end I was able to access to the registers of my STM32. And I was so much glad to write the flash page and read signature register through my register access functions. And i dropped the project at this point.
Then I was need a key in order to get home. In the case of key, there was a datasheet for original key, which helped to write key reader. But for writing still there isn't any documentation. Because keys for Russian home entrance doors made by Chinese nonames for left-handed resellers. So, you can buy rewritable version of DS1990 key, but there isn't any information about its protocol. I copied three versions of protocol from the github, some of they are works in the half of cases.
Subsequently I was sad, that BlackMagick project made the universal programmator first.
This strengthened my idea of increasing the quantity of types of supported IC's. I read about way of flashing NRF51 and filled the appropriate registers. And written the support of unique parody of STM8 SWIM interface, used in CH32V003 RISCV chinese microcontrollers. All of this except the key and two flash IC's is still waiting for adding to the PC interface, written in QT.
Today I need to upload a firmware into my transistortester clone. So, I added the Atmega support. At hat moment the interface is refactored for easier addition of new IC's.
And at programmator side I came up with the usbfunction library. This library help to just simply call the functon on the microcontroller through the USB on the interface side. This function also increase the speed of adding of new types of microcontrollers.
For today, I need to try and debug my Atmega module of programmer. Then I have to finish the full AVR list.