CH341A Mini Flash Programmer
ຄໍາແນະນໍາ
CH341A Mini Flash Programmer
ເນື້ອໃນ: [Dobrica PavlinuÅ¡iÄ's random unstructured stuff]
ນີ້ແມ່ນອຸປະກອນ 5V ໂດຍບໍ່ມີການດັດແປງ! ມັນເຮັດວຽກສໍາລັບຂ້ອຍ (tm) ແຕ່ເຈົ້າໄດ້ຮັບການເຕືອນ http://www.eevblog.com/forum/repair/ch341a-serial-memory-programmer-power-supply-fix/ພຽງແຕ່ຍົກເຂັມປັກໝຸດ 28 ແລະເອົາເທບບາງໆໃສ່ໄວ້ເພື່ອປ້ອງກັນການເກີດໄຟຟ້າລັດວົງຈອນ. ຫຼັງຈາກນັ້ນ, solder ຫນຶ່ງສາຍຈາກ pin ນີ້ໄປ pin 2 ຂອງ AMS1117 ແລະຍັງ C4. ດ້ານຂ້າງຂອງ C4 ເພື່ອເຊື່ອມຕໍ່ແມ່ນຫນຶ່ງທີ່ເຊື່ອມຕໍ່ກັບ CH341A pin 9.
CHM341A-3V3-fix.jpg
jumper ສຸດ pins
1-2 ໂໝດໂປຣແກຣມເມີແຟລດ SPI
2-3 ຮູບແບບ Serial TTL
ຮອງຮັບອອກນອກກ່ອງໂດຍ flashrom, ອາດຈະເປັນທາງເລືອກທີ່ດີກວ່າ, ແຕ່ຢ່າງໃດກໍ່ຕາມ:
https://github.com/setarcos/ch341prog
dpavlin@nuc:/nuc/ch341a$ git clone https://github.com/setarcos/ch341prog
Cloning ເຂົ້າໄປໃນ 'ch341prog'…
ໄລຍະໄກ: ການນັບວັດຖຸ: 104, ເຮັດແລ້ວ.
ຣີໂໝດ: ທັງໝົດ 104 (delta 0), ນຳໃຊ້ຄືນ 0 (delta 0), pack-reused 104
ໄດ້ຮັບວັດຖຸ: 100% (104/104), 34.79 KiB | 0 bytes/s, ແລ້ວໆ.
ການແກ້ໄຂ deltas: 100% (61/61), ສໍາເລັດ.
ກຳລັງກວດສອບການເຊື່ອມຕໍ່... ແລ້ວໆ.
dpavlin@nuc:/nuc/ch341a$ cd ch341prog/
dpavlin@nuc:/nuc/ch341a/ch341prog$ ເຮັດ
gcc -std=gnu99 -Wall ch341a.c main.c -o ch341prog -lusb-1.0
dpavlin@nuc:/nuc/ch341a/ch341prog$ ./ch341prog
ການນຳໃຊ້:
-h, -ຊ່ວຍສະແດງຂໍ້ຄວາມນີ້
-i, –info ອ່ານຂໍ້ມູນ chip ID
-e, –erase ລົບຊິບທັງໝົດ
-l, -length ກໍານົດຄວາມຍາວດ້ວຍຕົນເອງ
-w, -ຂຽນfilename> ຂຽນ chip ກັບຂໍ້ມູນຈາກ fileຊື່
-r, -ອ່ານfilename> ອ່ານ chip ແລະບັນທຶກຂໍ້ມູນໃສ່ fileຊື່
-t, –turbo ເພີ່ມຄວາມໄວລົດເມ i2c (-tt ເພື່ອໃຊ້ຄວາມໄວໄວຫຼາຍ)
-d, -ເພີ່ມຄວາມໄວລົດເມ spi ສອງເທົ່າ
I2C ໃນພື້ນທີ່ຜູ້ໃຊ້
https://sourceforge.net/projects/ch341eepromtool/
dpavlin@nuc:/nuc/ch341a/ch341eepromtool_0.5$ gcc -o ch341eeprom ch341eeprom.c ch341funcs.c -lusb-1.0
dpavlin@nuc:/nuc/ch341a/ch341eepromtool_0.5$
dpavlin@nuc:/nuc/ch341a/ch341eepromtool_0.5$ ./ch341eeprom
ch341eeprom – ເຄື່ອງມືການຂຽນໂປຣແກຣມ i2c EEPROM ສໍາລັບ WCH CH341a IC
ສະບັບ 0.5 ລິຂະສິດ (c) 2011 asbokid
ໂຄງການນີ້ມາພ້ອມກັບການຮັບປະກັນຢ່າງແທ້ຈິງທີ່ບໍ່ມີ; ນີ້ແມ່ນຊອບແວຟຣີ,
ແລະທ່ານຍິນດີທີ່ຈະແຈກຢາຍມັນຄືນໃຫມ່ພາຍໃຕ້ເງື່ອນໄຂສະເພາະໃດຫນຶ່ງ:
GNU GPL v3 ໃບອະນຸຍາດ: http://www.gnu.org/licenses/gpl.html
ການນຳໃຊ້:
-h, -ຊ່ວຍສະແດງຂໍ້ຄວາມນີ້
-v, –verbose verbose ຜົນຜະລິດ
-d, –debug debug ຜົນອອກມາ
-s, –size ຂອງ EEPROM {24c32|24c64}
-e, –erase erase EEPROM (ຕື່ມຂໍ້ມູນໃສ່ 0xff)
-w, -ຂຽນfileຊື່> ຂຽນ EEPROM ດ້ວຍຮູບພາບຈາກ fileຊື່
-r, -ອ່ານfileຊື່> ອ່ານ EEPROM ແລະບັນທຶກຮູບພາບໃສ່ fileຊື່
Example: ch341eeprom -v -s 24c64 -w bootrom.bin
flashrom SPI
ບໍ່ຈໍາເປັນອີກຕໍ່ໄປ, ລວມຢູ່ໃນ flashrom ຕົ້ນຕໍ
git clone https://github.com/urjaman/flashrom/
git checkout -b origin/ch341a origin/ch341a
dpavlin@nuc:/nuc/flashrom$ sudo apt-get ຕິດຕັ້ງ pciutils-dev
ໂມດູນ spi kernel linux
dpavlin@nuc:/nuc$ git clone https://github.com/gschorcht/spi-ch341-usb.git
Cloning ເຂົ້າໄປໃນ 'spi-ch341-usb'…
ໄລຍະໄກ: ການນັບວັດຖຸ: 63, ເຮັດແລ້ວ.
ຣີໂໝດ: ທັງໝົດ 63 (delta 0), ນຳໃຊ້ຄືນ 0 (delta 0), pack-reused 63
ວັດຖຸສິ່ງຂອງ: 100% (63/63), ສໍາເລັດ.
dpavlin@nuc:/nuc$ cd spi-ch341-usb
dpavlin@nuc:/nuc/spi-ch341-usb$ ເຮັດ
ເຮັດໃຫ້ -C /usr/src/linux-headers-4.14.0-3-amd64/ M=/nuc/spi-ch341-usb modules
make[1]: ເຂົ້າສູ່ directory '/usr/src/linux-headers-4.14.0-3-amd64'
CC [M] /nuc/spi-ch341-usb/spi-ch341-usb.o
ໂມດູນການກໍ່ສ້າງ, stagແລະ 2.
MODPOST 1 ໂມດູນ
CC /nuc/spi-ch341-usb/spi-ch341-usb.mod.o
LD [M] /nuc/spi-ch341-usb/spi-ch341-usb.ko
make[1]: ອອກຈາກໄດເຣັກທໍຣີ '/usr/src/linux-headers-4.14.0-3-amd64'
dpavlin@nuc:/nuc/spi-ch341-usb$
dpavlin@nuc:/nuc/spi-ch341-usb$ sudo ເຮັດການຕິດຕັ້ງ
[sudo] ລະຫັດຜ່ານສໍາລັບ dpavlin:
dpavlin@nuc:/nuc/spi-ch341-usb$ sudo modprobe spi-ch341-usb
[525021.048281] spi-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: output cs0 SPI slave with cs=0
[525021.048285] spi-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: output cs1 SPI slave with cs=1
[525021.048287] spi-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: output cs2 SPI slave with cs=2
[525021.048290] spi-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: ປ້ອນຂໍ້ມູນ gpio4 gpio=0 irq=0 (hwirq)
[525021.048292] spi-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: ປ້ອນຂໍ້ມູນ gpio5 gpio=1 irq=1
[525021.048296] spi-ch341-usb 2-2.1.4:1.0: ch341_spi_probe: SPI master ເຊື່ອມຕໍ່ກັບ SPI bus 0
[525021.048426] spi-ch341-usb 2-2.1.4:1.0: ch341_spi_probe: SPI ອຸປະກອນ /dev/spidev0.0 ສ້າງແລ້ວ
[525021.048516] spi-ch341-usb 2-2.1.4:1.0: ch341_spi_probe: SPI ອຸປະກອນ /dev/spidev0.1 ສ້າງແລ້ວ
[525021.048596] spi-ch341-usb 2-2.1.4:1.0: ch341_spi_probe: SPI ອຸປະກອນ /dev/spidev0.2 ສ້າງແລ້ວ
[525021.049147] spi-ch341-usb 2-2.1.4:1.0: ch341_usb_probe: ເຊື່ອມຕໍ່ແລ້ວ
[525021.049194] usbcore: ລົງທະບຽນໄດເວີການໂຕ້ຕອບໃຫມ່ spi-ch341-usb
ໂມດູນ linux kernel i2c
https://github.com/gschorcht/i2c-ch341-usb
root@nuc:/nuc# git clone https://github.com/gschorcht/i2c-ch341-usb.git
Cloning ເຂົ້າໄປໃນ 'i2c-ch341-usb'…
ໄລຍະໄກ: ການນັບວັດຖຸ: 39, ເຮັດແລ້ວ.
ຣີໂໝດ: ທັງໝົດ 39 (delta 0), ນຳໃຊ້ຄືນ 0 (delta 0), pack-reused 39
ວັດຖຸສິ່ງຂອງ: 100% (39/39), ສໍາເລັດ.
root@nuc:/nuc# cd i2c-ch341-usb
root@nuc:/nuc/i2c-ch341-usb# ເຮັດ
ເຮັດໃຫ້ -C /usr/src/linux-headers-4.14.0-3-amd64/ M=/nuc/i2c-ch341-usb modules
make[1]: ເຂົ້າສູ່ directory '/usr/src/linux-headers-4.14.0-3-amd64'
CC [M] /nuc/i2c-ch341-usb/i2c-ch341-usb.o
ໂມດູນການກໍ່ສ້າງ, stagແລະ 2.
MODPOST 1 ໂມດູນ
CC /nuc/i2c-ch341-usb/i2c-ch341-usb.mod.o
LD [M] /nuc/i2c-ch341-usb/i2c-ch341-usb.ko
make[1]: ອອກຈາກໄດເຣັກທໍຣີ '/usr/src/linux-headers-4.14.0-3-amd64'
root@nuc:/nuc/i2c-ch341-usb#
root@nuc:/nuc/i2c-ch341-usb# sudo ເຮັດການຕິດຕັ້ງ
root@nuc:/nuc/i2c-ch341-usb# modprobe i2c-ch341-usb
[Wed Feb 7 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0:ch341_cfg_probe: output gpio1 gpio=1 irq=1
[Wed Feb 7 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0:ch341_cfg_probe: output gpio2 gpio=2 irq=2
[Wed Feb 7 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0:ch341_cfg_probe: output gpio3 gpio=3 irq=3
[Wed Feb 7 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0:ch341_cfg_probe: input gpio4 gpio=4 irq=4 (hwirq)
[Wed Feb 7 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0:ch341_cfg_probe: input gpio5 gpio=5 irq=5
[Wed Feb 7 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0:ch341_cfg_probe: input gpio6 gpio=6 irq=6
[Wed Feb 7 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0:ch341_cfg_probe: input gpio7 gpio=7 irq=7
[Wed Feb 7 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0:ch341_i2c_probe: ສ້າງອຸປະກອນ i2c /dev/i2c-8
[Wed Feb 7 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0:ch341_i2c_set_speed: ປ່ຽນຄວາມໄວລົດເມ i2c ເປັນ 100 kbps
[Wed Feb 7 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0:ch341_usb_probe: ເຊື່ອມຕໍ່
[Wed Feb 7 16:37:00 2018] usbcore: register new interface driver i2c-ch341-usb
schematics ແລະຂໍ້ມູນ
http://onetransistor.blogspot.hr/2017/08/ch341a-mini-programmer-schematic.html
http://www.zoobab.com/ch341-usb-spi-i2c-uart-isp-dongle
ຂ້າພະເຈົ້າໄດ້ເພີ່ມ soic 8 pinout ໃນໄລຍະ socket zif, ເນື່ອງຈາກວ່າຕໍາແຫນ່ງຂອງ pin 1 ແມ່ນບໍ່ຊັດເຈນ (ຫຼືຫມາຍຢ່າງຊັດເຈນຢູ່ບ່ອນໃດຢູ່ເທິງສຸດ). ຂ້າພະເຈົ້າແນະນໍາໃຫ້ທ່ານແກ້ໄຂມັນດ້ວຍເງິນ sharpy.
schematics ທາງເລືອກ
https://github.com/Upcycle-Electronics/CH341A-Pro
ch341Apro_schematicV01.pdf
ເອກະສານ / ຊັບພະຍາກອນ
![]() |
Saturn CH341A Mini Flash Programmer [pdf] ຄໍາແນະນໍາ CH341A Mini Flash Programmer, CH341A, Mini Flash Programmer, ໂປຣແກມ Flash, ໂປຣແກຣມເມີ |