Tigard β ΡΡΠΎ ΠΏΠ»Π°ΡΠ° FT2232H Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ Π²Π·Π»ΠΎΠΌΠ° ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ (ΠΊΡΠ°ΡΠ΄ΡΠ°Π½Π΄ΠΈΠ½Π³)
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄Π΅ΡΠ΅Π²ΡΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΏΠ»Π°Ρ USB Π½Π° TTL 5 Π ΠΈΠ»ΠΈ 3,3 Π, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΈ/ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΏΠ»Π°ΡΠ°ΠΌ, Π½ΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Tigard Π½Π° Π±Π°Π·Π΅ FTDI FT2232H Π΄Π΅Π»Π°Π΅Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Π²Π·Π»ΠΎΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ°.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ, ΡΡΠΎ Tigard ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΡΠΌΠΎΠΉ Π·Π°ΠΌΠ΅Π½Ρ Π΄Π»Ρ Π΄Π΅ΡΡΡΠΊΠΎΠ² Π΄ΡΡΠ³ΠΈΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π° Π±Π°Π·Π΅ ΡΠΈΠΏΠΎΠ² FTDI ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ OpenOCD, FlashROM ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠ»Π°ΡΡ Tigard:
- ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠΏ β FTDI FT2232HQ, Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ USB-ΠΏΠΎΡΡ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ UART/FIFO IC
- ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ UART, Π²ΠΊΠ»ΡΡΠ°Ρ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠΈΠ³Π½Π°Π»Π°ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ
- ΠΡΠΎΡΠΈΡΠ½ΡΠΉ ΠΏΠΎΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ°Π·ΡΠ΅ΠΌΠ°ΠΌΠΈ Π΄Π»Ρ SWD, JTAG, SPI ΠΈ IΒ²C
- USB β ΠΏΠΎΡΡ USB 2.0 Type-C (480 ΠΠ±ΠΈΡ/Ρ)
- ΠΠ²ΠΎΠ΄Ρ/Π²ΡΠ²ΠΎΠ΄Ρ
- 9-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΌ UART
- Π Π°Π·ΡΠ΅ΠΌ Qwiic I2C
- 8-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΌ SPI ΠΈ I2C
- 8-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΌ JTAG
- 10-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΌ Cortex
- 14-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΌ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° (LA) Π΄Π»Ρ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ Π·Π° ΡΠΈΠ³Π½Π°Π»Π°ΠΌΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
- ΠΠ°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΎΡ 1,8 Π΄ΠΎ 5,5 Π
- Π Π°Π·Π½ΠΎΠ΅
- ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ, ΡΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ vTarget 1,8 Π, 3,3 Π, 5,0 Π ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ
- ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ, Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ SPI/JTAG ΠΈ IΒ²C/SWD.
- Π‘Π²Π΅ΡΠΎΠ²ΡΠ΅ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ Π΄Π»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ
ΠΠ΅Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ Π΄Π»Ρ Tigard, ΠΈ ΠΏΠ»Π°ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° USB, OpenOCD ΠΈ UrJTAG Π΄Π»Ρ JTAG, Flashrom, PyFtdi/PySpiFlash, LibMPSSE ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° SPI, Π° ΡΠ°ΠΊΠΆΠ΅ LibMPSSE ΠΈ PyFtdi / PyI2CFlash Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² I2C.
ΠΠ»Π°ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΠΊΠ°Π±Π΅Π»ΡΠΌΠΈ (SPI, JTAG, Cortex, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ) Ρ ΡΠ΅ΡΠΊΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄Π°ΠΌΠΈ. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π΄Π²Π° Π½Π°Π±ΠΎΡΠ°, ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠ»Π°ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Bitmagic Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SigrokΒ /Β PulseView, Π° Π²ΡΠΎΡΠΎΠΉ β Β«Applied Physical Attacks Online KitΒ», Π² ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π·Π°ΠΆΠΈΠΌΡ ΠΈ ΡΠ°Π·ΡΠ΅ΠΌΡ, ΠΏΡΠΎΡΡΠΎΠΉ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅ΡΡ, ΡΡΠΌΠΎΡΠΊΠ°-ΠΎΡΠ³Π°Π½Π°ΠΉΠ·Π΅Ρ, USB-ΠΌΠΈΠΊΡΠΎΡΠΊΠΎΠΏ ΠΈ ΡΠ΅Π»Π΅Π²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° (Π½Π΅Π½Π°Π·Π²Π°Π½Π½ΡΠΉ Wi-Fi-ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡ Π½Π° Π±Π°Π·Π΅ Linux).
ΠΠ° Github. Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ KiCAD ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. Tigard ΡΠΆΠ΅ ΡΠΎΠ±ΡΠ°Π» Π±ΠΎΠ»Π΅Π΅ 20 000 Π΄ΠΎΠ»Π»Π°ΡΠΎΠ² Π½Π° Crowd Supply Ρ Π²ΠΎΠ·Π½Π°Π³ΡΠ°ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ 39 Π΄ΠΎΠ»Π»Π°ΡΠΎΠ² Π·Π° ΠΏΠ»Π°ΡΡ ΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄Π° ΠΈ Π΄ΠΎ 1337 Π΄ΠΎΠ»Π»Π°ΡΠΎΠ² Π·Π° ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅. ΠΠΎΡΡΠ°Π²ΠΊΠ° Π² Π‘Π¨Π Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°, Π° Π² ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΡΠ°Π½Ρ β ΠΎΡ 10 Π΄ΠΎ 20 Π΄ΠΎΠ»Π»Π°ΡΠΎΠ². ΠΠΎΡΡΠ°Π²ΠΊΠΈ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ Π½Π°ΡΠ°ΡΡ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ ΡΠ΅Π²ΡΠ°Π»Ρ 2021 Π³ΠΎΠ΄Π°.
ΠΡΡΠ°ΠΆΠ°Π΅ΠΌ ΡΠ²ΠΎΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Π·ΡΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π° ΡΡΠ°ΡΡΡ, ΡΠ°ΠΉΡΡΒ cnx-software.com.
ΠΡΠΈΠ³ΠΈΠ½Π°Π» ΡΡΠ°ΡΡΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡΒ Π·Π΄Π΅ΡΡ.
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ openocd Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° ft2232h Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ swd
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ OPENOCD Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° FT2232H Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ SWD
Π£Π·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ Π»Π΅Π³ΠΊΠΎ ΠΌΠΈΠ³Π°ΡΡ Π²Π°Ρ MCU Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ARM, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ OpenOCD Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ FT2232H.
Π‘ΡΠ°ΡΡΠ΅ MCU ΠΎΡ ΡΠ°ΠΊΠΈΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠ², ΠΊΠ°ΠΊ ATMEL ΠΈ MICROCHIP, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ PIC16F ΠΈ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Atmega, ΠΈΠΌΠ΅ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ Π²ΡΠΏΡΡΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Atmega ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π° ΡΡΡΡΡΠΊΠΈ SPI (MISO, MOSI, SCK) ΠΈ PIC ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΄Π²Π° Π²ΡΠ²ΠΎΠ΄Π° (PGC, PGD) – ΠΎΠ΄ΠΈΠ½ ΠΊΠ°ΠΊ ΡΠ°ΡΡ, Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ°ΠΊ Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π»ΠΈΠ½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΠ²ΡΠ΅ MCU, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Ρ ΡΠ΄ΡΠΎΠΌ ARM, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ JTAG / SWD Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ / ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Joint Test Action Group (JTAG) ΠΈ Serug Wire Debug (SWD) Β«text-align: center;Β»>
Π‘ΠΈΠ³Π½Π°Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° SWD
ΠΠ±Π·ΠΎΡ OpenOCD
ΠΡΠΊΡΡΡΡΠΉ On-Chip Debugger (OpenOCD) – ΡΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠ΅Π»ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π²Π½ΡΡΡΠΈΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ³ΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΠ΄Π°ΠΏΡΠ΅Ρ – ΡΡΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠ΅Π»ΠΈ.
ΠΡΠ»Π°Π΄ΡΠΈΠΊ OpenOCD ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ² ΠΎΡΠ»Π°Π΄ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π²Π΅Π±-ΡΠ°ΠΉΡΠ΅ OpenOCD.
Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°Π±ΠΎΡΡ OpenOCD, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Π° ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅Π»ΡΡ, OpenOCD Π½Π°ΡΠ½Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Π΄Π΅ΠΌΠΎΠ½. Daemon – ΡΡΠΎ ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π½Π° Π·Π°ΠΏΡΠΎΡΡ ΡΠ»ΡΠΆΠ±. OpenOCD ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡ GDB, Telnet ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° OpenOCD
ΠΠ±Π·ΠΎΡ FT2232H
FT2232H – ΡΡΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ USB-ΠΏΠΎΡΡ Π΄Π»Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠΉ UART / FIFO IC. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠΎΠ²ΡΠΉ USB Ρ Π΄Π²ΡΠΌΡ ΠΏΠΎΡΡΠ°ΠΌΠΈ.
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΡ ΠΎΡΠ½Π°ΡΠ΅Π½ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Π΅ΠΌ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΌ Multi-Protocol Synchronous Serial Engine (MPSSE), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» (ΠΎΡ USB Π΄ΠΎ JTAG, I2C, SPI ΠΈΠ»ΠΈ Π±ΠΈΡ-Π±ΠΈΡ). ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΊΠ°Π½Π°Π» Ρ Π½ΡΠΆΠ½ΡΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ. MPSSE Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° ΠΊΠ°Π½Π°Π»Π΅ A ΠΈ ΠΊΠ°Π½Π°Π»Π΅ B ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°.
ΠΡΠ΄ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ±ΠΎΡΠΎΠΌ OpenOCD
ΠΡΠ±ΠΎΡ OpenOCD Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ FT2232H, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ Π±ΡΠ΄ΠΆΠ΅ΡΠ° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ.
ΠΠΎΠΌΠΈΠΌΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, OpenOCD ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ. ΠΠ, ΠΊΠ°ΠΊ ΠΈ Π² Π»ΡΠ±ΠΎΠΌ Π΄ΡΡΠ³ΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ΅ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
ΠΠ½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ Π·Π°ΡΡΠ°Π²ΠΈΡΡ OpenOCD ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΌΠΎΠΉ MCU, ΠΈ Ρ Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎΡ ΡΡΠ΅Π±Π½ΠΈΠΊ ΡΡΠ°Π½Π΅Ρ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΡΡΠ»ΠΊΠΎΠΉ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ ΡΠΎΠ²Π΅ΡΡΡ Π»ΡΠ±ΠΎΠΌΡ, ΠΊΡΠΎ ΠΈΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π²ΡΠ±ΠΈΡΠ°ΡΡ Ρ ΡΠΌΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ OpenOCD, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ Π»ΡΡΡΠΈΠΉ Π²ΡΠ±ΠΎΡ Π΄Π»Ρ Π²Π°Ρ!
ΠΡΡΠ³ΠΈΠΌΠΈ Ρ ΠΎΡΠΎΡΠΈΠΌΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ:
- Segger J-Link
- ULINK
- ΠΡΠ»Π°Π΄ΡΠΈΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π² ΠΎΡΠ΅Π½ΠΎΡΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, STM32, EFM32 ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° MCU) ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ°ΠΌΠΈ ΠΊΡΠ΅ΠΌΠ½ΠΈΡ
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ Π±ΡΠ΄ΠΆΠ΅ΡΠ°, Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΡΠΏΠ΅Π½ΠΈΡ, OpenOCD Ρ FT2232H Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π΄Π»Ρ Π²Π°Ρ.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΡ ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π±Π½ΠΈΠΊΠ°:
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΏΡΠ΅ΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π΅ΡΠ΅Π²ΡΠΉ ΠΎΡ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Taobao, Alibaba ΠΈ AliExpress. Π― Π·Π°ΠΊΠ°Π·Π°Π» Ρ ΠΌΠ΅Π½Ρ ΠΈΠ· Taobao ΠΎΠΊΠΎΠ»ΠΎ 14 Π΄ΠΎΠ»Π»Π°ΡΠΎΠ².
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΊΠ°Π·Π°ΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ FTDI, ΠΌΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Ρ FT2232H.
ΠΠ»Π°ΡΡΠΎΡΠΌΡ FT2232H
- ΠΠ‘ Windows ΠΈΠ»ΠΈ Linux Ρ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ OpenOCD:
Windows: Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ Π²Π΅ΡΡΠΈΡ OpenOCD ΠΈΠ· Π½Π΅ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
Linux: Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΈΠ· ΠΏΡΠ»Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Linux, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ debian package.
ΠΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π΅Π³ΠΎ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΡΡΠ΄Π½ΡΠΉ ΠΏΡΡΡ! ΠΡΠΎ ΠΌΠ°ΡΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π²ΡΠ±ΡΠ°Π», Π»ΠΈΡΠ½ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡ Dangerous Prototypes (Π΄Π»Ρ Windows) ΠΈΠ»ΠΈ eLinux (Π΄Π»Ρ Linux). ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° OpenOCD (README.Windows ΠΈ README).
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΠ΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π°Π·Π°Π΄ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² OpenOCD ΡΠ΅ΡΠΈΠ»Π° Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ½ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΎΠΆΠΈΠ΄Π°Ρ, ΡΡΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ JTAG ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π²Π°ΠΌΠΈ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π°ΡΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ JTAG.
- Π¦Π΅Π»Π΅Π²Π°Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ°:
Π― Π²ΡΠ±ΡΠ°Π» ΠΌΠΎΠΉ ΠΏΡΠΎΡΡΠ² Ρ EFM32G200F32, ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ ARM Cortex-M3 (MCU), Π½ΠΎ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ MCU Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠΎΡ Π΄ΠΎΡΠΊΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ EFM32G200F32
Π Π°Π·Π²ΡΠ·ΠΊΠ° EFM32G200F32
ΠΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ OpenOCD
Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ OpenOCD, Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ (.cfg), ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ Π² OpenOCD. ΠΡΠΎΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ Π΄Π»Ρ Jim-Tcl. Jim-Tcl – ΡΡΠΎ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ.
Π€Π°ΠΉΠ» ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° OpenOCD ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ°ΠΏΠΊΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«ΡΠΊΡΠΈΠΏΡΡΒ». Π ΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠ°ΠΏΠΊΠΈ Β«interfaceΒ», Β«boardΒ» ΠΈ Β«targetΒ».
- ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ: ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Β«minimodule.cfgΒ».
- Π‘ΠΎΠ²Π΅Ρ: ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠΈΡ ΠΏΠ»Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«atmel_sam4s_xplained_pro.cfgΒ» – Β«olimex_stm32_h207.cfgΒ» – Β«stm32f4discovery.cfgΒ» ΠΈ Ρ. Π. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ.
- Π¦Π΅Π»Ρ: ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌ MCU.
ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π² ΡΡΠΎΠΌ ΡΡΠ΅Π±Π½ΠΈΠΊΠ΅.
ΠΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ OpenOCD, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΅ΠΌΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΈΠΌ:
openocd -f config1.cfg -f config2.cfg -f config3.cfg
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠΈΡΡ OpenOCD ΡΠΈΠΏ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° .
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ OpenOCD, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:> openocd -c interface_list
Π Π½Π°ΡΠ΅ΠΌ ΡΡΠ΅Π±Π½ΠΈΠΊΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π΄Π°ΠΏΡΠ΅Ρ Ρ ΡΠΈΠΏΠΎΠΌ FT2232H, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° FTDI:
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ftdi
ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ OpenOCD Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± Π°Π΄Π°ΠΏΡΠ΅ΡΠ΅ (ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ VID / PID, ΡΠ΅ΡΠΈΠΉΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΈΠ»ΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°Π½Π°Π»Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ FT2232H, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° ΠΊΠ°Π½Π°Π»Π°.
ftdi_vid_pid 0x0403 0x6010
ftdi_channel 1
ftdi_serial “FTZ7O8O0”
ΠΠ΄Π°ΠΏΡΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΠΏΠΎΡΡΠΎΠΌΡ OpenOCD ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»:
ΡΡΠ°Π½ΡΠΏΠΎΡΡ Π²ΡΠ±ΡΠ°ΡΡ swd
ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ OpenOCD ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ FTDI GPIO ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ ftdi_layout_init . ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 16 ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² ΠΊΠ°Π½Π°Π»Π°, Π° Π·Π°ΡΠ΅ΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠ½Π°Ρ, ΡΡΠΎ Β«1Β» ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΡ ΠΎΠ΄Π°, Π° Β«0Β» – Π΄Π»Ρ Π²Π²ΠΎΠ΄Π°, Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ°Π½Π°Π» Π² ft2232H ΠΈΠΌΠ΅Π΅Ρ 16 ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ².
ftdi_layout_init 0x0018 0x05fb
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ:
ΠΠΈΠ·ΠΊΠΈΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ = 0x18 // 0001 1000
ΠΠΈΠ·ΠΊΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ = 0xfb // 1111 1011
ΠΡΡΠΎΠΊΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ = 0x05 // 0000 0101
Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Ρ OpenOCD.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ swd-resistor-hack.cfg, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡ Π΅ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:
ΠΡΠΎΠ²ΠΎΠ΄ΠΊΠ° FT2232H Ρ ΡΠ΅Π»Π΅Π²ΡΠΌ
Π€Π°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:
Β«ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ TDI ΠΊ SWDIO ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΅Π·ΠΈΡΡΠΎΡ (220-470 ΠΠΌ ΠΈΠ»ΠΈ ΠΎΠΊΠΎΠ»ΠΎ ΡΠΎΠ³ΠΎ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΈΠ²ΠΎΠ΄Π° Π΄Π»Ρ ΡΠ΅Π»ΠΈ ΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°) ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ TDO Π½Π°ΠΏΡΡΠΌΡΡ ΠΊ SWDIOΒ».
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π±Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ.
Π Π°Π·Π±ΠΈΠ²ΠΊΠ° FT2232H
ΠΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ ΠΈ ΠΌΠΈΡΠ΅Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ OpenOCD.
Π§Π°ΡΡΡ 1: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ FT2232H Ρ ΡΠ΅Π»ΡΡ
Π§Π°ΡΡΡ 2: ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ OpenOCD
Π‘Π½Π°ΡΠ°Π»Π° ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ txt-ΡΠ°ΠΉΠ» (ANYNAME.cfg). ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ VID / PID ΠΈ ΡΠ΅ΡΠΈΠΉΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π²Π°ΡΠΈΠΌ ΡΠΈΠΏΠΎΠΌ:
#This configuration file is created for a tutorial: #βGetting Started with OPENOCD Using FT2232H Adapter for SWD Debuggingβ #Written by:Yahya Tawil - yahya.tawil_at_gmail.com #Pulished on: //www.allaboutcircuits.com #Version of OpenOCD:0.9.0 interface ftdi transport select swd ftdi_vid_pid 0x0403 0x6010 #ftdi_device_desc "USB Serial Converter A" #ftdi_device_desc "FT2232H εΌεζΏ" ftdi_serial "FTZ7O8O0" #adapter_khz 8 ftdi_layout_init 0x0018 0x05fb ftdi_layout_signal SWD_EN -data 0 ftdi_layout_signal nSRST -data 0x0010
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Π° SWD_EN Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ OpenOCD, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π΅Π³ΠΎ. ΠΡΠ»ΠΈ ΠΌΡ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ, ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°:
ΠΡΠΈΠ±ΠΊΠ°: ΡΠ΅ΠΆΠΈΠΌ SWD Π°ΠΊΡΠΈΠ²Π΅Π½, Π½ΠΎ ΡΠΈΠ³Π½Π°Π» SWD_EN Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½
ΠΠΊΠ½Π°:
ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠΎΠΏΠΈΠΈ OpenOCD, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»Ρ CMD, Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ OpenOCD. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
cd Desktop \ openocd-0.9.0 \ bin
ΠΠΎΠΌΠ½ΠΈΡΠ΅: Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ (Ρ Π½Π°Π·Π²Π°Π» Π΅Π³ΠΎ SWD_FT.cfg), ΠΈ ΡΠ΅Π»Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠΈΠΏΠΎΠ² EFM32.
ΠΠ°ΡΠ΅ΠΌ Π² CMD Π²Π²Π΅Π΄ΠΈΡΠ΅:
openocd -f interface / ftdi / SWD_FT.cfg -f target / efm32.cfg
Linux:
Π ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ Π²Π²Π΅Π΄ΠΈΡΠ΅:
Sudo openocd -f interface / ftdi / SWD_FT.cfg -f target / efm32.cfg
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ: Π²ΠΊΠ»ΡΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ FTDI SWD
ΡΠΊΠΎΡΠΎΡΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°: 1000 ΠΊΠΡ
cortex_m reset_config sysresetreq
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ: ΡΠ°ΠΊΡΠΎΠ²Π°Ρ ΡΠ°ΡΡΠΎΡΠ° 1000 ΠΊΠΡ
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ: SWD IDCODE 0x2ba01477
Info: efm32.cpu: Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ 6 ΡΠΎΡΠ΅ΠΊ ΠΎΡΡΠ°Π½ΠΎΠ²Π°, 4 ΡΠΎΡΠΊΠΈ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΠ°Π·Π΄Π΅Π»ΠΎΠΌ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ – ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ»ΠΎΡ Π°Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Windows.
Π§Π°ΡΡΡ 4: ΠΡΠΊΡΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Telnet
ΠΡΠΊΡΠΎΠΉΡΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ CMD ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅:
telnet localhost 4444
Π§Π°ΡΡΡ 5: ΠΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠ΅Π»ΡΡ
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΠΎΡ ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Π΄ Π»ΡΠ±ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ:
> ΡΠ±ΡΠΎΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
ΠΡ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
ΡΠ΅Π»Π΅Π²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅: ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ
ΡΠ΅Π»Ρ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ββΠΈΠ·-Π·Π° ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°, ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ: ΠΏΠΎΡΠΎΠΊ
xPSR: 0x01000000 ΡΡ.: 0x00000bbc msp: 0x20002000
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈΠ· Π½Π°ΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ°, Π²Π²Π΅Π΄ΠΈΡΠ΅:
> Ρ
ΠΡΠ²Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ reg
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ Π²ΡΠΏΡΡΠΊΡ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠ»ΡΡ-Π±Π°Π½ΠΊΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ΄ΠΈΠ½ Π±Π°Π½ΠΊ, ΠΊΠ°ΠΊ Π½Π°ΡΠ° Π½ΡΠ½Π΅ΡΠ½ΡΡ ΡΠ΅Π»Ρ, Β«efm32.cfgΒ» Π΄Π»Ρ Π½Π°Ρ. Π§ΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
> Π€Π»Π΅Ρ-ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ 0
ΠΠ»ΠΈ
> flash ΡΠΏΠΈΡΠΎΠΊ
> ΡΠ»Π΅Ρ-Π±Π°Π½ΠΊΠΈ
ΠΠ½ Π²Π΅ΡΠ½Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
# 0: efm32.flash (efm32) ΠΏΡΠΈ 0x00000000, ΡΠ°Π·ΠΌΠ΅Ρ 0x00008000, ΡΠΈΡΠΈΠ½Π° ΡΠΈΠ½Ρ 0, ΡΠΈΡΠΈΠ½Π° ΡΠΈΠ½Ρ 0
Π’Π΅ΠΏΠ΅ΡΡ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ flash write_image .
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ°ΠΉΠ»Ρ bin (Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅), ihex (Intel hex), elf (ΡΠ°ΠΉΠ»Ρ ELF), s19 (Motorola s19), mem ΠΈΠ»ΠΈ builder.
> flash write_image erase “Desktop / FirstApp.hex”
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΈΡΠ°Π½ΠΈΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ
Π½Π°ΠΏΠΈΡΠ°Π» 1536 Π±Π°ΠΉΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° Desktop / FirstApp.hex Π² 0.124740s (12.025 KiB / s)
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ²ΠΎΡ ΡΠ΅Π»Ρ ΡΠ½ΠΎΠ²Π° Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
> ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ°
Π§ΡΠΎΠ±Ρ Π²ΡΠΉΡΠΈ ΠΈΠ· Telnet-ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΏΡΠΎΡΡΠΎ Π²Π²Π΅Π΄ΠΈΡΠ΅:
> Π²ΡΡ ΠΎΠ΄
ΠΡΠΎΡΡΠΈΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ OpenOCD, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΠΌΠΈΠ³Π°ΡΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ OpenOCD.
ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ
ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ 1:
- ΠΡΠΈΠ±ΠΊΠ°: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ftdi: usb_open () Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ
ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° libusb Π² Windows, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π² Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡΡ OpenOCD ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ WinUSB.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Windows ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ:
ΠΠ°ΡΠ΅ΠΌ ΡΠ΄Π°Π»ΠΈΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅Ρ FTDI ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈΠ· FTDI ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ CDM Uninstaller xx – Windows Device Driver Uninstaller: ΠΏΡΠΎΡΡΠΎ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ VID ΠΈ PID.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° FTDI ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ – 0x0403. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
- ΠΠ΄Π½ΠΎΠΊΠ°Π½Π°Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (R Chips): 0x6001
- ΠΠ²ΡΡ ΠΊΠ°Π½Π°Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (2232C / D / H Chips): 0x6010
- Π§Π΅ΡΡΡΠ΅Ρ ΠΊΠ°Π½Π°Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΡΠΈΠΏΡ 4232H): 0x6011
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΈΡΠ°ΠΉΡΠ΅ Π·Π΄Π΅ΡΡ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Zadig Tool Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° WinUSB.
ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ 2:
- ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ: ΡΠ°ΠΊΡΠΎΠ²Π°Ρ ΡΠ°ΡΡΠΎΡΠ° 1000 ΠΊΠΡ
Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ‘init’
Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ‘ocd_bouncer’
ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π²ΡΠ·Π²Π°Π½Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΊΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ TDI ΠΈ TDO Π² Β«swd-resistor-hack.cfgΒ», ΠΊΠ°ΠΊ ΠΌΡ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ Π²ΡΡΠ΅.
ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½ΠΎ ΠΏΠ»ΠΎΡ ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ftdi_layout_init ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ:
ftdi_layout_init 0x0018 0x05fb
ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ 3:
- ΠΡΠΈΠ±ΠΊΠ°: libusb_open () Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ LIBUSB_ERROR_ACCESS
ΠΡΠΈΠ±ΠΊΠ°: ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ
ΠΡΠΈΠ±ΠΊΠ°: Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΎΡΠΊΡΡΡΡ ftdi-ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ vid 0403, pid 6010, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ‘*’ ΠΈ ΡΠ΅ΡΠΈΠΉΠ½ΡΠΉ ‘FTZ7O8O0’
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ OpenOCD Π² Linux Π±Π΅Π· ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ OpenOCD Ρ ΠΏΠΎΠΌΠΎΡΡΡ sudo, Β«sudo opeocdΒ».
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ:
(1) ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ OpenOCD Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ FLASH-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° (ΠΏΡΠΎΡΡΠΎΠΉ ΡΡΠ΅Π±Π½ΠΈΠΊ) – Olimex
(2) ΠΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠΏΡΡΠΊΠΈ – Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ OpenOCD
(3) ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ – Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ OpenOCD
(4) ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ARM GCC Π΄Π»Ρ Windows, ΡΠ°ΡΡΡ 5: ΠΡΠ»Π°Π΄ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ OpenOCD
(5) ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° OpenOCD Π΄Π»Ρ AT91SAM7S
(6) ΠΠ±ΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ – Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ OpenOCD
(7) OpenOCD – eLinux
(8) FT2232H DataSheet (PDF)
ΠΠ°ΠΏΠΈΡΠΈ ΠΏΠΎ ΡΠ΅Π³Ρ “FT2232H” β ΠΡΡΠ½Π°Π» ΠΠΌΠ±Π΅Π΄Π΄Π΅Π΄-ΠΠ½ΠΆΠ΅Π½Π΅ΡΠ°
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Β Β ΠΠ°Π΄Π°ΡΠ° ΡΠΎΡΡΠΎΡΠ»Π° Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠ· ΠΏΠΎΠ΄ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΠΎΠ³ΠΎ Π»ΠΈΠ½ΡΠΊΡΠ° ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ SPI-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΠΈΠΏΠΎΠ², ΠΏΡΠΈΡΠΎΠΌ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΡΠ΅ΡΠ΅Π· ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ /dev/spiΠ₯, ΠΏΡΠΈΡΠ΅ΠΌ ΡΠ΅ΡΠΈΡΡ ΡΡΡ Π·Π°Π΄Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π±Π΅ΡΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ Π±Π΅Π· ΡΠ²ΠΈΡΡΠΎΠΏΠ»ΡΡΠΊΠΈ Ρ ΠΏΠ΅ΡΠ΅ΡΠ±ΠΎΡΠΎΠΌ ΡΠ΄ΡΠ° ΠΈ Π΄ΡΠΎΠ², Π° ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ SBC (Single Board Computer), Π° Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΠΎΠ΅ Π΄Π΅ΡΠΈΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ x86 Π±Π΅Π· Π½Π°Π±ΠΎΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° SPI Master, ΡΠΎ ΠΎΡ ΡΠΎΠ±Π»Π°Π·Π½Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡ ΡΡΠΎ-ΡΠΎ ΠΈΠ· ΠΊΠΎΠ½Π²Π΅ΡΡΠ΅ΡΠΎΠ² SPI-to-USB Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ Π΄Π΅ΡΡΡΡ, Π° ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ.
ΠΠ°Π½Π΄ΠΈΠ΄Π°ΡΡΒ USB-to-SPIΒ
β’Β CP2130 ΠΎΡ Silicon Labs
β’Β MCP2210 ΠΎΡ ΠΠΈΠΊΡΠΎΡΠΈΠΏΠ°
β’Β FT232H ΠΎΡ FTDI (ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΈΠ½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π΅ ΠΎΡ FTDI)Β
Β Β Π ΠΈΡΠΎΠ³Π΅ Π³ΠΎΠ½ΠΊΡ Π²ΡΠΈΠ³ΡΠ°Π»Β MCP2210, Ρ ΠΎΡΡ ΠΏΠΎΠ΄Β CP2130 ΡΠΎΠΆΠ΅ ΠΈΠΌΠ΅Π»ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ:Β https://www.silabs.com/documents/public/software/CP2130_SDK_Linux.zip ΠΈΒ Β https://github.com/Henneberg-Systemdesign/cp2130 .
MCP2210
Β Β ΠΠ΅ΠΊΡΠΎ Daniel Santos ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π» Π»ΠΈΠ½ΡΠΊΡ-Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΡΡΠ°, Π±Π°Π·ΠΈΡΡΡΡΠΈΠΉΡΡ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½Π΅ΠΌ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ https://github.com/MathewKing/mcp2210-linux ΠΎΡ Mathew King. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠΌΠ΅Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΡΠ²Π΅ΡΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π½Π°ΡΡΡΠΎΠ΅ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΈΠ½Ρ SPI, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠΌ, ΠΈ Ρ. Π΄.), ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ EEPROM ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ/ΠΏΡΠΈΠ΅ΠΌΠ° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ SPI. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π°Π΄ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠ΅ΡΠ΅Π· ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° spidev ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΠ΅ΡΠ΅Π· ioctl Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΈ Π·Π°Ρ Π°ΡΠ΄ΠΊΠΎΠΆΠ΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ fake_config().
Β Β ΠΠ΅Π· Π·Π½Π°Π½ΠΈΡ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠ»Π°ΡΡ (ΡΡ Π΅ΠΌΠΎΡΠ΅Ρ Π½ΠΈΠΊΠΈ) Ρ ΡΠΈΠΏΠΎΠΌ MCP2210 Π°Π²ΡΠΎΠ½Π°ΡΡΡΠΎΠΉΠΊΠ° SPI Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°. MCP2210 ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Π° ΠΏΡΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠΊΡΠΈΠΏΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ (ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°), Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ EEPROM ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 256 Π±Π°ΠΉΡ. Π‘ΠΈΡΡΠ΅ΠΌΠ° Π°Π²ΡΠΎ-ΠΊΠΎΠ½ΡΠΈΠ³Π° ΠΏΠΎΠ»ΡΡΠΈΠ»Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Creek, Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΈ ΠΏΡΠΎΡΠΈΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ 5 Π±Π°ΠΉΡ EEPROM. ΠΠΈΠ½ΠΎΡΠ½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠ΅ΡΠ΅Π· Π²ΡΠ·ΠΎΠ²Ρ ioctl ΠΈΠ· ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
Π¨Π°Π³ 1
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΄ΡΠ°Β 4.15 (ΡΠ΄ΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ kernel-ml, Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠΈΒ elrepo-kernel) Π½Π° CentOS 7.
Π¨Π°Π³ 2
Π‘Π±ΠΎΡΠΊΠ° ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° mcp2210 ΠΏΠΎΠ΄ linux:
git clone https://github.com/iDoka/mcp2210-linux.git cd mcp2210-linux Β make all sudo make modules_install |
Β Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠ°Π²ΠΈΠ» UDEVΒ ΠΈ ΡΠΊΡΠΈΠΏΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ Π½ΠΎΠ²ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ:
sudo cp udev/99_mcp2210.rules /etc/udev/rules.d sudo udevadm control –reload-rules Β sudo cp udev/rebind_sysfs_driver.sh /usr/local/sbin/ sudo chmod 0755 /usr/local/sbin/rebind_sysfs_driver.sh |
Β Π¨Π°Π³ 3
Π’Π΅ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°:
sudo modprobe mcp2210 lsmod | grep mcp2210 |
cd user/ LD_LIBRARY_PATH=`pwd` ./mcp2210-util –help |
Β Π‘ΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³Π°:
Β LD_LIBRARY_PATH=`pwd` . /mcp2210-util -d /dev/usb2spi_bridge0 get config > creek.dat |
Β ΠΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ
ΠΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² udev-rules, ΡΠΎΠ·Π΄Π°ΡΡΠΈΠ΅ Π΄Π΅Π²Π°ΠΉΡ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΠΈΠ·-ΠΏΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΠΌΠΎΡΠΌ ΡΠΎΡΠΊΠ΅:Β https://github.com/iDoka/mcp2210-linux
ΡΠΈΡΠ°ΡΡ…
Π ΠΠ‘ ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ – Π ΠΠΠΠΠΠΠ
Π ΠΠ‘ ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ – Π ΠΠΠΠΠΠΠ
ΠΠΠΠΠ‘Π’Π
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊΒ ΡΠΌΠΎΡΡΠΈΡΠ΅Β ΠΏΠΎΒ ΡΡΡΠ»ΠΊΠ΅.
02/04/2021
ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΠΈ Π²Π»Π°ΠΆΠ½ΠΎΡΡΠΈ, Π’Π΅ΡΡΠ΅Ρ Π΅ΠΌΠΊΠΎΡΡΠΈ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠ°,Β Π’Π΅ΡΡΠ΅Ρ ΠΏΠΎΠ»ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠΎΠ²,Β ΠΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ ΡΡΠΈΠ»ΠΈΡΠ΅Π»Ρ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ,Β
Bluetooth Π°ΡΠ΄ΠΈΠΎΠΌΠΎΠ΄ΡΠ»Ρ ,Π¦Π²Π΅ΡΠ½ΠΎΠΉ USB ΡΠ΅ΡΡΠ΅Ρ (Π²ΠΎΠ»ΡΡΠΌΠ΅ΡΡ, Π°ΠΌΠΏΠ΅ΡΠΌΠ΅ΡΡ, ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π·Π°ΡΡΠ΄Π°),Β Π¦ΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΎΡΡΠΈΠ»Π»ΠΎΠ³ΡΠ°Ρ,Β
ΠΠ²ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΡΡ ΠΊΠ»Π΅ΠΉΠΊΠ°Ρ, Π°ΠΊΡΠΈΠ»ΠΎΠ²Π°Ρ Π»Π΅Π½ΡΠ°,Β ΠΠ½ΡΠΈΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΈΠ½ΡΠ΅ΡΡ
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ ΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅
Β
02/04/2021
ΠΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΊΠ»Π°Π΄Π° ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΎΡΡΠΈΠΌΠ΅Π½ΡΡ ΠΎΡΒ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΒ Hantek Electronics.
ΠΠ·ΠΌΠ΅ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ±ΠΎΡΡ
ΠΠΊΡΠ΅ΡΡΡΠ°ΡΡ Π΄Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΈ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ
01/04/2021
ΠΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΊΠ»Π°Π΄Π° ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΎΡΡΠΈΠΌΠ΅Π½ΡΡ ΠΎΡΒ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΒ LiitoKala.
ΠΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΡ ΠΈ Π±Π°ΡΠ°ΡΠ΅ΠΉΠΊΠΈ
ΠΠ»ΠΎΠΊΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ, ΡΠ΅ΡΠ΅Π²ΡΠ΅ Π°Π΄Π°ΠΏΡΠ΅ΡΡ, Π·Π°ΡΡΠ΄Π½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
01/04/2021
Π‘ 30.03 Π΄ΠΎ 05.04.2021 ΠΌΠ°Π³Π°Π·ΠΈΠ½ Π Π°Π΄ΠΈΠΎΠΌΠ°Π³ Π² Π³. Π₯Π°ΡΡΠΊΠΎΠ² Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡΒ Π·Π°ΠΊΠ°Π·Ρ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΡΠ΅ ΡΡΠ΅Π· ΡΠ°ΠΉΡ ΠΈ ΠΏΠΎ ΡΠ΅Π»Π΅ΡΠΎΠ½Ρ.
ΠΡΠΈΠΎΠ±ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ° Π² ΡΠΎΡΠ³ΠΎΠ²ΠΎΠΌ Π·Π°Π»Π΅ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΠΎΠΉ Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ.Β
30/03/2021
Π ΡΠ²ΡΠ·ΠΈ Ρ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠΈΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π½ΡΠΈΠ½Π°.
Π² Π³. ΠΡΠ²ΠΎΠ² Ρ 19.03.2021
Π² Π³. ΠΠΈΠ΅Π² Ρ 20.03.2021
Π² Π³. ΠΠ΄Π΅ΡΡΠ° Ρ 23.03.2021 ΠΠΎΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠ³ΠΎΠ²ΠΎΠ³ΠΎ Π·Π°Π»Π° ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ² Π Π°Π΄ΠΈΠΎΠΌΠ°Π³ ΠΈ ΠΎΡΠ΄Π΅Π»Π° ΠΏΡΠΎΠ΄Π°ΠΆ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΠ°ΠΊΠ°Π·Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ°ΠΉΡ ΠΈ Π² ΡΠ΅Π»Π΅ΡΠΎΠ½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
ΠΡΠ³ΡΡΠ·ΠΊΠ° Π·Π°ΠΊΠ°Π·ΠΎΠ² ΡΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡΠΎΠΉ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°ΠΌΠΎΠ²ΡΠ²ΠΎΠ·Π° Π½Π΅Ρ.
18/03/2021
Π Π°ΡΡΠΈΡΠ΅Π½ Π°ΡΡΠΎΡΡΠΈΠΌΠ΅Π½Ρ ΡΠ°Π΄ΠΈΠΎΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ:Β UART,Β UART/IO,Β IO,Β Β USB,Β SPI.
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ HOPE RF
26/11/2020
ΠΠ°ΡΠ»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ YIHUAΒ ΠΈ AOYUE Π½Π° ΡΠΊΠ»Π°Π΄Π΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΡΠ΅ΡΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ² Π ΠΠΠΠΠΠΠ
ΠΠ°Β Π½Π°ΡΠ΅ΠΌ ΡΠΊΠ»Π°Π΄Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΡΡ Π°ΡΡΠΎΡΡΠΈΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠΈΡ ΡΠΎΠ²Π°ΡΠ½ΡΡ Π³ΡΡΠΏΠΏ ΠΊΠ°ΠΊ: ΠΏΠ°ΡΠ»ΡΠ½ΡΠ΅ ΡΡΠ°Π½ΡΠΈΠΈ, ΠΏΠ°ΡΠ»ΡΠ½ΠΈΠΊΠΈ, ΡΠ΅Π½Ρ, ΠΆΠ°Π»Π°, Π½Π°ΡΠ°Π΄ΠΊΠΈ Π½Π° ΡΠ΅Π½, ΡΠ»ΠΎΠ²ΠΈΡΠ΅Π»Ρ Π΄ΡΠΌΠ°.
ΠΠΎΠ»Π½ΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½ΡΒ ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅, Π»ΠΈΠ±ΠΎ Π² ΡΠ°Π·Π΄Π΅Π»Π΅
ΠΠ°ΡΠ»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠ°ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π»Ρ ΠΏΠ°ΠΉΠΊΠΈ24/11/2020
ΠΡΠΎΡΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.
ΠΠ°Π³Π°Π·ΠΈΠ½ Π Π°Π΄ΠΈΠΎΠΌΠ°Π³ Π² ΠΠΈΠ΅Π²Π΅Β ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ²ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊ ΡΠ°Π±ΠΎΡΡ:
ΠΠ½. – Π‘Π±. ΡΠ°Π±ΠΎΡΠ°Π΅ΡΒ 9:00-16:00
ΠΡ. – ΠΡΡ ΠΎΠ΄Π½ΠΎΠΉ
23/11/2020
Π Π°ΡΡΠΈΡΠ΅Π½ ΡΠΊΠ»Π°Π΄ΡΠΊΠΎΠΉ Π·Π°ΠΏΠ°Ρ ΡΠ½ΠΊΠΎΠ΄Π΅ΡΠΎΠ²
ΠΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ ΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π»ΠΈΠ±ΠΎ Π² ΡΠ°Π·Π΄Π΅Π»Π΅Β ΡΠ°ΠΉΡΠ°.
01/11/2020
goods indexΠΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° FT2232HL, ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ FT2232H MINI FT4232H UM232H, ΠΌΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° USB Π² SPI, Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡ|ΠΠ½ΡΠ΅Π³ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡ Π΅ΠΌΡ|
ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ΅
Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠΎΠ²Π°ΡΠ°
- ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ Π±ΡΠ΅Π½Π΄Π°: diymore
- ΠΡΠΎΠΈΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅: ΠΠΈΡΠ°ΠΉ
- Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅: ΠΠΎΠ²ΡΠΉ
- Π’ΠΈΠΏ: Π Π΅Π³ΡΠ»ΡΡΠΎΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ
- ΠΠΎΠΌΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ: FT2232HL
- ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: ΠΠΎΠΌΠΏΡΡΡΠ΅Ρ
- Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°: SMD
- ΠΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·Π³ΠΎΡΠΎΠ²Π»Π΅Π½ΠΈΠ΅: ΠΠ°
FT2232H MINI MDL ΠΎΡ 2972 ΡΡΠ±Π»Π΅ΠΉ Π² Π½Π°Π»ΠΈΡΠΈΠΈ 20 ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° FT2232HQ-MODULE
ΠΠ»Π°Π²Π½Π°Ρ ΠΠ°ΡΠ°Π»ΠΎΠ³ ΠΠΎΠ»ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠΈ ΠΠΎΠ΄ΡΠ»ΠΈ ΡΠ²ΡΠ·ΠΈ ΠΠΎΠ΄ΡΠ»ΠΈ USB Π²ΡΠ΅Π³ΠΎ Π² Π½Π°Π»ΠΈΡΠΈΠΈ 20 ΡΡΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ | Π¦Π΅Π½Π° β½/ΡΡ |
---|---|
+1 | 00000″> 3 582 |
+10 | 3 224 |
+50 | 2 972 |
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΠΎΡΠΈΡΡ Ρ Π½Π°Ρ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ FT2232H MINI MDL, ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ Π½Π°ΠΌ Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΏΠΎΡΡΠ°Π²ΠΊΡ.
ΠΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ ΡΠ°ΡΡΠ½ΡΠΌΠΈ ΠΈ ΡΡΠΈΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π»ΠΈΡΠ°ΠΌΠΈ.
Π Π°Π±ΠΎΡΠ°Π΅ΠΌ Ρ ΡΠ°ΡΡΠ½ΡΠΌΠΈ ΠΈ ΡΡΠΈΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π»ΠΈΡΠ°ΠΌΠΈ.
FT2232HQ-MODULE ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ
ΠΠΎΠ΄ΡΠ»Ρ: USB; FIFO x2,MPSSE x2,UART x2; USB B mini,ΡΡΡΡΠ΅Π²ΠΎΠΉ
ΠΠ΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠ°
Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΎΡ 5000 β½
ΠΠΎΡΡΠ°Π²ΠΈΠΌ ΠΏΡΡΠΌΠΎ Π² ΡΡΠΊΠΈ ΠΈΠ»ΠΈ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ ΠΏΡΠ½ΠΊΡ Π²ΡΠ΄Π°ΡΠΈ
Π‘ΠΌΠ΅ΠΆΠ½ΡΠ΅ ΡΠΎΠ²Π°ΡΡ
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ OPENOCD Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° FT2232H Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ SWD
Π£Π·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΡ MCU Π½Π° Π±Π°Π·Π΅ ARM Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° OpenOCD Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ FT2232H.
Π‘ΡΠ°ΡΡΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ, ΠΊΠ°ΠΊ ATMEL ΠΈ MICROCHIP, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ PIC16F ΠΈ Atmega, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈΠΌΠ΅ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Atmega ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π° Π²ΡΠ²ΠΎΠ΄Ρ SPI (MISO, MOSI, SCK), Π° PIC ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π° Π΄Π²Π° Π²ΡΠ²ΠΎΠ΄Π° (PGC, PGD) – ΠΎΠ΄ΠΈΠ½ ΠΊΠ°ΠΊ ΡΠ°ΡΡ, Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ°ΠΊ Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π»ΠΈΠ½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΠ²ΡΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Ρ ΡΠ΄ΡΠΎΠΌ ARM, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ JTAG / SWD Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ / ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Joint Test Action Group (JTAG) ΠΈ Serial Wire Debug (SWD)? ΠΡΠ²Π΅Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ SWD Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΠΊΠ°ΠΊ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° JTAG Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ MCU: SWD Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ 5-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ JTAG Π½Π° ΡΠΎΠ»ΡΠΊΠΎ 2-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ.
ΠΠ»Ρ ΡΠ²ΡΠ·ΠΈ Ρ Π½Π°ΡΠΈΠΌ ΡΠ΅Π»Π΅Π²ΡΠΌ ΡΠΈΠΏΠΎΠΌ Π½Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° Ρ ΠΎΡΡΠ΅ ΠΈ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Ρ ΠΎΡΡΠΎΠΌ ΠΈ ΡΠΈΠΏΠΎΠΌ.Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ OpenOCD Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Ρ ΠΎΡΡΠ΅ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΡΠ²ΡΠ·ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SWD. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ FT2232H Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΡΡΠ° Π΄Π»Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² Ρ ΠΏΠΎΡΡΠ° USB Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ SWD.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ SWDΠΠ±Π·ΠΎΡ OpenOCD
ΠΡΠΊΡΡΡΡΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ Π½Π° ΠΊΡΠΈΡΡΠ°Π»Π»Π΅ (OpenOCD) – ΡΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠ΅Π»ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π²Π½ΡΡΡΠΈΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ³ΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΠ΄Π°ΠΏΡΠ΅Ρ – ΡΡΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠ΅Π»ΠΈ.
ΠΡΠ»Π°Π΄ΡΠΈΠΊOpenOCD ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ² ΠΎΡΠ»Π°Π΄ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π²Π΅Π±-ΡΠ°ΠΉΡΠ΅ OpenOCD.
Π§ΡΠΎΠ±Ρ OpenOCD ΡΠ°Π±ΠΎΡΠ°Π», Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠΎΠ³Π΄Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π·Π°Π²Π΅ΡΡΠ΅Π½Π° ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅Π»ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ, OpenOCD Π½Π°ΡΠ½Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Π΄Π΅ΠΌΠΎΠ½. ΠΠ΅ΠΌΠΎΠ½ – ΡΡΠΎ ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π½Π° Π·Π°ΠΏΡΠΎΡΡ ΡΡΠ»ΡΠ³. OpenOCD ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΆΠ΄Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΎΡ GDB, Telnet ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° OpenOCDΠΠ±Π·ΠΎΡ FT2232H
FT2232H – ΡΡΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ USB-ΠΏΠΎΡΡ Π΄Π»Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ UART / FIFO. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠΊΡΠΈΡΡΠ°Π»ΡΠ½ΡΠΉ USB-ΠΏΠΎΡΡ Ρ Π΄Π²ΡΠΌΡ ΠΏΠΎΡΡΠ°ΠΌΠΈ.
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΡ ΠΎΡΠ½Π°ΡΠ΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΌ Multi-Protocol Synchronous Serial Engine (MPSSE), Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° (USB Π² JTAG, I2C, SPI ΠΈΠ»ΠΈ bit-bang). ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΊΠ°Π½Π°Π» Ρ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ. MPSSE Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° ΠΊΠ°Π½Π°Π»Π°Ρ A ΠΈ B ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°.
ΠΡΠ΄ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Ρ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²ΡΠ±ΠΈΡΠ°ΡΡ OpenOCD
ΠΡΠ±ΠΎΡ OpenOCD Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ FT2232H, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π½Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ Π±ΡΠ΄ΠΆΠ΅ΡΠ° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ.
ΠΠΎΠΌΠΈΠΌΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, OpenOCD ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ. ΠΠ, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ Π»ΡΠ±ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
ΠΠ½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ Π·Π°ΡΡΠ°Π²ΠΈΡΡ OpenOCD ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ ΠΏΡΠΎΡΠΈΡΡ ΠΌΠΎΠΉ MCU, ΠΈ Ρ Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π±ΡΠ΄Π΅Ρ Ρ ΠΎΡΠΎΡΠΈΠΌ ΠΈ ΠΏΠΎΠ»Π½ΡΠΌ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠΌ.
Π’Π°ΠΊΠΆΠ΅ Ρ ΡΠΎΠ²Π΅ΡΡΡ Π²ΡΠ΅ΠΌ, ΠΊΡΠΎ ΠΈΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π²ΡΠ±ΠΈΡΠ°ΡΡ Ρ ΡΠΌΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ OpenOCD ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ Π»ΡΡΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π΄Π»Ρ Π²Π°Ρ!
ΠΡΡΠ³ΠΈΠ΅ Ρ ΠΎΡΠΎΡΠΈΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ:
- Segger J-Link
- Π£ΠΠΠΠ
- ΠΡΠ»Π°Π΄ΡΠΈΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π² ΠΎΡΠ΅Π½ΠΎΡΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, STM32, EFM32 ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° MCU) ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ°ΠΌΠΈ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌ
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΌΠ°Π»ΠΎ Π±ΡΠ΄ΠΆΠ΅ΡΠ°, Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΡΠΏΠ΅Π½ΠΈΡ, OpenOCD Ρ FT2232H ΡΡΠ°Π½Π΅Ρ Π΄Π»Ρ Π²Π°Ρ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΡ ΡΡΠΎ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°:
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΆΠ΄ΡΡ Π΄Π΅ΡΠ°Π»Ρ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π΅ΡΠ΅Π²ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Ρ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Taobao, Alibaba ΠΈ AliExpress. Π― Π·Π°ΠΊΠ°Π·Π°Π» ΡΠ²ΠΎΡ Π½Π° Taobao ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π·Π° 14 Π΄ΠΎΠ»Π»Π°ΡΠΎΠ².
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΊΠ°Π·Π°ΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ FTDI, ΠΌΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Ρ FT2232H.
ΠΠΎΠΌΠΌΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΠ»Π°ΡΡ FT2232H- ΠΠ‘ Windows ΠΈΠ»ΠΈ Linux Ρ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ OpenOCD:
Windows: ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ Π²Π΅ΡΡΠΈΡ OpenOCD ΠΈΠ· Π½Π΅ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
Linux: Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΈΠ· ΠΏΡΠ»Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Linux, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ°ΠΊΠ΅Ρ debian.
ΠΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ±ΡΠ°ΡΡ Π΅Π³ΠΎ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΡΡΠ΄Π½ΡΠΉ ΠΏΡΡΡ! Π― Π»ΠΈΡΠ½ΠΎ Π²ΡΠ±ΡΠ°Π» ΡΡΠΎΡ ΠΏΡΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ· Dangerous Prototypes (Π΄Π»Ρ Windows) ΠΈΠ»ΠΈ eLinux (Π΄Π»Ρ Linux). ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° OpenOCD (README.Windows ΠΈ README).
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π°Π·Π°Π΄ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² OpenOCD ΡΠ΅ΡΠΈΠ»Π° Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ².ΠΠ½ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΎΠΆΠΈΠ΄Π°Ρ, ΡΡΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ JTAG ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π²Π°ΠΌΠΈ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π°ΡΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ JTAG.
Π― Π²ΡΠ±ΡΠ°Π» ΡΠ²ΠΎΠΉ ΠΏΡΠΎΡΡΠ² Ρ EFM32G200F32, ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ (MCU) Π½Π° Π±Π°Π·Π΅ ARM Cortex-M3, Π½ΠΎ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ MCU Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠΎΡ ΠΏΠ»Π°ΡΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ EFM32G200F32 EFM32G200F32 ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΠ°ΠΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ OpenOCD
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° OpenOCD Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ (.cfg), ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ Π² OpenOCD. ΠΡΠΎΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠ²Π»ΡΡΡΠΈΠ΅ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ Jim-Tcl. Jim-Tcl – ΡΡΠΎ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄.
Π ΡΠ°ΠΉΠ»Π΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° OpenOCD Π΅ΡΡΡ ΠΏΠ°ΠΏΠΊΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«scriptsΒ». Π ΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠ°ΠΏΠΊΠΈ Β«interfaceΒ», Β«boardΒ» ΠΈ Β«targetΒ». Π ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠ°ΠΏΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ Π½ΡΠΆΠ½Ρ.
- ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ: Π€Π°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, minimodule.cfg.
- Board: Π€Π°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠΈΡ ΠΏΠ»Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«atmel_sam4s_xplained_pro.cfgΒ» – Β«olimex_stm32_h207.cfgΒ» – Β«stm32f4discovery.cfgΒ» .. ΠΈ Ρ. Π. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΡΠ΅Π»ΠΈ.
- Π¦Π΅Π»Ρ: Π€Π°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌ MCU.
ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΡΡΠΎ ΠΌΡ ΠΈ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅.
ΠΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ OpenOCD, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΅ΠΌΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Ρ ΠΎΡΠΈΠΌ:
openocd -f config1.cfg -f config2.cfg -f config3.cfg
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠΈΡΡ OpenOCD ΡΠΈΠΏ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ interface .
Π§ΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ OpenOCD, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
> openocd -c ΡΠΏΠΈΡΠΎΠΊ_ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²
Π Π½Π°ΡΠ΅ΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π΄Π°ΠΏΡΠ΅Ρ Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠΎΠΉ FT2232H, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° FTDI:
interface ftdi
ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ OpenOCD Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²Π°ΡΠ΅ΠΌ Π°Π΄Π°ΠΏΡΠ΅ΡΠ΅ (ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅).ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ VID / PID, ΡΠ΅ΡΠΈΠΉΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΈΠ»ΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°Π½Π°Π»Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ FT2232H, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° ΠΊΠ°Π½Π°Π»Π°.
ftdi_vid_pid 0x0403 0x6010
ftdi_channel 1
ftdi_serial “FTZ7O8O0”
ΠΠ΄Π°ΠΏΡΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΠΏΠΎΡΡΠΎΠΌΡ OpenOCD ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»:
ΡΡΠ°Π½ΡΠΏΠΎΡΡ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ swd
ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ OpenOCD Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ FTDI GPIO ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ftdi_layout_init . ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ½Π°ΡΠ°Π»Π° Π²Π²Π΅ΡΡΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 16 ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² ΠΊΠ°Π½Π°Π»Π°, Π° Π·Π°ΡΠ΅ΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠ½Π°Ρ, ΡΡΠΎ Β«1Β» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΡ ΠΎΠ΄Π°, Π° Β«0Β» – Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π°, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ°Π½Π°Π» Π² ft2232H ΠΈΠΌΠ΅Π΅Ρ 16 ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ².
ftdi_layout_init 0x0018 0x05fb
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ:
ΠΠΈΠ·ΠΊΠΈΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ = 0x18 // 0001 1000
ΠΠΈΠ·ΠΊΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ = 0xfb // 1111 1011
ΠΡΡΠΎΠΊΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ = 0x05 // 0000 0101
Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Ρ OpenOCD.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊ Π°Π΄Π°ΠΏΡΠ΅ΡΡ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«swd-resistor-hack.cfgΒ», ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡ
Π΅ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:
Π€Π°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:
Β«ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ TDI ΠΊ SWDIO ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΅Π·ΠΈΡΡΠΎΡ (220-470 ΠΠΌ ΠΈΠ»ΠΈ ΠΎΠΊΠΎΠ»ΠΎ ΡΠΎΠ³ΠΎ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄Π° ΡΠ΅Π»ΠΈ ΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°), ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ TDO Π½Π°ΠΏΡΡΠΌΡΡ ΠΊ SWDIOΒ».
ΠΠ΅Π· ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ.
FT2232H ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΠ°Π‘ΠΎΠ±ΠΈΡΠ°Π΅ΠΌ Π²ΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ ΠΈ ΡΠ΅Π»ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ OpenOCD.
Π§Π°ΡΡΡ 1: ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ FT2232H ΠΊ ΡΠ΅Π»ΠΈ Π§Π°ΡΡΡ 2: ΠΠ°ΠΏΡΡΠΊ OpenOCDΠ‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» (ANYNAME.cfg). ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ VID / PID ΠΈ ΡΠ΅ΡΠΈΠΉΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π²Π°ΡΠΈΠΌ ΡΠΈΠΏΠΎΠΌ:
# ΠΡΠΎΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ Π΄Π»Ρ ΡΡΠ΅Π±Π½ΠΈΠΊΠ°:
# "ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ OPENOCD Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° FT2232H Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ SWD"
# ΠΠ°ΠΏΠΈΡΠ°Π»: Π―Ρ
ΡΡ Π’Π°Π²ΠΈΠ» - yahya.tawil_at_gmail.com
# ΠΠ°ΡΡΡΠ΅Π½ΠΎ: http://www.allaboutcircuits.com
# ΠΠ΅ΡΡΠΈΡ OpenOCD: 0.9.0
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ftdi
ΡΡΠ°Π½ΡΠΏΠΎΡΡ Π²ΡΠ±ΡΠ°ΡΡ swd
ftdi_vid_pid 0x0403 0x6010
#ftdi_device_desc "ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ USB-ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»Ρ A"
#ftdi_device_desc "FT2232H εΌε ζΏ"
ftdi_serial "FTZ7O8O0"
#adapter_khz 8
ftdi_layout_init 0x0018 0x05fb
ftdi_layout_signal SWD_EN -Π΄Π°Π½Π½ΡΠ΅ 0
ftdi_layout_signal nSRST -data 0x0010
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Π° SWD_EN Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ OpenOCD, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΠΈ Π΅Π³ΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ. ΠΡΠ»ΠΈ ΠΌΡ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ, ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°:
ΠΡΠΈΠ±ΠΊΠ°: ΡΠ΅ΠΆΠΈΠΌ SWD Π°ΠΊΡΠΈΠ²Π΅Π½, Π½ΠΎ ΡΠΈΠ³Π½Π°Π» SWD_EN Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½
ΠΠΊΠ½Π°:
ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠΎΠΏΠΈΠΈ OpenOCD, ΠΊΠ°ΠΊ ΠΌΡ ΠΎΠΏΠΈΡΠ°Π»ΠΈ ΡΠ°Π½Π΅Π΅, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»Ρ CMD, Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ OpenOCD. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
cd Π Π°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ» \ openocd-0.9.0 \ bin
ΠΠΎΠΌΠ½ΠΈΡΠ΅: Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ (Ρ Π½Π°Π·Π²Π°Π» Π΅Π³ΠΎ SWD_FT.cfg), ΠΈ ΡΠ΅Π»ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΈΠΏΠΎΠ² EFM32.
ΠΠ°ΡΠ΅ΠΌ Π² CMD Π²Π²Π΅Π΄ΠΈΡΠ΅:
openocd -f ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ / ftdi / SWD_FT.cfg -f target / efm32.cfg
Linux:
Π ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ Π½Π°Π±Π΅ΡΠΈΡΠ΅:
Sudo openocd -f ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ / ftdi / SWD_FT.cfg -f target / efm32.cfg
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ: Π²ΠΊΠ»ΡΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ FTDI SWD
ΡΠΊΠΎΡΠΎΡΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°: 1000 ΠΊΠΡ
cortex_m reset_config sysresetreq
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ: ΡΠ°ΠΊΡΠΎΠ²Π°Ρ ΡΠ°ΡΡΠΎΡΠ° 1000 ΠΊΠΡ
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ: SWD IDCODE 0x2ba01477
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ: efm32.cpu: ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ 6 ΡΠΎΡΠ΅ΠΊ ΠΎΡΡΠ°Π½ΠΎΠ²Π°, 4 ΡΠΎΡΠΊΠΈ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°Π·Π΄Π΅Π»Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ – ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ»ΠΎΡ Π°Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Windows.
Π§Π°ΡΡΡ 4: ΠΡΠΊΡΡΡΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ TelnetΠΡΠΊΡΠΎΠΉΡΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ CMD ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅:
telnet localhost 4444
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²Π°ΡΡ ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Π΄ Π»ΡΠ±ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ:
> ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ±ΡΠΎΡΠ°
ΠΡ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
ΡΠ΅Π»Π΅Π²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅: ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ
Π¦Π΅Π»ΡΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ββΠΈΠ·-Π·Π° Π·Π°ΠΏΡΠΎΡΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ, ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ: ΠΏΠΎΡΠΎΠΊ
xPSR: 0x01000000 ΠΠ: 0x00000bbc MSP: 0x20002000
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ°, Π²Π²Π΅Π΄ΠΈΡΠ΅:
> ΡΠ΅Π³.
ΠΡΠ²Π΅Ρ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ regΠ§ΡΠΎΠ±Ρ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π· Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΡ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠ»ΡΡ-Π±Π°Π½ΠΊΠΈ.ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ΄ΠΈΠ½ Π±Π°Π½ΠΊ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Π½Π°ΡΠ° ΡΠ΅ΠΊΡΡΠ°Ρ ΡΠ΅Π»Ρ, Β«efm32.cfgΒ». Π§ΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
> ΡΠ»ΡΡ-ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ 0
ΠΈΠ»ΠΈ
> ΡΠ»ΡΡ-ΡΠΏΠΈΡΠΎΠΊ
> ΡΠ»ΡΡ-Π±Π°Π½ΠΊΠΈ
ΠΠ½ Π²Π΅ΡΠ½Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
# 0: efm32.flash (efm32) ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ 0x00000000, ΡΠ°Π·ΠΌΠ΅Ρ 0x00008000, ΡΠΈΡΠΈΠ½Π° ΡΠΈΠ½Ρ 0, ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ 0
Π’Π΅ΠΏΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΡΡ Π½Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ flash write_image .
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΡΠΌΠ°ΡΡ bin (Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ), ihex (Intel hex), elf (ΡΠ°ΠΉΠ» ELF), s19 (Motorola s19), mem ΠΈΠ»ΠΈ Builder.
> flash write_image erase “Desktop / FirstApp.hex”
Π£ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΈΡΠ°Π½ΠΈΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ
Π·Π°ΠΏΠΈΡΠ°Π» 1536 Π±Π°ΠΉΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° Desktop / FirstApp.hex Π·Π° 0,124740 Ρ (12,025 ΠΠΈΠ / Ρ)
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ½ΠΎΠ²Π° Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π²Π°ΡΡ ΡΠ΅Π»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
> ΡΠ±ΡΠΎΡΠΈΡΡ ΠΏΡΠΎΠ±Π΅Π³
ΠΠ»Ρ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· Telnet-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎ Π²Π²Π΅Π΄ΠΈΡΠ΅:
> Π²ΡΡ ΠΎΠ΄
ΠΡΠΎΡΡΠΈΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ OpenOCD, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ OpenOCD.
Π£ΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ
ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ 1:
- ΠΡΠΈΠ±ΠΊΠ°: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ftdi: ΡΠ±ΠΎΠΉ usb_open ()
ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° libusb Π² Windows, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ OpenOCD ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ WinUSB.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Windows Π½Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ:
ΠΠ°ΡΠ΅ΠΌ ΡΠ΄Π°Π»ΠΈΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅Ρ FTDI ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΎΡ FTDI ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ CDM Uninstaller x.x – ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΡΡΡΡΠΎΠΉΡΡΠ² Windows: ΠΏΡΠΎΡΡΠΎ Π²Π²Π΅Π΄ΠΈΡΠ΅ VID ΠΈ PID.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° FTDI ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ – 0x0403. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
- ΠΠ΄Π½ΠΎΠΊΠ°Π½Π°Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (R Chips): 0x6001
- ΠΠ²ΡΡ ΠΊΠ°Π½Π°Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ 2232C / D / H): 0x6010
- Π§Π΅ΡΡΡΠ΅Ρ ΠΊΠ°Π½Π°Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ 4232H): 0x6011
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π·Π΄Π΅ΡΡ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Zadig Tool Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° WinUSB.
ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ 2:
- ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ: ΡΠ°ΠΊΡΠΎΠ²Π°Ρ ΡΠ°ΡΡΠΎΡΠ° 1000 ΠΊΠΡ
Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ init
Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ocd_bouncer
ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π²ΡΠ·Π²Π°Π½Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ TDI ΠΈ TDO Π² Β«swd-resistor-hack.cfg Β», ΠΊΠ°ΠΊ ΠΌΡ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ Π²ΡΡΠ΅.
ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½ΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ftdi_layout_init Π² ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ:
ftdi_layout_init 0x0018 0x05fb
ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ 3:
- ΠΡΠΈΠ±ΠΊΠ°: ΠΎΡΠΈΠ±ΠΊΠ° libusb_open () Ρ LIBUSB_ERROR_ACCESS
ΠΡΠΈΠ±ΠΊΠ°: ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ
ΠΡΠΈΠ±ΠΊΠ°: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ftdi Ρ vid 0403, pid 6010, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ‘*’ ΠΈ ΡΠ΅ΡΠΈΠΉΠ½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ‘FTZ7O8O0’
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ OpenOCD Π² Linux Π±Π΅Π· ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ.Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ OpenOCD Ρ ΠΏΠΎΠΌΠΎΡΡΡ sudo, Β«sudo opeocdΒ».
Π‘ΡΡΠ»ΠΊΠΈ:
[1] ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ OpenOCD Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΠ° FLASH (ΠΏΡΠΎΡΡΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ) – Olimex
[2] ΠΠΎΠΌΠ°Π½Π΄Ρ Flash – Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ OpenOCD
[3] ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ – Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ OpenOCD
[4] ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ARM GCC Π² Windows, ΡΠ°ΡΡΡ 5: ΠΡΠ»Π°Π΄ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ OpenOCD
[5] ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° OpenOCD Π΄Π»Ρ AT91SAM7S
[6] ΠΠ±ΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ – Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ OpenOCD
[7] OpenOCD – eLinux
[8] FT2232H ΠΠΈΡΡ Π΄Π°Π½Π½ΡΡ (PDF)
ΠΊΡΠΏΠΈΡΡ ft2232h Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ Π΄ΠΎΡΡΠ°Π²ΠΊΠΎΠΉ Π½Π° AliExpress
ΠΡΠ»ΠΈΡΠ½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ !!! ft2232h Π²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² Π½ΡΠΆΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. Π Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²Ρ ΡΠΆΠ΅ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΡΡΠΎ Π±Ρ Π²Ρ Π½ΠΈ ΠΈΡΠΊΠ°Π»ΠΈ, Π²Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΡΡΠΎ Π½Π° AliExpress. Π£ Π½Π°Ρ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π΅ΡΡΡ ΡΡΡΡΡΠΈ ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² Π²ΠΎ Π²ΡΠ΅Ρ ΡΠΎΠ²Π°ΡΠ½ΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΡ . ΠΡΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΡΠΎΠ²Π°ΡΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ Π΄Π΅ΡΠ΅Π²ΡΠ΅ ΠΈ Π½Π΅Π΄ΠΎΡΠΎΠ³ΠΈΠ΅ ΠΎΠΏΡΠΎΠ²ΡΠ΅ Π·Π°ΠΊΡΠΏΠΊΠΈ, ΠΌΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½ Π΅ΡΡΡ Π½Π° AliExpress.
ΠΡ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρ ΡΠΎΡΠ³ΠΎΠ²ΡΡ ΠΌΠ°ΡΠΎΠΊ Π½Π°ΡΡΠ΄Ρ Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌΠΈ ΠΏΡΠΎΠ΄Π°Π²ΡΠ°ΠΌΠΈ ΡΠΎ ΡΠΊΠΈΠ΄ΠΊΠ°ΠΌΠΈ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π±ΡΡΡΡΡΡ Π΄ΠΎΡΡΠ°Π²ΠΊΡ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΎΠΏΠ»Π°ΡΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Ρ ΡΠ΅ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ.
AliExpress Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΡΡΡΠΏΠΈΡ ΠΏΠΎ Π²ΡΠ±ΠΎΡΡ, ΠΊΠ°ΡΠ΅ΡΡΠ²Ρ ΠΈ ΡΠ΅Π½Π΅. ΠΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΊΠΈΠ΄ΠΊΠΈ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°Ρ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅, ΡΠΎΠ±ΠΈΡΠ°Ρ ΠΊΡΠΏΠΎΠ½Ρ. ΠΠΎ Π²Π°ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π±ΡΡΡΡΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎΡ Π»ΡΡΡΠΈΠΉ ft2232h Π²ΡΠΊΠΎΡΠ΅ ΡΡΠ°Π½Π΅Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΡ Π±Π΅ΡΡΡΠ΅Π»Π»Π΅ΡΠΎΠ². ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅, ΠΊΠ°ΠΊ Π²Π°ΠΌ Π±ΡΠ΄ΡΡ Π·Π°Π²ΠΈΠ΄ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ·ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΠΈΠΌ, ΡΡΠΎ ΠΊΡΠΏΠΈΠ»ΠΈ ft2232h Π½Π° AliExpress.ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ°ΠΌΡΠΌ Π½ΠΈΠ·ΠΊΠΈΠΌ ΡΠ΅Π½Π°ΠΌ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅, Π΄Π΅ΡΠ΅Π²ΡΠΌ ΡΠ°ΡΠΈΡΠ°ΠΌ Π½Π° Π΄ΠΎΡΡΠ°Π²ΠΊΡ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π° ΠΌΠ΅ΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ.
ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² ft2232h ΠΈ Π΄ΡΠΌΠ°Π΅ΡΠ΅ ΠΎ Π²ΡΠ±ΠΎΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ²Π°ΡΠ°, AliExpress – ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠ΅Π½ ΠΈ ΠΏΡΠΎΠ΄Π°Π²ΡΠΎΠ². ΠΡ ΠΏΠΎΠΌΠΎΠΆΠ΅ΠΌ Π²Π°ΠΌ ΡΠ΅ΡΠΈΡΡ, ΡΡΠΎΠΈΡ Π»ΠΈ Π΄ΠΎΠΏΠ»Π°ΡΠΈΠ²Π°ΡΡ Π·Π° Π²ΡΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΈΠ»ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΡΠΎΠ»Ρ ΠΆΠ΅ Π²ΡΠ³ΠΎΠ΄Π½ΡΡ ΡΠ΄Π΅Π»ΠΊΡ, ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ°Ρ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ΅Π²ΡΡ Π²Π΅ΡΡ.Π, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ±Π°Π»ΠΎΠ²Π°ΡΡ ΡΠ΅Π±Ρ ΠΈ ΠΏΠΎΡΡΠ°ΡΠΈΡΡΡΡ Π½Π° ΡΠ°ΠΌΡΡ Π΄ΠΎΡΠΎΠ³ΡΡ Π²Π΅ΡΡΠΈΡ, AliExpress Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π»ΡΡΡΡΡ ΡΠ΅Π½Ρ Π·Π° ΡΠ²ΠΎΠΈ Π΄Π΅Π½ΡΠ³ΠΈ, Π΄Π°ΠΆΠ΅ ΡΠΎΠΎΠ±ΡΠ°Ρ Π²Π°ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ Π»ΡΡΡΠ΅ Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ Π½Π°ΡΠ°Π»Π° ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΠΎΠΉ Π°ΠΊΡΠΈΠΈ. ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠ°Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ.AliExpress Π³ΠΎΡΠ΄ΠΈΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Ρ Π²Π°Ρ Π²ΡΠ΅Π³Π΄Π° Π΅ΡΡΡ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΡΠΉ Π²ΡΠ±ΠΎΡ ΠΏΡΠΈ ΠΏΠΎΠΊΡΠΏΠΊΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠΎΡΠ΅Π½ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ² ΠΈ ΠΏΡΠΎΠ΄Π°Π²ΡΠΎΠ² Π½Π° Π½Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅. Π Π΅Π°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»ΠΈ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ, ΡΠ΅Π½Ρ ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΈ ΠΏΡΠΎΠ΄Π°Π²ΡΠ°.ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ ΡΠ΅ΠΉΡΠΈΠ½Π³ΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ΄Π°Π²ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°Π²Π½ΠΈΡΡ ΡΠ΅Π½Ρ, Π΄ΠΎΡΡΠ°Π²ΠΊΡ ΠΈ ΡΠΊΠΈΠ΄ΠΊΠΈ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡ, ΠΏΡΠΎΡΠΈΡΠ°Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΡΠ·ΡΠ²Ρ, ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠΎΠΊΡΠΏΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ Π·Π²Π΅Π·Π΄Π½ΡΠΉ ΡΠ΅ΠΉΡΠΈΠ½Π³ ΠΈ ΡΠ°ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΌΠΈ ΠΈΡ ΠΎΠΏΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΊΡΠΏΠ°ΡΡ Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·. ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π²Π΅ΡΠΈΡΡ Π½Π°ΠΌ Π½Π° ΡΠ»ΠΎΠ²ΠΎ – ΠΏΡΠΎΡΡΠΎ ΡΠ»ΡΡΠ°ΠΉΡΠ΅ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ Π½Π°ΡΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
Π Π΅ΡΠ»ΠΈ Π²Ρ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π½Π° AliExpress, ΠΌΡ ΠΎΡΠΊΡΠΎΠ΅ΠΌ Π²Π°ΠΌ ΡΠ΅ΠΊΡΠ΅Ρ.ΠΠ΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²Ρ Π½Π°ΠΆΠΌΠ΅ΡΠ΅ Β«ΠΊΡΠΏΠΈΡΡ ΡΠ΅ΠΉΡΠ°ΡΒ» Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π½Π°ΠΉΠ΄ΠΈΡΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΡΠΏΠΎΠ½Ρ – ΠΈ Π²Ρ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ΅ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΊΡΠΏΠΎΠ½Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°, ΠΊΡΠΏΠΎΠ½Ρ AliExpress ΠΈΠ»ΠΈ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΊΡΠΏΠΎΠ½Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ, ΠΈΠ³ΡΠ°Ρ Π² ΠΈΠ³ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ AliExpress. ΠΠΌΠ΅ΡΡΠ΅ Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ Π΄ΠΎΡΡΠ°Π²ΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ΄Π°Π²ΡΠΎΠ² Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΡΠΈ ft2232h ΠΏΠΎ ΡΠ°ΠΌΠΎΠΉ Π²ΡΠ³ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅Π½Π΅.
Π£ Π½Π°Ρ Π²ΡΠ΅Π³Π΄Π° Π΅ΡΡΡ Π½ΠΎΠ²Π΅ΠΉΡΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½ΠΎΠ²Π΅ΠΉΡΠΈΠ΅ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΈ ΠΈ ΡΠ°ΠΌΡΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌΡΠ΅ Π»Π΅ΠΉΠ±Π»Ρ.ΠΠ° AliExpress ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ, ΡΠ΅Π½Π° ΠΈ ΡΠ΅ΡΠ²ΠΈΡ Π²ΡΠ΅Π³Π΄Π° Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ°ΡΠΈΠΈ. ΠΠ°ΡΠ½ΠΈΡΠ΅ ΡΠ°ΠΌΡΠΉ Π»ΡΡΡΠΈΠΉ ΡΠΎΠΏΠΏΠΈΠ½Π³ ΠΏΡΡΠΌΠΎ Π·Π΄Π΅ΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ FT2232H Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΠ»Π°ΡΡ ESP32 – ΠΡΠ»Π°Π΄ΠΊΠ°
ΠΠ½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°Π±ΠΎΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ ΠΏΠΎΠ΄Π΅Π»ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π½Π°ΡΠ΅Π», Π² Π½Π°Π΄Π΅ΠΆΠ΄Π΅, ΡΡΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ .
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Mac (OSX 10.13) Ρ platformIO (Π² VSCode, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ), ΠΏΠ»Π°ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ESP (Lolin32 lite, ΠΈ ΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎ, ΡΠΌ. ΠΠΈΠΆΠ΅) ΠΈ ΠΌΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Ρ FT2232H.ΠΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° PlatformIO, Π½ΠΎ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°Π·Π½ΡΡ ΠΌΠ΅ΡΡΠ°Ρ , Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Google Π²Ρ ΡΠ°ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ Π½Π΅Π²Π΅ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
ΠΠ»Π°ΡΠ° esp32 Ρ Π²Π°Ρ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ GPIO12, GPIO13, GPIO14 ΠΈ GPIO15.
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Ρ MiniModule Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠΎΠ³ΠΎ, ΠΎΡ ΡΠ΅Π³ΠΎ ΠΏΠΈΡΠ°Π΅ΡΡΡ FT2232H. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΡΡΠΊΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ, ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΡΡΠ°Π½Π½ΡΠ΅ Π²Π΅ΡΠΈ (Ρ ΠΌΠ΅Π½Ρ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΡΠ²Π»ΡΠ»ΠΈΡΡ Π΄ΡΡΠ³ΠΈΠ΅ VID ΠΈ PID Π½Π° ΡΠΈΠ½Π΅ USB ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, PID 6012 Π²ΠΌΠ΅ΡΡΠΎ 6010 ΠΈΠ»ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Β«ES001HΒ» ΠΈΠ»ΠΈ Β«Dual RS-232-HSΒ» Π²ΠΌΠ΅ΡΡΠΎ Β«FT2232H MiniModuleΒ».
ΠΡΠΎΡΡΠΈΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Ρ, https://www.ftdichip.com/Support/Documents/DataSheets/Modules/DS_FT2232H_Mini_Module.pdf, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π±ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π° 3 Β«ΠΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡ ΡΠΈΠ½Ρ USBΒ». Π Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ΅ΠΌΠΎΠ² (CN1 ΠΈ CN3) ΠΈ ΠΈΡ Π½ΠΎΠΌΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ². ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ 2 ΠΏΠ΅ΡΠ΅ΠΌΡΡΠΊΠΈ Π² ΠΌΠΈΠ½ΠΈΠΌΠΎΠ΄ΡΠ»Ρ:
- CN3, ΠΊΠΎΠ½ΡΠ°ΠΊΡ 1 – CN3, ΠΊΠΎΠ½ΡΠ°ΠΊΡ 3. ΠΠ½ ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ USB ΠΊ MiniModule VCC.
- ΠΡΠ²ΠΎΠ΄ 1 CN2 Π½Π° Π²ΡΠ²ΠΎΠ΄ 11 CN2 (Π½ΠΎ Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ). ΠΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ MiniModule 3.3 Π ΠΊ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° FT2232H.
Π‘Π»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π±ΡΠ»ΠΎ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Minimodule ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ Π½Π° Mac, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π΅ΡΡΠΈΠΈ OSX, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ Π²Π°Ρ Π΅ΡΡΡ, ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π½Π΅Π΅, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ USB, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ Minimodule ΠΈ Π΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° platformIO.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ /Library/Extensions/FTDIUSBSerialDriver.kext
. ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π² Google Π·Π°ΠΏΡΠΎΡ Β«ΡΠ΄Π°Π»ΠΈΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Mac ftdiΒ» ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊΠ°Ρ ΠΈΠ· ΠΏΡΠΎΡΠ΅Π΄ΡΡ Π²Π°ΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ.ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ MiniModule ΠΈ ls -l /dev/tty.*
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡ, Π²Ρ Π΅ΡΠ΅ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ Π²ΡΠ΅ ΡΡΠ°ΡΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ.
ΠΡΠ»ΠΈ Π½Π° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ MiniModule, Π΅ΡΠ»ΠΈ Π·Π°ΠΉΠ΄Π΅ΡΠ΅ Π² Apple Menu β ΠΠ± ΡΡΠΎΠΌ Mac β Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΎΡΡΠ΅Ρ β USB . ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½ ΠΊΠ°ΠΊ Β«FT2232H MiniModuleΒ», ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° 0x6010, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° 0x0403.
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ MiniModule ΠΊ Π²Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΠ΅ esp32.ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ GND (ΡΠΈΠ³Π½Π°Π»ΡΠ½ΠΎΠ΅ Π·Π°Π·Π΅ΠΌΠ»Π΅Π½ΠΈΠ΅), EN (Π²ΠΊΠ»ΡΡΠΈΡΡ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π‘ΠΠ ΠΠ‘ΠΠ, Π½ΠΎ Π°ΠΊΡΠΈΠ²Π΅Π½ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ) ΠΈ 4 ΡΠΈΠ³Π½Π°Π»Π° JTAG TCK , TDI , TDO ΠΈ TMS :
- GND – ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ: ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Minimodule CN2-2 ΠΊ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ Π·Π°Π·Π΅ΠΌΠ»Π΅Π½ΠΈΡ Π½Π° Π²Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΠ΅ esp32.
- EN Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡΠΈ Π½Π° Π²Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΠ΅ esp32, Π½ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ
RST '
ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π² ΡΡΠΎΠΌ ΡΠΎΠ΄Π΅. ΠΠΎΠΈΡΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΈΠ½Π° MiniModule Π΄Π»Ρ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠΈΠ»ΠΈΠΉ, Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π² Google ΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ PlatformIO, Π²Π²ΠΎΠ΄ΡΡ Π² Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅.ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ openocd minimodule (ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π³Π΄Π΅-ΡΠΎ Π²ΡΠΎΠ΄Π΅.platformio / packages / tool-openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg
. ΠΡ ΠΈΡΠ΅ΡΠ΅ ΡΠΈΠ³Π½Π°Π»nSRST
. ΠΠ° ΠΌΠΎΠ΅ΠΌ Π²Π΅ΡΡΠΈΡ platformio / openocd ΠΎΠ½ Π±ΡΠ» ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ FT2232H AD5, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠΌ MiniModule CN2-13. - MiniModule CN2-7 ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ GPIO13 (ΠΈΠΌΡ JTAG TCK , ΠΊΠΎΠ½ΡΠ°ΠΊΡ FT2232H AD0 )
- MiniModule CN2-10 ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ GPIO12 (ΠΈΠΌΡ JTAG TDI , ΠΊΠΎΠ½ΡΠ°ΠΊΡ FT2232H AD1 )
- MiniModule CN2-9 ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ GPIO15 (ΠΈΠΌΡ JTAG TDO , ΠΊΠΎΠ½ΡΠ°ΠΊΡ FT2232H AD2 )
- MiniModule CN2-12 ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ GPIO14 (ΠΈΠΌΡ JTAG TMS , ΠΊΠΎΠ½ΡΠ°ΠΊΡ FT2232H AD3 )
Π Π²ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (Π΅ΡΠ»ΠΈ Π½Π΅ Π²ΡΠΈΠ³ΡΠ°Π΅ΡΠ΅ ΠΏΡΠΈΠ·Ρ, Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΊΠΎΠΌΡ-ΡΠΎ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠ³Π½Π°Π»Ρ):
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ USB-ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»Ρ FT2232H Π½Π° ΠΌΠΎΠ΄ΡΠ»Π΅ Saturn Spartan 6
ΠΠΎΠ΄ΡΠ»ΡSaturn Spartan 6 FPGA ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ FT2232H USB Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΡΠ²ΡΠ·ΠΈ Ρ Ρ ΠΎΡΡΠΎΠΌ. FT2232H ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° ΠΊΠ°Π½Π°Π»Π° ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠΌ A ΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠΌ B. ΠΡΠΈ ΠΊΠ°Π½Π°Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΡΠ½ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ USB, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΡΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ². ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π² ΡΡΠΈΠ»Π΅ RS232, FT2232H ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ I2C, SPI, JTAG ΠΈ Ρ. Π.
ΠΠ°Π½Π°Π» A FT2232H Π½Π° ΠΌΠΎΠ΄ΡΠ»Π΅ Saturn Spartan 6 FPGA ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ SPI. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Π°Ρ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π½Π° ΠΏΠ»Π°ΡΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π±Π΅Π»Ρ JTAG. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄ΠΈΠ·Π°ΠΉΠ½ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΡ SPI, ΠΎΠ½Π° ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ.ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ SRAM FPGA Π½Π°ΠΏΡΡΠΌΡΡ.
ΠΠ°Π½Π°Π» B FT2232H ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ FPGA ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ Π²Ρ ΠΎΠ΄ΠΎΠ²-Π²ΡΡ ΠΎΠ΄ΠΎΠ². ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΠΠΠ‘ Π»Π΅Π³ΠΊΠΎ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ Π³Π»Π°Π²Π½ΡΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ. Π‘Π²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ FPGA ΠΈ FT2232H ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΡΠΈΠ½Ρ 13 Π±ΠΈΡ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ FPGA <-> FT2232H.
- ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡ Π² ΡΡΠΈΠ»Π΅ RS232
- Π‘ΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ 245 ΡΡΠΈΠ»Ρ FIFO
- ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΡΠΈΠΏ 245 FIFO
- SPI
- I2C
- JTAG
- Π ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° bit bang
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°Π½Π°Π» A ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ SPI, Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π° ΡΡΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅.ΠΠΎ ΠΊΠ°Π½Π°Π» B ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π²Π°ΡΠΈΠΌΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌΠΈ. Π ΡΡΠΎΠΌ ΠΊΠΎΡΠΎΡΠΊΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ FT2232H Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ FT_Prog. ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠΎΡΠΌΡ ΡΡΠΈΠ»ΠΈΡΡ FT_Prog Π·Π΄Π΅ΡΡ.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ FT2232H, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ² FTDI ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Saturn. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ, ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ Π·Π½Π°ΡΠΎΠΊ Π»ΡΠΏΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠ»ΠΈ Saturn ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ ΠΠ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½ Π² Π΄Π΅ΡΠ΅Π²Π΅ ΡΡΡΡΠΎΠΉΡΡΠ² Π² Π»Π΅Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΊΠ½Π°. ΠΡΠ»ΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΠΎΠ΄Π½ΠΎ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Β«ΠΠΎΠ΄ΡΠ»Ρ Saturn Spartan 6 FPGAΒ», ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅.
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΊΠ°Π½Π°Π» B. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π΄Π΅ΡΡ, ΡΡΠΎ ΡΠΈΠΏ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°. ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅, FT2232H ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π²ΡΠΌΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ COM-ΠΏΠΎΡΡΠΎΠΌ ΠΈ D2XX. ΠΡΠ°ΠΉΠ²Π΅Ρ VCP ΡΠ΄Π΅Π»Π°Π΅Ρ FT2232H ΠΏΠΎΡ ΠΎΠΆΠΈΠΌ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊ ΠΠ, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-ΡΠΌΡΠ»ΡΡΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΡΠ°ΠΊΡΡ ββΠΊΠ°ΠΊ Teraterm ΠΈΠ»ΠΈ HyperTerminal, Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ.ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Linux Π½Π° Saturn. Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΡΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² ΡΡΠΈΠ»Π΅ RS232 Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ FT2232H ΠΈ FPGA, ΠΈ ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π°Ρ ΡΠΎΡΠΌΠ° ΡΠ²ΡΠ·ΠΈ.
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΊΠ°Π½Π°Π» Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° D2XX. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠ°Π½Π°Π» Π½Π°ΡΡΡΠΎΠ΅Π½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ D2XX, ΠΊ Π½Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ Ρ ΠΏΠΎΠΌΠΎΡΡΡ D2XX API, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ FTDI, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° D2XX.Π‘Π°ΠΌΡΠΉ Π±ΡΡΡΡΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ²ΡΠ·ΠΈ – ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ 245FIFO. ΠΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ 8 Π»ΠΈΠ½ΠΈΠΉ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠ°ΡΡ Π»ΠΈΠ½ΠΈΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ FT2232H ΠΈ FPGA. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ FTDI Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° 245FIFO. ΠΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ VCP ΠΈ D2XX.
ΠΠΎΡΠ»Π΅ Π²ΡΠ±ΠΎΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ΅Π»ΠΊΠ½ΡΠ² Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π·Π½Π°ΡΠΎΠΊ ΠΌΠΎΠ»Π½ΠΈΠΈ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π² XML-ΡΠ°ΠΉΠ», Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡ Β«Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡΒ» Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ².ΠΠ΅ΡΠ΅Π΄ Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
FT2232H ΠΈ FT4232H – 5-Π΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ USB-ΡΡΡΡΠΎΠΉΡΡΠ² FTDI | FTDI
ΠΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Ρ FTDI FT2232H ΠΈ ΠΌΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Ρ FT4232H – ΡΡΠΎ ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΠ½ΡΠ΅ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΡΠ΅ ΠΎΡΠ΅Π½ΠΎΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ USB 2.0, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° FT2232H ΠΈ FT4232H USB 2.0, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ UART ΠΈΠ»ΠΈ FIFO. Π Π°Π·ΠΌΠ΅Ρ ΠΏΠ΅ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅Π³ΠΎ 36 ΠΌΠΌ (Π) x 30 ΠΌΠΌ (Π¨) x 12 ΠΌΠΌ (Π, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΡΠ°Π·ΡΠ΅ΠΌΠ°).ΠΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΡΠ½ΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ (MPSSE) ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎ 30 ΠΠ±ΠΈΡ / Ρ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΠ΅ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» USB Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ΅ ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΡΠ΅Π³ΡΠ»ΡΡΠΎΡΠΎΠΌ LDO ΠΈ PPL. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Ρ FTDI ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌ ΡΠΈΠ³Π½Π°Π»Π°ΠΌ ΡΠ΅ΡΠ΅Π· Π΄Π²Π° 26-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΡ (2 ΡΡΠ΄Π°, ΡΠ°Π³ 0,1 Π΄ΡΠΉΠΌΠ°) ΡΡΠ΅ΠΊΠ΅ΡΠ½ΡΡ ΡΠ°Π·ΡΠ΅ΠΌΠΎΠ² ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 32,9 ΠΌΠΌ x 5,08 ΠΌΠΌ. ΠΠ»ΠΈΠ½Π° Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 6 ΠΌΠΌ. ΠΡΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ Π±ΡΡΡΡΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° FT2232H ΠΈ FT4232H. ΠΈ Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ Π΄ΠΈΠ·Π°ΠΉΠ½Ρ.
ΠΡΡ ΠΈΠ²Π½Π°Ρ ΡΡΠ°ΡΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° 21.05.2009. ΠΠ΅ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ²ΡΠΆΠΈΡΠ΅ΡΡ Ρ Π½Π°ΠΌΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ.
ΠΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Ρ FT2232H B- ΠΠ²ΠΎΠΉΠ½ΠΎΠΉ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ USB-ΠΏΠΎΡΡ Π΄Π»Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ UART / FIFO / MPSSE
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π²Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
- 4K-Π±Π°ΠΉΡΠΎΠ²ΡΠΉ Π±ΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ TX ΠΈ Rx Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
- Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ½ΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (ΠΎΡ -40ΒΊC Π΄ΠΎ + 85ΒΊC)
ΠΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Ρ FT2232H – ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ USB-to-serial / FIFO ΠΈΠ· Π»ΠΈΠ½Π΅ΠΉΠΊΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² FTDI, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ Π΄Π²ΡΡ ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΠΌΠΎΡΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΏ FT2232H USB, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ USB.ΠΠ½ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΡΠΎΠ±Ρ Π±ΡΡΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ USB Π² ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
FT2232H Π½Π° ΠΌΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Π΅ – ΡΡΠΎ 5-Π΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ USB-ΡΡΡΡΠΎΠΉΡΡΠ² FTDI. FT2232H – ΡΡΠΎ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ USB 2.0 (480 ΠΠ±ΠΈΡ / Ρ) Π΄Π»Ρ UART / MPSSE IC. Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΄Π»Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° FIFO. ΠΠ²Π° ΠΊΠ°Π½Π°Π»Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° MPSSE. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π²ΡΠΌ ΠΏΠΎΡΡΠ°ΠΌ FT2232H ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΡ UART / Bit-Bang ΠΈΠ»ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ MPSSE, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠΌΡΠ»ΡΡΠΈΠΈ JTAG, SPI, I2C, Bit-bang ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ².
ΠΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Ρ FT2232H ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΡΠΈΠ³Π½Π°Π»Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ FT2232H Ρ Π΄Π²ΡΠΌΡ 26-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΌΠΈ Π΄Π²ΡΡ ΡΡΠ΄Π½ΡΠΌΠΈ ΡΠ°Π·ΡΠ΅ΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ°Π·ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ΅ΠΌΠΎΠ² ΠΏΠ΅ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡ ΠΈ Π»Π΅Π½ΡΠΎΡΠ½ΡΠ΅ ΠΊΠ°Π±Π΅Π»ΠΈ.
ΠΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Ρ FT4232H- Π§Π΅ΡΡΡΠ΅ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΡΡ ΠΏΠΎΡΡΠ° USB Π΄Π»Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ UART / MPSSE
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΡΡΠ΅ ΠΊΠ°Π½Π°Π»Π°
- ΠΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ TX ΠΈ Rx ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 2 ΠΠ±Π°ΠΉΡ
- Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ½ΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (ΠΎΡ -40ΒΊC Π΄ΠΎ + 85ΒΊC)
ΠΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Ρ FT4232H – ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ USB-serial / MPSSE ΠΈΠ· Π»ΠΈΠ½Π΅ΠΉΠΊΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² FTDI, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ ΡΠ΅ΡΡΡΠ΅Ρ ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΠΌΠΎΡΡΠΎΠ²ΠΎΠΉ ΡΠΈΠΏ FT4232H USB, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ USB.ΠΠ½ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΡΠΎΠ±Ρ Π±ΡΡΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ USB Π² ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
FT4232H Π½Π° ΠΌΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Π΅ – ΡΡΠΎ 5-Π΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ USB-ΡΡΡΡΠΎΠΉΡΡΠ² FTDI. FT4232H – ΡΡΠΎ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ USB 2.0 (480 ΠΠ±ΠΈΡ / Ρ) Π΄Π»Ρ UART / MPSSE IC. Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΄Π»Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° FIFO. ΠΠ²Π° ΠΈΠ· Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ MPSSE. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ FT4232H ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Π΄Π²Π° ΠΏΠΎΡΡΠ° UART / Bit-Bang ΠΏΠ»ΡΡ Π΄Π²Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° MPSSE, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΡΠΌΡΠ»ΡΡΠΈΠΈ JTAG, SPI, I2C, Bit-bang ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ².
ΠΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Ρ FT4232H ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΡΠΈΠ³Π½Π°Π»Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ FT4232H Ρ Π΄Π²ΡΠΌΡ 26-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΌΠΈ Π΄Π²ΡΡ ΡΡΠ΄Π½ΡΠΌΠΈ ΡΠ°Π·ΡΠ΅ΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ°Π·ΡΠ΅ΠΌΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΏΠ΅ΡΠ°ΡΠ½ΡΡ ΠΏΠ»Π°Ρ ΠΈ Π»Π΅Π½ΡΠΎΡΠ½ΡΠ΅ ΠΊΠ°Π±Π΅Π»ΠΈ.
ΠΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ- ΠΠ΄Π½ΠΎΠΊΡΠΈΡΡΠ°Π»ΡΠ½ΡΠΉ USB-ΠΏΠΎΡΡ Π½Π° ΡΠ΅ΡΡΡΠ΅ ΠΊΠ°Π½Π°Π»Π° UART (RS232, RS422 ΠΈΠ»ΠΈ RS485) ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Bit-Bang.
- ΠΠ΄Π½ΠΎΠΊΡΠΈΡΡΠ°Π»ΡΠ½ΡΠΉ USB Π½Π° 2 ΠΊΠ°Π½Π°Π»Π° JTAG ΠΏΠ»ΡΡ 2 UART.
- ΠΠ΄Π½ΠΎΠΊΡΠΈΡΡΠ°Π»ΡΠ½ΡΠΉ USB Π½Π° 1 ΠΊΠ°Π½Π°Π» JTAG ΠΏΠ»ΡΡ 3 UART.
- ΠΠ΄Π½ΠΎΠΊΡΠΈΡΡΠ°Π»ΡΠ½ΡΠΉ USB Π½Π° 1 ΠΊΠ°Π½Π°Π» SPI ΠΏΠ»ΡΡ 3 UART.
- ΠΠ΄Π½ΠΎΠΊΡΠΈΡΡΠ°Π»ΡΠ½ΡΠΉ USB Π½Π° 2 ΠΊΠ°Π½Π°Π»Π° SPI ΠΏΠ»ΡΡ 2 UART.
- ΠΠ΄Π½ΠΎΠΊΡΠΈΡΡΠ°Π»ΡΠ½ΡΠΉ USB Π½Π° 2 ΠΊΠ°Π½Π°Π»Π° Bit-Bang ΠΏΠ»ΡΡ 2 UART.
- ΠΠ΄Π½ΠΎΠΊΡΠΈΡΡΠ°Π»ΡΠ½ΡΠΉ USB Π½Π° 1 ΠΊΠ°Π½Π°Π» SPI, 1 ΠΊΠ°Π½Π°Π» JTAG ΠΈ 2 ΠΏΠΎΡΡΠ° UART.
- ΠΠ΄Π½ΠΎΠΊΡΠΈΡΡΠ°Π»ΡΠ½ΡΠΉ USB Π½Π° 2 ΠΊΠ°Π½Π°Π»Π° I2C ΠΏΠ»ΡΡ 2 UART.
- ΠΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ 4 ΠΊΠ°Π½Π°Π»ΠΎΠ².
- ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² Π΄ΠΎ USB.
- USB-ΠΏΡΠΎΠ΄ΡΠΊΡΡ, ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠ΅ Π½Π° ΠΌΠ΅ΡΡΠ΅.
- ΠΡΠΎΠ΄ΡΠΊΡΡ Ρ Π³Π°Π»ΡΠ²Π°Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°Π·Π²ΡΠ·ΠΊΠΎΠΉ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ USB.
- Π‘ΠΎΡΠΎΠ²ΡΠΉ ΠΈ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅Π»Π΅ΡΠΎΠ½ USB-ΠΊΠ°Π±Π΅Π»ΠΈ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ .
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² / PLD / FPGA ΠΊ USB.
- USB-Π°ΡΠ΄ΠΈΠΎ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π²ΠΈΠ΄Π΅ΠΎΠ΄Π°Π½Π½ΡΡ Ρ Π½ΠΈΠ·ΠΊΠΎΠΉ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ.
- ΠΠΠ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ USB.
- USB-ΡΡΠΈΡΡΠ²Π°ΡΠ΅Π»ΠΈ ΡΠΌΠ°ΡΡ-ΠΊΠ°ΡΡ.
- USB-ΠΏΡΠΈΠ±ΠΎΡΡ.
- ΠΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· USB.
- ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ USB MP3-ΠΏΠ»Π΅Π΅ΡΠ°.
- Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΡΠ΅Π½ΠΈΡ / Π·Π°ΠΏΠΈΡΠΈ ΡΠ»ΡΡ-ΠΊΠ°ΡΡ USB.
- ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½Π°Ρ ΠΏΡΠΈΡΡΠ°Π²ΠΊΠ° – ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ USB.
- USB-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΊΠ°ΠΌΠ΅ΡΡ.
- USB-ΡΡΠΈΡΡΠ²Π°ΡΠ΅Π»ΠΈ ΡΡΡΠΈΡ -ΠΊΠΎΠ΄ΠΎΠ².
ΠΠ°ΠΌ Π½ΡΠ°Π²ΡΡΡΡ Π½Π°ΡΠΈ ΡΡΠ°ΡΡΠΈ? ΠΠ΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ ! ΠΠ°ΠΌ Π½Π΅ ΠΎ ΡΠ΅ΠΌ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ, ΠΌΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΠΌ Π²Π°ΠΌ Π΄ΠΎΡΡΠ°Π²ΠΊΡ.
ΠΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΠΠ°ΡΠ° ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΈΡ 21.05.2009.
ΠΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠ°ΡΡΠΈ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ Π²Π΅Π±-ΡΠ°ΠΉΡΠ΅ ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π΅Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ: https://www.soselectronic.com/articles/ftdi/ftdi-ft2232h-and-ft4232h-ftdi-s-5th-generation-of-usb-devices- 711
I2C ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ ΠΌΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ FTDI FT2232H ΠΈ Arduino | by Ben Gillett
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠΉΡΠ΅ Ρ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ I2C, SPI ΠΈΠ»ΠΈ bit-bang Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ FTDI FT2232H Mini Π² Python3 ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Arduino!
ΠΠ½ΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ±Π΅Π» ΠΌΠ΅ΠΆΠ΄Ρ Π²Π°ΡΠΈΠΌ ΠΠ ΠΈ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΈΠ»ΠΈ FPGA. ΠΡΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΡΠ½ΠΎ Β«ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠΈΠ²Π°ΡΡΒ» ΠΏΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌ, ΠΊΠ°ΠΊ I2C ΠΈ SPI, Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠΈΡΠ°ΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π±ΠΈΡΡ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΊΠ°ΠΊ Β«Π±ΠΈΡ-Π±ΡΠ½Π³Β»). ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΠ¦Π Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· I2C, Π½ΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡΠΎΠ² 8-Π±ΠΈΡΠ½ΡΡ ΡΠ»ΠΎΠ².
Π£ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠΎΠ±Π»Π°Π·Π½ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Arduino) ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ USB. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΊΡ, Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈ ΡΠΊΠΎΡΠΎΡΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΡ ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ ΠΈΡ . Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ … ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡΡΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡΡΡ ΠΈΠ· 10-ΡΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π² ΠΊΠΎΡΠΌΠ°Ρ Ρ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎ ΡΠ°Π·Π²ΠΈΡΡΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ.
Π€ΠΎΡΠΎ Π£ΠΌΠ±Π΅ΡΡΠΎ Π½Π° UnsplashΠ ΡΡΠ°ΡΡΡΡ, Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΡΠΌΠΎ ΠΈΠ· ΡΡΠΈΡ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠ²Π΅Π΄ΠΈΡΠ΅ FTDI: (Future Technology Devices International). ΠΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ (ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΎΠΆΠ΅). ΠΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ FTDI ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΏΠΎΡΡΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΠΏΠ»Π°ΡΠ°Ρ Arduino (ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΊΠ»ΠΎΠ½ΠΎΠ²), Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ . ΠΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΈ Π½Π°Π±ΠΎΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠΈ Π²Π°ΡΠΈΠΌΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ Π½Π° Π²ΡΡΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅.Π₯ΠΎΡΡ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ ΠΈΠ΄Π΅Π°Π»Π΅Π½ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π²Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ: ΠΌΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΌΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ FT2232H (Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΡΠ² – ΡΡΠ°!) Π ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΠ΅ΠΌ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Arduino. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²Π°ΡΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π±ΡΠ΄Π΅Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΡΠΆΠ΅, ΡΠ΅ΠΌ Arduino: Π½Π΅Ρ Π»Π΅Π³ΠΊΠΎΠ΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ USB-Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΠΎ ΠΌΡ ΠΏΡΠΈΡΠ²ΠΎΡΠΈΠΌΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°.
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.ΠΠ°Ρ Π²ΠΎΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ I2C IO, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΠΎΡ Π΄Π»Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠ². Π― Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Arduino Due, ΠΎΠ΄Π½Ρ ΠΈΠ· Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΠΈΠ½ I2C ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΡΠΎΠ²ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΡΠ²ΠΎΠ΄Π°. ΠΠΎΠ΄ΡΠ»Ρ FTDI Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ I2C Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π΅Π³ΠΎ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ Π΄Π°Π½Π½ΡΡ , ΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π΅Π³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΡΡΠΎΠ²ΡΡ Π²Ρ ΠΎΠ΄ΠΎΠ². Arduino Due ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ 5 Π, Π° ΡΠΈΠΏ FTDI ΠΈΠΌΠ΅Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΡ 3,3 Π, Π½ΠΎ ΡΡΡΠΎΠΉΡΠΈΠ² ΠΊ 5 Π, ΡΠ°ΠΊ ΡΡΠΎ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
Π ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΌΠΈΠΊΡΠΎΡΡ
Π΅ΠΌΡ FTDI, Π½ΠΎ Ρ ΠΈΠ·Π²Π»Π΅ΠΊ Π΄Π»Ρ Π²Π°Ρ Π²Π°ΠΆΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π΄Π΅ΡΡ.ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡ ΡΠΈΠ½Ρ (ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡ USB). ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ 3 ΠΏΡΠΎΠ²ΠΎΠ΄Π° Π΄Π»Ρ I2C: Π΄Π²Π° Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ
( SDA
) ΠΈ ΠΎΠ΄ΠΈΠ½ Π΄Π»Ρ ΡΠ°ΡΠΎΠ² ( SCL
). ΠΠΈΠΊΡΠΎΡΡ
Π΅ΠΌΠ° FTDI Π±ΡΠ΄Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Β«ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅Β» ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π° ΡΠΈΠ½Π΅. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΠΊΠ°Π½Π°Π»ΠΎΠ² FT2232H Π΄Π»Ρ I2C, Π½ΠΎ Ρ Π²ΡΠ±ΡΠ°Π» ΠΊΠ°Π½Π°Π» B
– ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ ΡΠΊΠΎΡΠΎ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΌΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Ρ FT2232H ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ I2C, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Power
FTDI CN3β1 β FTDI CN3β3
(Π»ΡΠ±ΠΎΠΉ ΠΈΠ·) FTDI CN2β1, CN2β3 ΠΈ CN2β5 β (Π²ΡΠ΅) FTDI CN2β11, CN2β21, CN3β12 ΠΈ CN3β22
I2C
SDA: FTDI CN3β24 ΠΈ CN3β25 β Arduino SDA (D20 Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ). )
SCL: FTDI CN3β26 β Arduino SCL (D21 Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ)
ΠΠ±Π΅ Π»ΠΈΠ½ΠΈΠΈ I2C Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π½Π° Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ (3.3 Π ΡΠ΅ΡΠ΅Π· ΡΠ΅Π·ΠΈΡΡΠΎΡ 2 ΠΊΠΠΌ ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ), Π½ΠΎ Ρ Arduino Π΅ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΡΠΆΠΊΠΈ Π½Π° ΡΠ²ΠΎΠ΅ΠΉ ΡΠΈΠ½Π΅ I2C, ΠΏΠΎΡΡΠΎΠΌΡ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎΠ± ΡΡΠΎΠΌ. Π’Π°ΠΊΠΆΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ Π·Π°Π·Π΅ΠΌΠ»ΡΡΡΠΈΠΉ ΠΏΡΠΎΠ²ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ.
ΠΠΈΠ½ΠΈ-ΠΌΠΎΠ΄ΡΠ»Ρ FT2232HΠΠ»Ρ Π»ΠΈΠ½ΠΈΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ½Ρ AD Π½Π° CN2. ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ AD0 β AD7 ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΡΠΈΡΡΠΎΠ²ΡΠΌ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°ΠΌ Π½Π° Arduino (Π½Π° Due ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎ). Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ 2β9 Arduino. (ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊΠ°ΠΊ Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡβ¦) ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π΄Π°Π½Π½ΡΡ FT2232H, Π½Π°ΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
FTDI AD0 = CN2β7 β Arduino Pin 9
FTDI AD1 = CN2β10 β Arduino Pin 8
FTDI AD2 = CN2β9 β Π²ΡΠ²ΠΎΠ΄ 7 Arduino
FTDI AD3 = CN2β12 β Π²ΡΠ²ΠΎΠ΄ 6 Arduino
FTDI AD4 = CN2β14 β Π²ΡΠ²ΠΎΠ΄ 5 Arduino
FTDI AD5 = CN2β13 β Π²ΡΠ²ΠΎΠ΄ 4 Arduino
FTDI AD6 = CN2 β16 β ΠΡΠ²ΠΎΠ΄ 3 Arduino
FTDI AD7 = CN2β15 β ΠΡΠ²ΠΎΠ΄ 2 Arduino
ΠΠΎΠ·Π°Π±ΠΎΡΠΈΠ²ΡΠΈΡΡ ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΊΠ΅, ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠ΄.Π ΠΌΠΈΡΠ΅ Arduino ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΏΡΠΎΡΠ°ΡΡ Π·Π°Π΄Π°ΡΡ: Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ Π±Π°ΠΉΡΠ° ΡΠ΅ΡΠ΅Π· I2C (ΠΊΠ°ΠΊ Β«Π²ΡΠΎΡΠΈΡΠ½ΠΎΠ΅Β» ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ I2C), Π° ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ, ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΡ ΠΆΠ΅ Π±Π°ΠΉΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΏΠΎ ΡΠΈΡΡΠΎΠ²ΡΠΌ Π»ΠΈΠ½ΠΈΡΠΌ, ΡΠ°Π·Π±ΠΈΠ² Π±Π°ΠΉΡ Π½Π° Π΅Π³ΠΎ Π±ΠΈΡΡ ΠΈ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΡ Π½Π° ΡΡΠΈΡΡΡ.
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ΄Π° Python, Π²ΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. ΠΡΠ°ΠΉΠ²Π΅ΡΡ FTDI Π±ΡΠ²Π°ΡΡ Π΄Π²ΡΡ Π²ΠΈΠ΄ΠΎΠ²: VCP (Β«Virtual Com PortΒ») ΠΈ D2XX. VCP – ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ: ΡΡΡΡΠΎΠΉΡΡΠ²Π° FTDI ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΠΎΡΡΠΎΠΌ, Π° ΠΠ‘ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΡ ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²Π° COM / TTY.ΠΡΠΎ ΡΠ΅ΠΆΠΈΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Arduinos (Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π²). ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ Π²Π΅ΡΠ΅ΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ I2C ΠΈ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΠΉ Π²ΡΠ·ΠΎΠ², Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ D2XX.
FTD2232H ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
Β«ΠΊΠ°Π½Π°Π»Π°Β», A
ΠΈ B
, ΠΈ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠ΅ΠΆΠΈΠΌΠ°Ρ
(ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ). ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΊΠΈΡ
Π²Π΅ΡΠ΅ΠΉ, ΠΊΠ°ΠΊ SPI ΠΈ I2C, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠ°Π½Π°Π» Π½Π°Ρ
ΠΎΠ΄ΠΈΠ»ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ MPSSE
(Β«ΠΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΡΠ½ΡΠΉ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΒ»). ΠΠ»Ρ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ Π²Π·ΡΡΠ²Π° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°Π½Π°Π» Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ Π²Π·ΡΡΠ²Π°
. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ
Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
FTDI ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ FTDI D2XX.(Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ 55). ΠΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ ΠΊΠ°Π½Π°Π» B
Π² ΡΠ΅ΠΆΠΈΠΌ MPSSE
Π΄Π»Ρ I2C, Π° ΠΊΠ°Π½Π°Π» A
Π² ΡΠ΅ΠΆΠΈΠΌ Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ Π²Π·ΡΡΠ²Π° Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ.
ΠΡΠ°ΠΊ, Π½Π°ΡΠ½Π΅ΠΌ Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² D2XX ΠΈ MPSSE. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΡ
Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΡΠ°ΠΉΡΠ΅ FTDI. ΠΡΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ, Π½ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ DLL, ΡΠ°ΠΊ ΡΡΠΎ zip-Π°ΡΡ
ΠΈΠ² ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ. ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ DLL Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° MPSSE
ΠΎΡΡΡΠ΄Π°. ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΈΡ
ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ftd2xx.dll
ΠΈ libMPSSE.dll
(ΠΈΠ»ΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ Linux / Mac, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ UNIX).
ΠΡ Π·Π°Π³ΡΡΠ·ΠΈΠΌ ΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ DLL Π² Python, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ctypes
. ΠΡΠ΅Π³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ°ΠΉΠ»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ: fdt2xx.h
ΠΈ libMPSSE_i2c.h ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ·
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ (Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² Π°ΡΡ
ΠΈΠ²Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ). ΠΡΡΠ΅ΡΠ΅Π³Π°ΠΉΡΠ΅ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΊΠ°Π½Π°Π»ΠΎΠ² Π½Π° FT2232H! ΠΠ° ΠΌΠΎΠ΅ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΊΠ°Π½Π°Π» A
– ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ 1
, Π° ΠΊΠ°Π½Π°Π» B
– ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ 0
β¦ yikes! Π£ FTDI Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² (Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ
Β«Π·Π°ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ ΠΏΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡΒ»), ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΡ
, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ FT2232 ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΌΠΈΠΊΡΠΎΡΡ
Π΅ΠΌΡ.ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° AN232R ΠΈ AN2232C.
Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² Python, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ. Π― ΠΈΠ·Π²Π»Π΅ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠ΄Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΡΠΊΡΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΡ
ΠΊΠ°Π½Π°Π»ΠΎΠ² MPSSE
:
ΠΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ². ΠΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΡΠΎΠ±Ρ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΠΆΠΈΠ·Π½Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΎΡΡΠ°Π²ΠΈΠΌ Π²ΡΠ΅ ΠΊΠ°ΠΊ Π΅ΡΡΡ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°Π±Π°Π²Π½ΡΠ΅ Π²Π΅ΡΠΈ:
Π‘ΠΎΠ±ΡΠ°Π² Π²ΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ²ΠΎΠ΄ Python, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
$ python3 test.py
ΠΠ°Π³ΡΡΠΆΠ΅Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° MPSSE
ΠΠ°Π³ΡΡΠΆΠ΅Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° D2XX
Π‘ΠΏΠΈΡΠΎΠΊ ΠΊΠ°Π½Π°Π»ΠΎΠ² ...
ΠΠ°ΠΉΠ΄Π΅Π½ΠΎ 2 ΠΊΠ°Π½Π°Π»Π° (ΡΡΠ°ΡΡΡ FT_OK)
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΊΠ°Π½Π°Π»Π° Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 0 ...
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»Π°: FT2232H MiniModule B (ΡΡΠ°ΡΡΡ FT_OK)
ΠΠ°Π½Π°Π» B ΠΎΡΠΊΡΡΡ Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ: 0xfd9f58 (ΡΡΠ°ΡΡΡ FT_OK)
InitChannel () B (ΡΡΠ°ΡΡΡ FT_OK)
FT_Open () (ΡΡΠ°ΡΡΡ FT_OK)
FT_SetBaudRate () (ΡΡΠ°ΡΡΡ FT_OK)
FT_SetBitMode () (ΡΡΠ°ΡΡΡ FT_OK) 90_201 ΡΡΠ°ΡΡΡ (Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ) )
FT_GetBitMode () (ΡΡΠ°ΡΡΡ FT_OK)
Π‘ΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ Π±Π°ΠΉΡΠ°: 0x42 (0b01000010)
CloseChannel () B (ΡΡΠ°ΡΡΡ FT_OK)
FT_Close () (ΡΡΠ°ΡΡΡ FT_OK)
Π Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Arduino IDEβ¦
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ..
ΠΠΎΠ»ΡΡΠΈΠ» 0x42
ΠΡΡΡΠΎ! ΠΡ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ Π±Π°ΠΉΡ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ 0x42
) ΡΠ΅ΡΠ΅Π· I2C Π½Π° Π½Π°ΡΠ΅ Π·Π°Π³Π°Π΄ΠΎΡΠ½ΠΎΠ΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ (Arduino Due), ΠΈ ΠΎΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠΎΡ ΠΆΠ΅ Π±Π°ΠΉΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ 8 ΡΠΈΡΡΠΎΠ²ΡΡ
ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ². ΠΡΠΎ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡΡ ΠΈ (ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ) ΠΏΡΠΎΡΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° FTDI Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π²Π°ΡΠΈΠΌ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Π·Π° Π²Π°Ρ.
Tigard – ΡΡΠΎ ΠΏΠ»Π°ΡΠ° FT2232H Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ Π²Π·Π»ΠΎΠΌΠ° ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ (ΠΊΡΠ°ΡΠ΄ΡΠ°Π½Π΄ΠΈΠ½Π³)
ΠΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²ΡΡ 5V ΠΈΠ»ΠΈ 3.ΠΡΠ»Π°Π΄ΠΎΡΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡ 3V USB Π² TTL, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΈ / ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΏΠ»Π°ΡΠ°ΠΌ, Π½ΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Tigard Π½Π° Π±Π°Π·Π΅ FTDI FT2232H Π΄Π΅Π»Π°Π΅Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Π²Π·Π»ΠΎΠΌΠ° ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ, ΡΡΠΎ Tigard ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΡΠΌΠ°Ρ Π·Π°ΠΌΠ΅Π½Π° Π΄Π»Ρ Π΄Π΅ΡΡΡΠΊΠΎΠ² Π΄ΡΡΠ³ΠΈΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ°Ρ FTDI, ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ OpenOCD, FlashROM ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠ»Π°ΡΡTigard:
- ΠΠ»Π°Π²Π½ΡΠΉ ΡΠΈΠΏ – FTDI FT2232HQ, Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ USB-ΠΏΠΎΡΡ Π΄Π»Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠΈΠΊΡΠΎΡΡ
Π΅ΠΌΡ UART / FIFO
- ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΡ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ Π΄Π»Ρ UART, Π²ΠΊΠ»ΡΡΠ°Ρ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠΈΠ³Π½Π°Π»Π°ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ
- ΠΡΠΎΡΠΈΡΠ½ΡΠΉ ΠΏΠΎΡΡ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ Π΄Π»Ρ SWD, JTAG, SPI ΠΈ IΒ²C
- USB – USB 2.0 Type-C (480 ΠΠ±ΠΈΡ / Ρ) ΠΏΠΎΡΡ
- Π²Π²ΠΎΠ΄Π° / Π²ΡΠ²ΠΎΠ΄Π°
- 9-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΌ UART
- Π Π°Π·ΡΠ΅ΠΌ Qwiic I2C
- 8-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΌ SPI ΠΈ I2C
- 8-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΌ JTAG
- 10-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Cortex
- 14-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΌ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° (LA) Π΄Π»Ρ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ Π·Π° ΡΠΈΠ³Π½Π°Π»Π°ΠΌΠΈ ΡΡΠΎΠ²Π½Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
- ΠΠ°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΎΡ 1,8 Π΄ΠΎ 5,5 Π
- Π Π°Π·Π½ΠΎΠ΅
- ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ 1,8 Π, 3,3 Π, 5,0 Π ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ vTarget
- ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ SPI / JTAG ΠΈ IΒ²C / SWD
- Π‘Π²Π΅ΡΠΎΠ²ΡΠ΅ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ Π΄Π»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ
ΠΠ΅Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ Π΄Π»Ρ Tigard, ΠΈ ΠΏΠ»Π°ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° USB, OpenOCD ΠΈ UrJTAG Π΄Π»Ρ JTAG, Flashrom, PyFtdi / PySpiFlash, LibMPSSE ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° SPI, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π° ΡΠ°ΠΊΠΆΠ΅ LibMPSSE ΠΈ PyFtdi / PyI2CFlash Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² I2C.