ืจืืืืขืจืกืื ื ืืื ืืึทืงืื ื ืคืื ืืจืืืกื ืืืง ืืื-ืขื ืงืจืืคึผืืื ื ืืจืืืืื ืืื ืืืื ืึทืื ืคืขืจืื. ืืื ืืขืจ ืคืึทืจืืึทื ืืขื ืืืื, ืืื ืืขืืื ืื ืืขืืขืื ืืืื ืฆื ืคึผืจืึทืงืืืกืื ื ืืื ืึทืืึท ืืึธืืขืืก ืืื ืืืื VE-400, ืืืื ืื-ืฉืข500, ืืืื ืื-ืืืข-500. ื ืึธืจ ืืขืฆืื ืก, ืึท ืงืึธืืขืืข ืืขืืจืืื ืืืจ ืื ืื ืืขืจ ืืืกืฉืืขืืื ื: ืคึผืึทืืจืืึธื (ืึทืืืึธ) ืกืง8671, ืืืึธืก ืืื ืืขืืืื ืืืื ืึท ืืืคึผืืฉ ืคึผืืึทื - ืึท ืืงื ืืจืืื ืืื ืึท ืงืืึทืืืืึทืืืจ ืคึฟืึทืจ ืึทืจืืึทื ืึท PIN ืงืึธื. ืืืก ืืื ืืืืก ืืื ืืจืืืกืืขืงืืืขื ืคืื ืืขื...
1. ืืงืืื
ืืึธืืกืื ื
ืคึผืึทืงืื ื
ืึทืงืกืขืก ืฆื ืื ืืึทืื ืกืืึธืจื ืืืืฃ ืื ืืืกืง, ืืืึธืก ืืื ืกืึทืคึผืึธืืืึทืืื ืื ืงืจืืคึผืืื, ืืื ืืืจืืืขืงืึธืื ื ืึธื ืึทืจืืึทื ืื PIN ืงืึธื. ืขืืืขืืข ืื ืืจืึทืืึทืงืืขืจื ืืขืจืืช ืืืืฃ ืืขื ืืืื:
- ืฆื ืืืืฉื ืื PIN ืงืึธื, ืืืจ ืืืื ืืจืืงื F1 ืืืืืขืจ ืึทื ืืึทืงืื ื;
- ืื PIN ืงืึธื ืืืื ืึทื ืืืึทืืื ืคืื 6 ืฆื 9 ืืืืืฉืึทืฅ;
- ื ืึธื 15 ืคืึทืืฉ ืคืจืืืื, ืื ืืืกืง ืืื ืงืืืจื.
2. ืืึทืื ืืืึทืจื ืึทืจืงืึทืืขืงืืฉืขืจ
ืขืจืฉืืขืจ, ืืืจ ืืืืกืขืงื ืื ืืืื ืืื ืคึผืึทืจืฅ ืฆื ืคึฟืึทืจืฉืืืื ืืืึธืก ืงืึทืืคึผืึธืื ืึทื ืฅ ืขืก ืืืฉืืืื ืคืื. ืื ืืขืจืกื ืืืืืึทืก ืึทืจืืขื ืืื ืขืคื ืืขื ืคืึทื: ืึท ืคึผืืึทืฅ ืคืื ืืืงืจืึธืกืงืึธืคึผืืง ืกืงืจืื ืืื ืคึผืืึทืกืืืง. ื ืึธื ืขืคึฟืขื ืขื ืืขื ืคืึทื, ืืืจ ืืขื ืื ืคืืืืขื ืืข (ืฆืืงืืงื ืื ืคืื ืฃ-ืฉืคึผืืืงืข ืงืึทื ืขืงืืขืจ ืืื ืกืึทืืขืจื):
2.1. ืืืืคึผื ืืจืขื
ืื ืืืืคึผื ืืจืขื ืืื ืืึทื ืฅ ืคึผืฉืื:
ืื ืืขืจืกื ื ืึธืืืึทืืึทื ืืืืื (ืืขื ืคืื ืฉืคึผืืฅ ืฆื ืื ืึธ):
- ืงืึทื ืขืงืืขืจ ืคึฟืึทืจ ืืงื ืืจืืื (CN1);
- ืืืืขืขืืขืจ (ืกืคึผ 1);
- Pm25LD010 (
ืกืคึผืขืฆืืคืืงืึทืฆืืข ) ืกืคึผื ืืืืฅ ืคืึธืจ (ื2); - Jmicron JMS539 ืงืึธื ืืจืึธืืืขืจ (
ืกืคึผืขืฆืืคืืงืึทืฆืืข ) ืคึฟืึทืจ ืืกื-ืกืึทืืึท (ื1); - ืืกื 3 ืงืึทื ืขืงืืขืจ (J1).
ืื SPI ืืืืฅ ืคืึธืจ ืกืืึธืจื ืื ืคืืจืืืืึทืจืข ืคึฟืึทืจ JMS539 ืืื ืขืืืขืืข ืกืขืืืื ืืก.
2.2. ืืงื ืืจืืื ืืจืขื
ืขืก ืืื ืืึธืจื ืืฉื ืืขืจืงืืืืจืืืง ืืืืฃ ืื ืืงื ืืจืขื.
ื ืึธืจ:
- ืืงื ืืจืืื ืคืื ืืืืืึทืงืึทื ื ืึธื ืืืื (ืืืกืืึธืืข ืืื ืึท ืืื ืขืืืฉ ืฉืจืืคึฟื ืฉืืขืื); ืืื ืกืึทืงืืืขื ืืฉืึทื ืงืึธื ืืจืึธื;
- ืืขื ื ืงืึทื ืขืงืืขืจ ืคึฟืึทืจ ืงืืึทืืืืึทืืืจ ืืจืขื.
2.3. ืงืืึทืืืืึทืืืจ ืืจืขื
ืืืขื ืืืืึทืืึทื ื ืื ืงืืึทืืืืึทืืืจ ืืจืขื, ืื ืืื ืื ื ืขืืขื ืึท ืืขืจ ืืฉืืงืึทืืืข ืงืขืจ.
ืืึธ, ืืืืฃ ืื ืฆืืจืืง ืืืึทื, ืืืจ ืืขื ืึท ืืขื ื ืงืึทื ืขืงืืขืจ, ืืื ืืขืืื ื ืืื ืึท Cypress CY8C21434 ืืืงืจืึธืงืึธื ืืจืึธืืืขืจ PSoC 1 (ืืขืจื ืึธื ืืืจ ืืืขืื ืคืฉืื ืจืืคื ืขืก PSoC)
CY8C21434 ื ืืฆื ืื M8C ืืืืขื ืฉืืขืื (ืืขื
2.4. ืงืืงื ืืืึท ืื ืืืืจืขืก
ืืืืืจ ืืืืกืจืขืืขื ืขื ืืืืก ืืื ืื ืคืืจืืื ืื. ืฆื ืืึธื ืืึธืก, ื ืึธืจ ืคึผืจืืืืจื ืื ืืืืจืขืก ืืื ืึท ืืืืืืืขืืขืจ:
ืืขืจืงืืขืจืื ืืขื ืคึฟืึทืจ ืืขื ืืืึทืืจืึทืืข ืฆืืขื ืืืืฃ ืื ืงื ื:
- ืื PSoC ืืื ืืืกืงืจืืืื ืืื ืื ืืขืื ืืฉ ืืึทืฉืจืืึทืืื ื;
- ืืขืจ ืืืืึทืืขืจ ืงืึทื ืขืงืืขืจ, ืืขืจ ืืืื ืขืจ ืฆื ืื ืจืขืื, ืืื ืื ืืกืกืคึผ ืฆืืืื ื, ืืืึธืก, ืืืื ืื ืืืขื ืคืื ืืืจื, ืงืึธืจืึทืกืคึผืึทื ืื ืฆื ืืืึธืก ืืื ืืขืฉืจืืื ืืืขืื ืืื ืืืืฃ ืืขืจ ืืื ืืขืจื ืขืฅ;
- ืื ืจืขืื ืงืึทื ืขืงืืขืจ ืืื ืืขืจ ืืืึธืงืืึทื ืคึฟืึทืจ ืื ืืขื ื ืงืึทื ืขืงืืขืจ ืฆื ืื ืงืืึทืืืืึทืืืจ ืืจืขื;
- ืื ืฉืืืึทืจืฅ ืืจืึธืืขืง ืืื ืึท ืฆืืืืขื ืื ื ืคืื ืื CN1 โโืงืึทื ืขืงืืขืจ, ืืืืืื ื ืฆื ืคืึทืจืืื ืื ืื ืืืืคึผื ืืจืขื ืฆื ืื ืืงื ืืจืขื. P11, P13 ืืื P4 ืืขื ืขื ืงืึธื ื ืขืงืืขื ืฆื PSoC ืคึผืื ืก 11, 13 ืืื 4 ืืืืฃ ืื ืืงื ืืจืขื.
3. ืกืืงืืืึทื ืก ืคืื ืืึทืคืึทืื ืืจืื
ืืืฆื ืึทื ืืืจ ืืืืกื ืืืึธืก ืงืึทืืคึผืึธืื ืึทื ืฅ ืืขื ืคืึธืจ ืืืฉืืืื ืคืื, ืืืจ ืืึทืจืคึฟื ืฆื: 1) ืืึทืื ืืืืขืจ ืึทื ืื ืืงืขืจืืืง ืขื ืงืจืืคึผืฉืึทื ืคืึทื ืืงืฉืึทื ืึทืืืื ืืื ืคืืงืืืฉ ืคืึธืจืฉืืขืื; 2) ืืขืคืื ืขื ืืืืก ืืื ืขื ืงืจืืคึผืฉืึทื ืฉืืืกืืขื ืืขื ืขื ืืืฉืขื ืขืจืืืืึทื / ืืขืจืืืขืืืขื; 3) ืืขืคึฟืื ืขื ืืื ืคึผืื ืงื ืื PIN ืงืึธื ืืืขื ืืืื ืึธืคึผืืขืฉืืขืื.
ืฆื ืืึธื ืืึธืก, ืืื ืืึธืื ืื ืคืืืืขื ืืข ืกืืขืคึผืก:
- ืืขื ืืืขื ืึท ืืึทืื ืืึทืืคึผ ืคืื ืึท SPI ืืืืฅ ืคืึธืจ;
- ืืขืคืจืืืื ืฆื ืืึทืืคึผ ืืึทืื ืคืื ืึท PSoC ืืืืฅ ืคืึธืจ;
- ืืืขืจืึทืคืืื ืึทื ืื ืงืึธืืื ืืงืึทืฆืืข ืฆืืืืฉื Cypress PSoC ืืื JMS539 ืึทืงืฉืื ืึผืืื ืงืืกืืจืึธืืงืก;
- ืืื ืืขืืืื ืืืืขืจ ืึทื ืืืขื ืืฉืึทื ืืื ื ืื ืคึผืึทืจืึธื, ืืึธืจื ืืฉื ืืื ืึธืืืืขืจืจืืืึทื ืืื ืื SPI ืืืืฅ ืคืึธืจ;
- ืืื ืืขืืืขื ืฆื ืคืืื ืฆื ืคืึทืจืงืขืจื ืื 8051 ืคืืจืืืืึทืจืข ืคึฟืื JMS539.
3.1. ื ืขืืขื ืึท ืืึทืื ืืึทืืคึผ ืคืื ืึท SPI ืืืืฅ ืคืึธืจ
ืืขื ืคึผืจืึธืฆืขืืืจ ืืื ืืืืขืจ ืคึผืฉืื:
- ืคืึทืจืืื ืื ืคึผืจืึธืืขืก ืฆื ืื ืคืืก ืคืื ืื ืืืืฅ ืคืึธืจ: CLK, MOSI, MISO ืืื (ืึทืคึผืฉืึทื ืึทื) EN;
- "ืกื ืืฃ" ืงืึธืืื ืืงืึทืฆืืข ืืื ืึท ืกื ืืคืขืจ ื ืืฆื ืึท ืืึธืืืง ืึทื ืึทืืืืขืจ (ืืื ืืขืืืืื ื
Saleae Logic Pro 16 ); - ืืขืงืึธืืข ืกืคึผื ืคึผืจืึธืืึธืงืึธื ืืื ืึทืจืืืกืคืืจื ืจืขืืืืืึทืื ืฆื ืงืกืื;
- ื ืขืืขื ืืืึทืืข
decode_spi.rb ืฆื ืคึผืึทืจืก ืื ืจืขืืืืืึทืื ืืื ืืึทืงืืืขื ืึท ืืึทืืคึผ.
ืืืืข ืืึธื ืึทื ืืขืจ ืฆืืืึทื ื ืึทืจืืขื ืกืคึผืขืฆืืขื ืืื ืืื ืืขื ืคืึทื ืคืื ืื JMS539 ืงืึธื ืืจืึธืืืขืจ, ืืืืึทื ืื ืงืึทื ืืจืึธืืืขืจ ืืึธืืื ืึทืืข ืื ืคืืจืืืืึทืจืข ืคึฟืื ืื ืืืืฅ ืคืึธืจ ืืื ืื ืื ืืืืึทืืืืึทืืืึธื ืืื ืข.
$ decode_spi.rb boot_spi1.csv dump
0.039776 : WRITE DISABLE
0.039777 : JEDEC READ ID
0.039784 : ID 0x7f 0x9d 0x21
---------------------
0.039788 : READ @ 0x0
0x12,0x42,0x00,0xd3,0x22,0x00,
[...]
$ ls --size --block-size=1 dump
49152 dump
$ sha1sum dump
3d9db0dde7b4aadd2b7705a46b5d04e1a1f3b125 dump
ืืื ืืึธื ืืขื ืืืขื ืึท ืืึทืืคึผ ืคืื ืื SPI ืืืืฅ ืคืึธืจ, ืืื ืืขืงืืืขื ืฆื ืื ืืกืงื ื ืึทื ืืืื ืืืืื ืึทืจืืขื ืืื ืฆื ืงืจืึธื ืื ืคืืจืืืืึทืจืข ืคึฟืึทืจ ืื JMicron ืงืึธื ืืจืึธื ืืืื, ืืืึธืก ืืื ืืขืืืื ืืื ืื 8051 ืืืงืจืึธืงืึธื ืืจืึธืืืขืจ. ืฆืื ืืึทืืืืขืจื, ืืขื ืืืขื ืึท ืืึทืืคึผ ืคืื ืื SPI ืืืืฅ ืคืึธืจ ืืื ืึทืจืืืกืืขืืืึธืจืคื:
- ืืืขื ืื PIN ืงืึธื ืืื ืืขืืืื, ืื ืืืืฅ ืคืึธืจ ืืึทืืคึผ ืืืืืื ืื ืืขืืืข;
- ื ืึธื ืื ืื ืืืืึทืืืืึทืืืึธื ืืื ืข, ืื ืืืื ืืื ื ืืฉื ืึทืงืกืขืก ืื SPI ืืืืฅ ืคืึธืจ.
3.2. ืกื ืืคืื ื ืงืึธืืื ืืงืึทืฆืืข
ืืึธืก ืืื ืืืื ืืืขื ืฆื ืืขืคึฟืื ืขื ืืืึธืก ืฉืคึผืึธื ืืื ืคืึทืจืึทื ืืืืึธืจืืืขื ืคึฟืึทืจ ืงืึธื ืืจืึธืืืจืื ื ืงืึธืืื ืืงืึทืฆืืข ืคึฟืึทืจ ืื ืฆืืื / ืืื ืืึทืื ืคืื ืืื ืืขืจืขืก. ืืื ืืืจ ืฉืืื ืืืืกื, ืื ืืกื-ืกืึทืืึท ืงืึธื ืืจืึธืืืขืจ ืืื ืคืืจืืื ืื ืฆื ืื Cypress PSoC LCD ืืืจื ืงืึทื ืขืงืืขืจ CN1 ืืื ืฆืืืื ืจืืืึทื ื. ืืขืจืืืขืจ, ืืืจ ืคืึทืจืืื ืื ืื ืคึผืจืึธืืขืก ืฆื ืื ืืจืื ืงืึธืจืึทืกืคึผืึทื ืืื ื ืืขืืก:
- P4, ืึทืืืขืืืื ืึทืจืืึทื ืฉืจืืึทื / ืจืขืืืืืึทื;
- ืคึผ11, ื2ืง ืกืงื;
- P13, I2C SDA.
ืืขืจื ืึธื ืืืจ ืงืึทืืขืจ ืื Saleae ืืึธืืืง ืึทื ืึทืืืืขืจ ืืื ืึทืจืืึทื ืืืืฃ ืื ืงืืึทืืืืึทืืืจ: "123456~". ืืื ืึท ืจืขืืืืืึทื, ืืืจ ืืขื ืื ืคืืืืขื ืืข ืืืึทืืจืึทืืข.
ืืืืฃ ืขืก ืืืจ ืงืขื ืขื ืืขื ืืจืื ืืึทืื ืืืขืงืกื ืืฉืึทื ืึทืื:
- ืขืก ืืขื ืขื ืขืืืขืืข ืงืืจืฅ ืืขืจืกืฅ ืืืืฃ ืงืึทื ืึทื ืคึผ 4;
- ืืืืฃ P11 ืืื P13 - ืึผืืขื ืงืขืกืืืืขืจืืืง ืืึทืื ืืืขืงืกื.
ืืืืื ื ืืื ืืขืจ ืขืจืฉืืขืจ ืกืคึผืืืง ืืืืฃ ืงืึทื ืึทื ืคึผ 4 (ืืืื ืืจืึธืืขืง ืืื ืื ืคืจืืขืจืืืงืข ืคืืืืจ), ืืืจ ืืขื ืื ืคืืืืขื ืืข:
ืืึธ ืืืจ ืงืขื ืขื ืืขื ืึทื ืืืืฃ P4 ืขืก ืืื ืึผืืขื 70 ืืื ืคืื ืึท ืืึทื ืึทืืึทื ืึทืก ืกืืื ืึทื, ืืืึธืก ืืื ืขืจืฉืืขืจ ืกืืื ืฆื ืืืจ ืฆื ืฉืคึผืืื ืื ืจืึธืืข ืคืื โโืึท ืืืืืขืจ ืกืืื ืึทื. ืึธืืขืจ, ื ืึธื ืกืคึผืขื ืืื ื ืขืืืขืืข ืืึธื ืฆื ืงืึธื ืืจืึธืืืจื ืืืื ืืจืขืคื, ืืื ืืืกืงืึทืืืขืจื ืึทื ืืึธืก ืืื ื ืืฉื ืึท ืืืืืขืจ ืกืืื ืึทื, ืึธืืขืจ ืึท ืึทืืืืึธ ืืืึทื ืืืึธืก ืืื ืจืขืืืืืึทื ืฆื ืื ืืืืขืขืืขืจ ืืืขื ืื ืงืื ืืขื ืขื ืืขืืจืืงื. ืืขืจืืืขืจ, ืืขืจ ืึธืคึผืืืืืื ื ืคืื ืืขืจ ืกืืื ืึทื ืืื ืืื ื ืืฉื ืึทื ืืืึทืืื ื ืืฆืืง ืืื ืคึฟืึธืจืืึทืฆืืข ืคึฟืึทืจ ืืื ืื. ืึธืืขืจ, ืขืก ืงืขื ืขื ืืืื ืืขืืืืื ื ืืื ืึท ืืจืืื ืฆื ืืืืกื ืืืขื ืื PSoC ืจืขืืืฉืืกืืขืจื ืึท ืฉืืืกื ืืจืืง.
ืึธืืขืจ, ืื ืืขืฆืืข P4 ืึทืืืืึธ ืืืึทื ืืื ืึท ืืืกื ืึทื ืืขืจืฉ: ืืึธืก ืืื ืื ืึทืืืืึธ ืคึฟืึทืจ ืื "ืคืึทืจืงืจืืคึผืื PIN"!
ืฆืืจืืงืงืืืขื ืฆื ืื ืงืืกืืจืึธืืง ืืจืึทืคืืง, ืืืืื ื ืืื ืื ืืขืฆืืข ืึทืืืืึธ ืืืึทื ืืจืึทืคืืง (ืืขื ืื ืืืื ืืจืึธืืขืง ืืืืืขืจ), ืืืจ ืืึทืงืืืขื:
ืืึธ ืืืจ ืืขื ืืึทื ืึทืืึทื ืึทืก ืกืืื ืึทืื ืืืืฃ P11. ืึทืืื ืขืก ืงืืงื ืืื ืืึธืก ืืื ืืขืจ ืืืืืขืจ ืกืืื ืึทื. ืืื P13 ืืื ืืึทืื. ืืึทืืขืจืงื ืืื ืื ืืืกืืขืจ ืขื ืืขืจืื ืืขื ื ืึธื ืื ืืืคึผ ืขื ืืก. ืขืก ืืืึธืื ืืืื ืืฉืืงืึทืืืข ืฆื ืืขื ืืืึธืก ืืึทืคึผืึทื ื ืืึธ.
ืคึผืจืึธืืึธืงืึธืืก ืืืึธืก ืึทืจืืขื ืืื ืฆืืืื ืืืืจืขืก ืืขื ืขื ืืืืฉืึทืืืึทืื SPI ืึธืืขืจ I2C, ืืื ืื ืืขืื ืืฉ ืกืคึผืขืกืึทืคืึทืงืืืฉืึทื ื ืืืืฃ Cypress ืืืื ืึทื ืื ืคึผืื ืก ืฉืืืืขื ืฆื I2C, ืืืึธืก ืืืจ ืืขื ืืื ืืืช ืืื ืืื ืืืขืจ ืคืึทื:
ืื USB-SATA ืืฉืืคึผืกืขื ืงืขืกืืืืขืจ ืคึผืึธืืืก ืื PSoC ืฆื ืืืืขื ืขื ืื ืฉืืึทื ืคืื ืื ืฉืืืกื, ืืืึธืก ืืืจื ืคืขืืืงืืึทื ืืื "0". ืืขืจื ืึธื, ืืืขื ืืืจ ืืจืืงื ืื "1" ืฉืืืกื, ืขืก ืขื ืืขืจืื ืืขื ืฆื "1". ืื ืืขืฆื ืืจืึทื ืกืืืกืืข ืืื ื ืึธื ืืจืื ืืืขื "~" ืืื ืึทื ืืขืจืฉ ืืืื ืื ืคืึทืืฉ PIN ืงืึธื ืืื ืืจืืื. ืึธืืขืจ, ืืขืจืืืืึทื ืืื ืืึธืื ื ืืฉื ืึธืคึผืืขืฉืืขืื ืืืึธืก ืืื ืคืืงืืืฉ ืืจืึทื ืกืืืืืขื ืืึธืจื. ืึธืืขืจ ืืื ืืึธืฉืขื ืึทื ืืึธืก ืืื ืึทื ืืืืงืื ืฆื ืืืื ืึท ืขื ืงืจืืคึผืฉืึทื ืฉืืืกื. ืกืืึท ืืื ืกืืึท, ืืขื ืื ืืืืึทืืขืจ ืึธืคึผืืืืืื ื ืฆื ืคึฟืึทืจืฉืืืื ืืื ืืื ืึทืืืขืงืืขื ืืืขื ืื PSoC ืื ืขืจืืขื ืคืืจืืืืึทืจืข.
ืืงืืจ: www.habr.com