DSP TMS320F28069๋กœ EEPROM์ธ 25LC040A-E/OT๋ฅผ ๋™์ž‘์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ด์ „ ๊ธ€๋“ค์—์„œ ๋ณธ ๋‚ด์šฉ๋“ค์„ ์ ์šฉํ•ด๋ดค์œผ๋‚˜ READ๊ฐ€ ๋˜์ง€ ์•Š์•˜๋‹ค.

 

์„ธํŒ…์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ, ๋ฐ์ดํ„ฐ์‹œํŠธ๋ฅผ ๊ผผ๊ผผํžˆ ์‚ดํŽด๋ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๋ฌผ๋ก  ๊ฒฝํ—˜ ๋ถ€์กฑ ๋•Œ๋ฌธ์— ๋‚จ๋“ค์€ ๋‹น์—ฐํžˆ ๊ณ ๋ คํ•  ์ ์„ ๋†“์นœ๊ฑฐ์ผ ์ˆ˜ ์žˆ๋‹ค.

 

void InitSpiEP(void)
{
    SpibRegs.SPICCR.bit.SPISWRESET = 0;         // SPI RESET

    SpibRegs.SPICCR.bit.SPICHAR = 0x0F;         // 16-bit char bits
//  SpibRegs.SPICCR.bit.SPICHAR = 7;            // 8-bit char bits
    SpibRegs.SPIBRR = 0x007F;                   // BAUD RATE
    SpibRegs.SPICTL.bit.MASTER_SLAVE = 1;       // MASTER MODE
    SpibRegs.SPICTL.bit.TALK = 1;               // TX ENABLE
    SpibRegs.SPICTL.bit.SPIINTENA = 0;          // SPI INTERRUPT DISABLE
    SpibRegs.SPICCR.bit.CLKPOLARITY = 0;        // 0:R/E Wo Dly 0: R/E W Dly 1:F/E Wo Dly 1:F/E W Dly
    SpibRegs.SPICTL.bit.CLK_PHASE = 1  ;        // 0            1            0            1
    SpiaRegs.SPIPRI.bit.FREE = 1;               // Set so breakpoints don't disturb xmission
    SpibRegs.SPICCR.bit.SPISWRESET = 1;         // SPI RESET

 

25LC040A-E/OT์˜ ๋ฐ์ดํ„ฐ์‹œํŠธ์— ๋ณด๋ฉด SO์ธ Serial Ouput ์‹ ํ˜ธ๋Š” ํด๋Ÿญ์˜ falling edge ์ดํ›„์— ์ถœ๋ ฅ๋œ๋‹ค๋Š” ๋‚ด์šฉ์ด ์žˆ๋‹ค.

 

!!! CLKPOLARITY์™€ CLK_PHASE๋ฅผ ๋‘˜๋‹ค 0์œผ๋กœ ํ•ด๋†“๊ณ  ๋ป˜์ง“์„ ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
  • ๋„ค์ด๋ฒ„ ๋ธ”๋Ÿฌ๊ทธ ๊ณต์œ ํ•˜๊ธฐ
  • ๋„ค์ด๋ฒ„ ๋ฐด๋“œ์— ๊ณต์œ ํ•˜๊ธฐ
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ ํ•˜๊ธฐ
  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ ๊ณต์œ ํ•˜๊ธฐ

"์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค."