Setting up and working with the CH341A programmer

At the moment there are a lot of programmers on the market, of various modifications and designs, moreover, the same programmer can be produced in different cases, in different configurations, even more programmers are no longer relevant now, since they are either used for old types of microcircuits, or have given way place to better (price, availability) competitors. One of these “grandfathers” is the “PONYPROG” programmer, which in my opinion is the most common and simple programmer that almost every master should know about. It supports work not only with ROM memory chips, but also with Atmega microcontrollers, via buses such as I2C, SPI and Microwire (a type of SPI for 93cxx EEPROM)
EVO2 модуль.jpg
EVO2 модуль.jpg

The scheme of the ponyprog programmer


Chip ch341

Unfortunately, as we can see from the diagram, the operation of this programmer requires a COM port, which is a big disadvantage for modern computers and laptops, in which even USB ports increasingly begin to disappear or “transform,” as in the story with the new MacBook. There are many adapters USB-COM, but very often they either do not work at all or very often fail, so for working with modern devices you need to look for a more suitable programmer and one of such programmers became CH341a, after the name of the key chip from which it consists.

CH341 is not a programmer, but a converter (converter) of a USB bus to a synchronous serial interface, such as a two-wire (I2C) or four-wire (SPI) bus.
There are many varieties of this programmer on the market, which are available in different cases, without cases, or even as a zip set.

Programmer buses ch341

This programmer is suitable for programming via I2C or SPI buses, this is how I would like to convey information, not to say that it supports EVO2 or does not support EVO1, but specifically via buses, because microcircuits on different devices can work on these buses, not only on washing machines, but also on TVs and radios, you need to understand that there is a concept of a bus (see Lesson above) and a programmer is already selected in relation to it.

I2C is SCL(pin 24) and SDA(pin 23)
SPI is CLK(pin 18), MOSI(pin 20), MISO(pin 22) and CS(pin 15)

As can be seen from the diagram, the programmer is very simple and, if desired, you can assemble it yourself, having only one CH341a chip on hand, but do not forget that there is also a CH341H and its “pinout” differs from the CH341A, it is worth taking this into account and carefully studying the service information (datasheet) for this chip.

Installing drivers

A device driver is essentially an instruction for an operating system, with a set of commands that this device supports; standard devices, such as a mouse or keyboard, do not require separate driver installation, since this was already provided by the developers of the operating system, but rarely used devices , such as programmers, always need to install drivers and we will talk about this process now.
To install drivers, you need to open the device manager, connect the programmer to USB connector and find it in the list, most likely it will be identified as an “unidentified device”, then right-click and install the driver, indicating the location on the computer where it is located.
It is advisable to restart the computer after each such procedure.
After the reboot, we open our device manager again and make sure that the programmer is detected and there are no exclamation marks next to it.
Драйвера на CH341.jpg

Disabling digital signature verification

If you have Windows 8 or older, you may have problems with unsigned drivers for this or another programmer; to solve this problem you need

1: Enter “gpedit.msc” in the search bar of your system and click OK (the Group Policy Editor will launch)
2: Go to User Configuration > Administrator Templates > System - User Configuration > Administrative Templates > System and double click on “Driver Installation”
3: In the settings submenu displayed in the right pane, right-click on “Code signing for device drivers” and click Edit
4: Change the parameter value to Enabled and select “block” in the drop-down window
5: Apply and OK

The procedure for working with the programmer

After installing the drivers, you need to run the programs that come on the disk with this programmer, each program has a programmer connection identifier, and although this is not correct, I check the operation of the program-programmer combination by pulling the programmer out of the socket, I repeat that this is not correct , but that's how I do it.

After we have determined that the program sees our programmer, if it doesn’t see it, see the “Installing drivers” item or remove the driver (device manager > remove driver) and try installing another one, select our chip and click READ

I recommend that you always read the firmware before writing it, so that you still have the opportunity to return to what it was, this is a very good habit and in some cases it can save the situation.

What can and cannot be ch341

The ROM programmer allows you to flash memory chips, but in washing machines they are becoming less and less common because the manufacturer places all the information directly in the microcontroller, but many microcontrollers, for example the same RENESAS allow you to communicate with yourself via the i2c or spi bus, which is exactly supported by this programmer, but when the microcontroller communicates with the programmer via this bus and there is a communication protocol:
Petya this is Sasha - send me some pizza
Sasha is Petya - no pizza, just a pie with potatoes
As you understand, pizza is the firmware, Petya and Sasha are the programmer and microcontroller, and for them to work, the processor needs to be running, i.e. You can’t communicate with a microcontroller like a “carcass”, while the ROM is even better when you communicate with it like that, i.e. completely de-energize and connect directly, reading and writing everything indiscriminately.
When working with a microcontroller, you need it to transmit the data itself, and if you do not perform the ritual of the exchange protocol, it will not do this
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.