์ธ๋ถ ์์ฒด ์ํธํ ๋๋ผ์ด๋ธ๋ฅผ ๋ฆฌ๋ฒ์ฑํ๊ณ ํดํนํ๋ ๊ฒ์ด ๋์ ์ค๋ ์ทจ๋ฏธ์ ๋๋ค. ์์ ์ ์๋ง VE-400, ์๋ง ZM-SHE500, ์๋ง ZM-VE500 ๋ฑ์ ๋ชจ๋ธ์ ๊ฐ์ง๊ณ ์ค์ตํ ๊ธฐํ๊ฐ ์์์ต๋๋ค. ์ต๊ทผ์ ๋๋ฃ๊ฐ ๋ ๋ค๋ฅธ ์ ์ํ๋ฅผ ๊ฐ์ ธ์์ต๋๋ค. Patriot(Aigo) SK8671์ ์ผ๋ฐ์ ์ธ ๋์์ธ(LCD ํ์๊ธฐ์ PIN ์ฝ๋ ์ ๋ ฅ์ฉ ํค๋ณด๋)์ ๋ฐ๋ผ ์ ์๋์์ต๋๋ค. ๊ทธ๊ฒ ๋์จ๊ฑด๋ฐ...
1. ์๊ฐ
ะะพัะฟัั
ํฌ์ฅ
์ํธํ๋ ๊ฒ์ผ๋ก ์ถ์ ๋๋ ๋์คํฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ๋ํ ์ก์ธ์ค๋ PIN ์ฝ๋๋ฅผ ์ ๋ ฅํ ํ์ ์ํ๋ฉ๋๋ค. ์ด ์ฅ์น์ ๋ํ ๋ช ๊ฐ์ง ์๊ฐ ์ฐธ๊ณ ์ฌํญ:
- PIN ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ์ ๊ธ์ ํด์ ํ๊ธฐ ์ ์ F1์ ๋๋ฌ์ผ ํฉ๋๋ค.
- PIN ์ฝ๋๋ 6~9์๋ฆฌ์ฌ์ผ ํฉ๋๋ค.
- 15ํ ์๋ชป๋ ์๋ ํ์ ๋์คํฌ๊ฐ ์ง์์ง๋๋ค.
2. ํ๋์จ์ด ์ํคํ ์ฒ
๋จผ์ ์ฅ์น๋ฅผ ์ฌ๋ฌ ๋ถ๋ถ์ผ๋ก ๋๋์ด ์ฅ์น๊ฐ ์ด๋ค ๊ตฌ์ฑ ์์๋ก ๊ตฌ์ฑ๋์ด ์๋์ง ์ดํดํฉ๋๋ค. ๊ฐ์ฅ ์ง๋ฃจํ ์์ ์ ์ผ์ด์ค๋ฅผ ์ฌ๋ ๊ฒ์ ๋๋ค. ๋ฏธ์ธํ ๋์ฌ์ ํ๋ผ์คํฑ์ด ๋ง์ด ์์ต๋๋ค. ์ผ์ด์ค๋ฅผ ์ด๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ด ๋ณด์ ๋๋ค(๋ฉ๋ํ XNUMXํ ์ปค๋ฅํฐ์ ์ฃผ์ํ์ธ์).
2.1. ๋ฉ์ธ๋ณด๋
๋ฉ์ธ๋ณด๋๋ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค.
๊ฐ์ฅ ์ฃผ๋ชฉํ ๋งํ ๋ถ๋ถ(์์์ ์๋๋ก ์ฐธ์กฐ):
- LCD ํ์๊ธฐ์ฉ ์ปค๋ฅํฐ(CN1);
- ํธ์ํฐ(SP1);
- Pm25LD010 (
์ฌ์ ) SPI ํ๋์ ๋๋ผ์ด๋ธ(U2); - Jmicron JMS539 ์ปจํธ๋กค๋ฌ(
์ฌ์ ) USB-SATA(U1)์ ๊ฒฝ์ฐ; - USB 3 ์ปค๋ฅํฐ(J1).
SPI ํ๋์ ๋๋ผ์ด๋ธ๋ JMS539์ฉ ํ์จ์ด ๋ฐ ์ผ๋ถ ์ค์ ์ ์ ์ฅํฉ๋๋ค.
2.2. LCD ํ์ํ
LCD ๋ณด๋์๋ ๋์ ๋๋ ๊ฒ์ด ์์ต๋๋ค.
์ค์ง:
- ์ถ์ฒ๋ฅผ ์ ์ ์๋ LCD ํ์๊ธฐ(์ค๊ตญ์ด ๊ธ๊ผด ์ธํธ์ผ ๊ฐ๋ฅ์ฑ์ด ์์) ์์ฐจ ์ ์ด;
- ํค๋ณด๋ ๋ณด๋์ฉ ๋ฆฌ๋ณธ ์ปค๋ฅํฐ.
2.3. ํค๋ณด๋ ๋ณด๋
ํค๋ณด๋ ๋ณด๋๋ฅผ ์ดํด๋ณด๋ฉด ์ํฉ์ด ๋์ฑ ํฅ๋ฏธ๋ก์์ง๋๋ค.
์ฌ๊ธฐ ๋ท๋ฉด์๋ ๋ฆฌ๋ณธ ์ปค๋ฅํฐ์ Cypress CY8C21434 ๋ง์ดํฌ๋ก ์ปจํธ๋กค๋ฌ PSoC 1(์ดํ ๊ฐ๋จํ PSoC๋ผ๊ณ ๋ถ๋ฅด๊ฒ ์ต๋๋ค)์ด ์์ต๋๋ค.
CY8C21434๋ M8C ๋ช
๋ น์ด ์ธํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค(์ฐธ์กฐ:
2.4. ์ ์ ์ ์ดํด๋ณด๋ฉด
์ฌ๊ธฐ์ ๋ฌด์์ด ์ฐ๊ฒฐ๋์ด ์๋์ง ์์ ๋ด ์๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ๋ฉํฐ๋ฏธํฐ๋ก ์ ์ ์ ํ ์คํธํ๋ฉด ๋ฉ๋๋ค.
๋ฌด๋ฆ์ ๊ทธ๋ ค์ง ์ด ๊ทธ๋ฆผ์ ๋ํ ์ค๋ช ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- PSoC๋ ๊ธฐ์ ์ฌ์์ ์ค๋ช ๋์ด ์์ต๋๋ค.
- ๋ค์ ์ปค๋ฅํฐ(์ค๋ฅธ์ชฝ์ ์๋ ์ปค๋ฅํฐ)๋ ISSP ์ธํฐํ์ด์ค๋ก, ์ด๋ช ์ ๋ฐ๋ผ ์ธํฐ๋ท์ ๊ธฐ๋ก๋ ๋ด์ฉ๊ณผ ์ผ์นํฉ๋๋ค.
- ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์ปค๋ฅํฐ๋ ํค๋ณด๋ ๋ณด๋์ ๋ํ ๋ฆฌ๋ณธ ์ปค๋ฅํฐ์ฉ ํฐ๋ฏธ๋์ ๋๋ค.
- ๊ฒ์์ ์ง์ฌ๊ฐํ์ ๋ฉ์ธ๋ณด๋์ LCD๋ณด๋๋ฅผ ์ฐ๊ฒฐํ๋๋ก ์ค๊ณ๋ CN1 ์ปค๋ฅํฐ ๊ทธ๋ฆผ์ ๋๋ค. P11, P13, P4๋ LCD ๋ณด๋์ PSoC ํ 11, 13, 4์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
3. ๊ณต๊ฒฉ ๋จ๊ณ์ ์์
์ด์ ์ด ๋๋ผ์ด๋ธ๊ฐ ์ด๋ค ๊ตฌ์ฑ ์์๋ก ๊ตฌ์ฑ๋์ด ์๋์ง ์์์ผ๋ฏ๋ก ๋ค์์ ์ํํด์ผ ํฉ๋๋ค. 1) ๊ธฐ๋ณธ ์ํธํ ๊ธฐ๋ฅ์ด ์ค์ ๋ก ์กด์ฌํ๋์ง ํ์ธํฉ๋๋ค. 2) ์ํธํ ํค๊ฐ ์์ฑ/์ ์ฅ๋๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์. 3) PIN ์ฝ๋๋ฅผ ์ ํํ ํ์ธํ ์์น๋ฅผ ์ฐพ์ผ์ญ์์ค.
์ด๋ฅผ ์ํด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํ์ต๋๋ค.
- SPI ํ๋์ ๋๋ผ์ด๋ธ์์ ๋ฐ์ดํฐ ๋คํ๋ฅผ ๊ฐ์ ธ์์ต๋๋ค.
- PSoC ํ๋์ ๋๋ผ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ๋คํํ๋ ค๊ณ ํ์ต๋๋ค.
- Cypress PSoC์ JMS539 ๊ฐ์ ํต์ ์ ์ค์ ๋ก ๋๋ฅธ ํค๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธํ์ต๋๋ค.
- ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ ๋ SPI ํ๋์ ๋๋ผ์ด๋ธ์ ์๋ฌด ๊ฒ๋ ๋ฎ์ด์ฐ์ง ์๋๋ก ํ์ธํ์ต๋๋ค.
- JMS8051์์ 539 ํ์จ์ด๋ฅผ ๋๋๋ฆฌ๊ธฐ์๋ ๋๋ฌด ๊ฒ์ผ๋ฅด๋ค.
3.1. SPI ํ๋์ ๋๋ผ์ด๋ธ์์ ๋ฐ์ดํฐ ๋คํ ๊ฐ์ ธ์ค๊ธฐ
์ด ์ ์ฐจ๋ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค.
- ํ๋์ ๋๋ผ์ด๋ธ์ ๋ค๋ฆฌ์ ํ๋ก๋ธ๋ฅผ ์ฐ๊ฒฐํ์ญ์์ค: CLK, MOSI, MISO ๋ฐ (์ ํ ์ฌํญ) EN;
- ๋ก์ง ๋ถ์๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ํผ์์ "์ค๋ํ" ํต์ (์ ๋
์ธ์ผ์ ๋ก์ง ํ๋ก 16 ); - SPI ํ๋กํ ์ฝ์ ๋์ฝ๋ฉํ๊ณ ๊ฒฐ๊ณผ๋ฅผ CSV๋ก ๋ด๋ณด๋ ๋๋ค.
- ์ด์ฉํ๋ค
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 ํ๋์ ๋๋ผ์ด๋ธ์์ ๋คํ๋ฅผ ๊ฐ์ ธ์จ ํ ์ ์ผํ ์์ ์ 8051 ๋ง์ดํฌ๋ก ์ปจํธ๋กค๋ฌ์ ๋ด์ฅ๋ JMicron ์ ์ด ์ฅ์น์ฉ ํ์จ์ด๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด๋ผ๋ ๊ฒฐ๋ก ์ ๋๋ฌํ์ต๋๋ค. ๋ถํํ๊ฒ๋ SPI ํ๋์ ๋๋ผ์ด๋ธ๋ฅผ ๋คํํ๋ ๊ฒ์ ์ธ๋ชจ๊ฐ ์๋ ๊ฒ์ผ๋ก ํ๋ช ๋์์ต๋๋ค.
- PIN ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋๋ฉด ํ๋์ ๋๋ผ์ด๋ธ ๋คํ๋ ๋์ผํ๊ฒ ์ ์ง๋ฉ๋๋ค.
- ์ด๊ธฐํ ๋จ๊ณ ํ์๋ ์ฅ์น๊ฐ SPI ํ๋์ ๋๋ผ์ด๋ธ์ ์ก์ธ์คํ์ง ์์ต๋๋ค.
3.2. ์ค๋ํ ํต์
์ด๋ ๊ด์ฌ ์๋ ์๊ฐ/๋ด์ฉ์ ๋ํ ํต์ ํ์ธ์ ๋ด๋นํ๋ ์นฉ์ ์ฐพ๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ฏธ ์๊ณ ์๋ฏ์ด USB-SATA ์ปจํธ๋กค๋ฌ๋ ์ปค๋ฅํฐ CN1๊ณผ ๋ ๊ฐ์ ๋ฆฌ๋ณธ์ ํตํด Cypress PSoC LCD์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ๋ฐ๋ผ์ ํ๋ก๋ธ๋ฅผ ํด๋นํ๋ ์ธ ๊ฐ์ ๋ค๋ฆฌ์ ์ฐ๊ฒฐํฉ๋๋ค.
- P4, ์ผ๋ฐ ์ ๋ ฅ/์ถ๋ ฅ;
- P11, I2C SCL;
- P13, I2C SDA.
๊ทธ๋ฐ ๋ค์ Saleae ๋ก์ง ๋ถ์๊ธฐ๋ฅผ ์์ํ๊ณ ํค๋ณด๋๋ก "123456~"์ ์ ๋ ฅํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ค์ ๋ค์ด์ด๊ทธ๋จ์ด ํ์๋ฉ๋๋ค.
์ฌ๊ธฐ์๋ ์ธ ๊ฐ์ง ๋ฐ์ดํฐ ๊ตํ ์ฑ๋์ด ์์ต๋๋ค.
- ์ฑ๋ P4์ ์ฌ๋ฌ ๊ฐ์ ์งง์ ๋ฒ์คํธ๊ฐ ์์ต๋๋ค.
- P11 ๋ฐ P13 - ๊ฑฐ์ ์ง์์ ์ธ ๋ฐ์ดํฐ ๊ตํ.
์ฑ๋ P4์ ์ฒซ ๋ฒ์งธ ์คํ์ดํฌ(์ด์ ๊ทธ๋ฆผ์ ํ๋์ ์ง์ฌ๊ฐํ)๋ฅผ ํ๋ํ๋ฉด ๋ค์์ ๋ณผ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์์ P4์๋ ๊ฑฐ์ 70ms์ ๋จ์กฐ๋ก์ด ์ ํธ๊ฐ ์๋ค๋ ๊ฒ์ ์ ์ ์๋๋ฐ, ์ฒ์์๋ ์ด๊ฒ์ด ํด๋ญ ์ ํธ ์ญํ ์ ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์์ต๋๋ค. ๊ทธ๋ฌ๋ ์๊ฐ์ ๋ค์ฌ ์ถ์ธกํ ๊ฒฐ๊ณผ ์ด๊ฒ์ด ํด๋ญ ์ ํธ๊ฐ ์๋๋ผ ํค๋ฅผ ๋๋ ์ ๋ ํธ์ํฐ๋ก ์ถ๋ ฅ๋๋ ์ค๋์ค ์คํธ๋ฆผ์ด๋ผ๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๋ฐ๋ผ์ ์ ํธ์ ์ด ์น์ ์์ฒด์๋ ์ ์ฉํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ PSoC๊ฐ ํค ๋๋ฆ์ ๋ฑ๋กํ๋ ์๊ธฐ๋ฅผ ์๊ธฐ ์ํ ํ์๊ธฐ๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ต์ P4 ์ค๋์ค ์คํธ๋ฆผ์ ์ฝ๊ฐ ๋ค๋ฆ ๋๋ค. "์๋ชป๋ PIN"์ ๋ํ ์ค๋์ค์ ๋๋ค!
ํค ์ ๋ ฅ ๊ทธ๋ํ๋ก ๋์๊ฐ์ ๋ง์ง๋ง ์ค๋์ค ์คํธ๋ฆผ ๊ทธ๋ํ๋ฅผ ํ๋ํ๋ฉด(ํ๋์ ์ง์ฌ๊ฐํ ์ฐธ์กฐ) ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ต๋๋ค.
์ฌ๊ธฐ์๋ P11์์ ๋จ์กฐ๋ก์ด ์ ํธ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋์ ์ด๊ฒ์ด ํด๋ญ ์ ํธ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ P13์ ๋ฐ์ดํฐ์ ๋๋ค. ์ ํธ์์ด ๋๋ ํ ํจํด์ด ์ด๋ป๊ฒ ๋ฐ๋๋์ง ํ์ธํ์ธ์. ์ฌ๊ธฐ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๋์ง ๋ณด๋ ๊ฒ์ ํฅ๋ฏธ๋ก์ธ ๊ฒ์ ๋๋ค.
๋ ๊ฐ์ ์ ์ ์ผ๋ก ์๋ํ๋ ํ๋กํ ์ฝ์ ์ผ๋ฐ์ ์ผ๋ก SPI ๋๋ I2C์ด๋ฉฐ Cypress์ ๊ธฐ์ ์ฌ์์๋ ์ด๋ฌํ ํ์ด I2C์ ํด๋นํ๋ค๊ณ ๋ช ์๋์ด ์์ผ๋ฉฐ ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ์๋ ํด๋น ์ฌํญ์ด ์ ์ฉ๋ฉ๋๋ค.
USB-SATA ์นฉ์ ์ PSoC๋ฅผ ์ง์์ ์ผ๋ก ํด๋งํ์ฌ ํค ์ํ๋ฅผ ์ฝ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก "0"์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ "1" ํค๋ฅผ ๋๋ฅด๋ฉด "1"๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. ์๋ชป๋ PIN ์ฝ๋๋ฅผ ์ ๋ ฅํ๋ฉด โ~โ๋ฅผ ๋๋ฅธ ์งํ์ ์ต์ข ์ ์ก์ด ๋ฌ๋ผ์ง๋๋ค. ๊ทธ๋ฌ๋ ํ์ฌ ๊ทธ๊ณณ์์ ์ค์ ๋ก ๋ฌด์์ด ์ ์ก๋๊ณ ์๋์ง ํ์ธํ์ง ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ด๊ฒ์ด ์ํธํ ํค๊ฐ ์๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด์จ๋ PSoC ๋ด๋ถ ํ์จ์ด๋ฅผ ์ ๊ฑฐํ ๋ฐฉ๋ฒ์ ์ดํดํ๋ ค๋ฉด ๋ค์ ์น์ ์ ์ฐธ์กฐํ์ธ์.
์ถ์ฒ : habr.com