• Home
  • Tag
  • LocationLog
  • Guestbook
  • Admin
  • Write
블로그 이미지

감사합니다.

안녕1999

카테고리

전체 (3067)
자바스크립트 (20)
안드로이드 (14)
WebGL (4)
변비 (17)
정치,경제 (35)
C언어,ARM (162)
컴퓨터(PC, Note Book, 윈.. (41)
전자회로, PCB (27)
유머,안웃긴,GIF,동영상 (118)
국부론60 (71)
모듈(PCB) (3)
건강 (2)
FreeCAD (25)
PADS (43)
퇴직,퇴사,구직,취업 활동 (3)
C# (86)
엑셀 (8)
워드 (0)
LabView (6)
레고 (30)
FPGA (0)
Total
Today
Yesterday
Tistory 로고 이미지 티스토리 가입하기!
태그 : 지역로그
방명록 : 관리자 : 글쓰기
Blog is powered
by Daum /
Designed by Tistory
RSS FEED

달력

« » 2025.5
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

공지사항

태그목록

  • pcb
  • 맛집
  • 옥션
  • 개선
  • arm
  • 문재인
  • 자바스크립트
  • 레고
  • 비교
  • 윈도우
  • 핸드폰
  • XP
  • 정부
  • 이유
  • 광고
  • 문제
  • 제천
  • C
  • 갤럭시
  • 경제
  • 안드로이드
  • 매실
  • GCC
  • 방법
  • 에러
  • 공무원
  • 프로그램
  • 어린이
  • 개발
  • 대통령

최근에 올라온 글

'SPI'에 해당되는 글 4건

  1. 2017.03.25 SPI - Half duplex 통신
  2. 2017.01.14 micro-SD, SD 핀 비교
  3. 2017.01.04 SPI로 SATA와 통신할 수 있을까?
  4. 2016.12.31 GPIO로 I2S 동작할 수 있을까?

SPI - Half duplex 통신

카테고리 없음 / 2017. 3. 25. 23:30

SPI통신은 Full duplex통신으로,

마스터에서 슬레이브로 데이터를 보내는 동시에, 슬레이브의 데이터가 마스터로 전송된다.

그러나, 실제 프로그램을 하면, 마스터가 슬레이브에게 데이터를 전송한후, 슬레이브가 응답데이터를 보내는 경우가 대부분이다.(버퍼링을 안한다면)

이는 232,422,통신도 마찬가지이다.

실제로는 사용하는 대역폭이 절반밖에 안된다는 말이다.

Full duplex를 100%사용하려면, 양쪽에 버퍼링을 해야한다.

버퍼링으로 인한 메모리 부족, 프로그램 복잡도, 동기 맞추는데 문제가 된다.

즉 Full duplex통신은 비동기 통신에 가깝다.


마스터-슬레이브 구조에서, Half duplex방식을 사용하면 어떨까?

Half duplex방식은 485방식과 동일하다.

SPI Full duplex 가 4선인데 반해, SPI Half duplex는 3선이면 된다.


우선 아래와 같이, 마스터가 슬레이브에게 데이터를 송신하는 경우,

큰 문제는 없어 보인다.

마스터에서는 RX_Disable하지 않으면, 보낸 데이터가 똑같이 수신된다.

데이터수신은 인터럽트가 발생하므로, 좋지않다.

가능하면, RX_Disable로 설정한다.


보낸데이터를 수신해야하는 경우는, 정확한 데이터가 에러없이 잘 전달되었는지 확인하는 용도이다.

그러나, 이것은 선로에서 정확히 보내졌다는것일뿐, 슬레이브가 데이터를 정확하게 받았다는 것은 아니다.

슬레이브가 데이터를 받고, CRC,체크썸등을 응답하는 경우가, 가장 확실한 방법이다.


슬레이에서 데이터를 읽는 경우


SPI통신은 슬레이브 선택핀이 존제한다. IC로 따지면, 칩셀렉트핀이다.

슬레이브도 모두 선택된 상태로, 마스터에서 슬레이브로 데이터를 전송하면,

동시에 모든 슬레이브가 데이터를 수신하게 된다.

물론, 슬레이브는 평소에는 수신모드여야한다.

TX_disable로 되어 있어야한다. 슬레이브의 MISO 포트는 'H', 'L' 가 아닌, high-impedance(단선) 상태여야한다.

'H'상태여도 상관은 없다.(0xFF출력)

그러나 가능하면, high-impedance로 설정해놓아야 한다.


모든 슬레이브를 "선택된 상태"로 놓고, 마스터에서 데이터를 동시에 뿌리는 경우에는

485방식처럼, 모든 슬레이브가 해당 데이터를 수신하고, 응답을 할지, 말지를 결정해야한다.

슬레이브 입장에서는 쓸데없는 데이터를 계속 수신하게 되는 경우도 발생한다.

그러나, 오디오데이터등, 동시에 모든 슬레이브가 수신해야되는 큰 데이터인 경우,

작은 대역폭으로도 모든 슬레이브에 전달할 수 있는 장점이 있다.

이더넷통신에서는 UDP 방식이라고 볼 수 도 있다.

모든 슬레이브가 "선택된 상태"는 슬레이브의 SPI_nCS핀을 "L"로 설정하면 된다.

물리적으로 GND에 연결하면 된다. 또는 슬레이브의 GPIO포트 하나를 사용하여, 자신이 ON/OFF하면 된다.

프로그램적으로 서정할 수 있다면 좋으나, 모든 CPU가 다 되는것은 아니니, 범용적인 방법을 사용하는것이 좋겠다.

이 경우, CLK, DATA 2가닥만 연결해주면 된다.

물론, 마스터와 슬레이브쪽에서는 MISO, MOSI를 묶어주어야 한다.

저작자표시 비영리 변경금지 (새창열림)
Posted by 안녕1999
, |

micro-SD, SD 핀 비교

카테고리 없음 / 2017. 1. 14. 23:30


저작자표시 비영리 변경금지 (새창열림)
Posted by 안녕1999
, |

SPI로 SATA와 통신할 수 있을까?

카테고리 없음 / 2017. 1. 4. 23:30

HDD나 ODD(CD-ROM)이 모두 SATA로 대체되고 있다.

IDE방식은 주소+데이터 병렬 인터페이스로, 마이컴에서도 연결이 가능했었다.

그러나 SATA로 바뀌면서, SATA HDD, ODD(CD-ROM)등은 연결이 어려워졌다.(불가능해졌다)

2016년인 지금 아직도 IDE방식의 제품이 나오기는 한다.


1안) IDE-SATA 컨버터 ic

     JM20330

     특수목적이라서, 구입이 어렵다.


2안) IDE-SATA 컨버터 모듈

     가격이 약 1.2만원선. SATA포트가 내장된 mcu가격과 별차이 없음


3안) SATA포트 내장된 mcu사용

      가격이 1.2만원선. 너무 복잡. 다층기판 필요. 외부 플래쉬 메모리, RAM등을 추가해야할 수 있다.


4안) USB-SATA ic

     약 8천원 정도. USB를 거쳐야하므로, 비효율적이다. 



질문] SPI로 SATA와 통신할 수 있을까?


SATA는 RX2가닥 TX 2가닥, GND별도, 4B5B인코딩/디코딩이 필요하다.

따라서 통신은 가능해도, mcu에서 처리하기에는 너무나 버겁다. 또한, 485방식과 같이 +,-신호를 주어야하므로, PHY에 해당하는 드라이버등이 필요하다. 최소한 TR한개씩은 달아야 한다.


결론 : USB-SATA ic가 그나마 적당하다.





검색결과

[PDF]USB 3.0 to SATA Bridge. (Rev. D) - Texas Instruments

www.ti.com/lit/ds/symlink/tusb9260.pdf
이 페이지 번역하기
USB 3.0 TO SATA BRIDGE. Data Manual. PRODUCTION DATA information is current as of publication date. Products conform to specifications per the terms of ...


저작자표시 비영리 변경금지 (새창열림)
Posted by 안녕1999
, |

GPIO로 I2S 동작할 수 있을까?

전자회로, PCB / 2016. 12. 31. 23:30

I2S는 보통 16~48kHz x 16bit x 2CH의 고속 데이터신호이다.

I2S를 지원하는 mcu가 있긴하지만, 1,2개 포트만 지원하고, 가격도 높은 편이다.

I2S가 2개이살 필요할때, SPI등의 다른 조건까지 만족하는 mcu를 찾는것은 쉽지 않다.


인터넷상에서는 SPI포트로 구현하고 있다.

그러나, SPI포트도 부족한 상황이라, 사용하기 쉽지 않다.


방법1) GPIO포트로 i2S구현이 가능할까?


48MHz mcu인 경우, 48kHz, 16비트 2채널 오디오를 처리하려면,

48000kHz/(48kHz*32bit)=31.25클럭

즉, 1비트씩 on/off할때, 31클럭(명령)을 수행할 수 있다.

인터럽트를 사용하게되면, 기본 10~50클럭정도는 필요하다.

31클럭이라면, I2S가 요구하는 비트클럭을 맞추기 어렵다.


방법2) 쉬프트레지스터 IC 74hc165(병렬입력-직렬출력), 74hc595(직렬입력-병렬출력)

mcu에서 8비트씩 한번에 입/출력하면, 

48000kHz/(48kHz*32bit/8)=375

충분히 제어가 가능하다.

단, I2S 1포트당 2개의 ic가 필요하고, 비용은 개당 약 200원씩, 합계 약 400원이다. ADC/DAC면 2배.

PCB공간도 필요하다.


결론 : 쉽지 않다.

저작자표시 비영리 변경금지 (새창열림)

'전자회로, PCB' 카테고리의 다른 글

PCB재료-폴리이미드 필름  (0) 2017.04.01
PCB설계 - 회로도 볼줄 모르는 분이 설계할 경우 문제점  (0) 2017.03.04
PCB설계 - 너무 빽빽한 회로  (2) 2017.03.01
파워 릴레이 - 래치 릴레이  (0) 2017.01.07
부품 단종  (0) 2016.10.21
Posted by 안녕1999
, |
«이전 1 다음»

최근에 달린 댓글

글 보관함

링크

티스토리툴바