2011년 12월 30일 금요일

Serial Peripheral Interface - SPI

http://www.totalphase.com/support/articles/article03/#modes

Serial Peripheral Interface - SPI

History

SPI is a serial communication bus developed by Motorola. It is a full-duplex protocol that functions on a master-slave paradigm that is ideally suited to data stream application.

Theory of Operation

SPI requires four signals: clock (SCLK), master output/slave input (MOSI), master input/slave output (MISO), slave select (SS).
Three signals are shared by all devices on the SPI bus: SCLK, MOSI and MISO. SCLK is generated by the master device and is used for synchronization. MOSI and MISO are the data lines. The direction of transfer is indicated by their names. Data is always transferred in both directions in SPI, but an SPI device interested in only transmitting data can choose to ignore the receive bytes. Likewise, a device only interested in the incoming bytes can transmit dummy bytes.
Each device has its own SS line. The master pulls low on a slave's SS line to select a device for communication.
Figure 1: Sample SPI implementation.
Sample SPI       Implementation
Each slave device requires a separate slave select signal (SS).
The exchange itself has no pre-defined protocol. This makes it ideal for data-stream applications. Data can be transferred at high speed, often into the range of the tens of megahertz. The flip side is there is no acknowledgement, no flow control, the master may not even be aware of the slave's presence.

Modes

The exchange itself has no pre-defined protocol. This makes it ideal for data-streaming applications. Data can be transferred at high speed, often into the range of the tens of megahertz. The flip side is that there is no acknowledgment, no flow control, and the master may not even be aware of the slave's presence.
Figure 2: SPI Modes
Diagram of the       different SPI Modes and how they relate to clock polarity (CPOL)       and clock phase (CPHA)
The frame of the data exchange is described by two parameters, the clock polarity (CPOL) and the clock phase (CPHA). This diagram shows the four possible states for these parameters and the corresponding mode in SPI.

Benefits and Drawbacks

SPI is a very simple communication protocol. It does not have a specific high-level protocol which means that there is almost no overhead. Data can be shifted at very high rates in full duplex. This makes it very simple and efficient in a single master single slave scenario.
Because each slave needs its own SS, the number of traces required is n+3, where n is the number of SPI devices. This means increased board complexity when the number of slaves is increased.

References

2011년 12월 29일 목요일

영흥철강, 글로벌 차 부품소재 기업 도약

http://www.ebn.co.kr/news/n_view.html?id=517543

영흥철강, 글로벌 차 부품소재 기업 도약
´IT 와이어´ 월 500t 생산력 보유 2012년 초 추가 증설
와이어로프·PC강봉 등 노하우 접목해 주력 품목으로 육성
조인영 기자 (ciy810@ebn.co.kr) l 2011-09-30 13:38:01트위터페이스북미투데이요즘싸이월드공감
영흥철강은 1977년 설립돼 35년간 와이어로프, PC강봉, CD Bar 등을 생산해온 업체다. 최근에는 신사업의 일환으로 자동차용 부품에 사용되는 IT 와이어를 개발, 국내 및 해외시장을 겨냥해 본격적인 생산을 앞두고 있다. 향후 영흥철강은 IT 와이어의 생산능력을 추가적으로 늘려 주력 품목으로 끌어올리겠다는 목표다.<편집자주>

▲ 영흥철강 창원공장 전경

경상남도 창원시 성산구에 위치한 영흥철강 창원공장은 11만㎡ 규모로 와이어로프 2만2천t, CD Bar 1만9천t 등 연산 9만4천t 규모의 생산설비를 갖추고 있다.

주력 생산 제품인 와이어로프, PC강봉, PC강연선 등은 모두 선재(Wire rod)를 2차 가공해 만들어지며 다양한 규격으로 생산 가능하기 때문에 수요처의 입맛에 맞게 가공돼 공급되고 있다.

특히 최근 양산에 돌입한 IT 와이어는 오랜 선재 가공 기술의 결실로 현재 월 500t 규모의 생산능력을 갖추고 있다. IT 와이어는 Induction Heat&Tempered wire의 약어로 고주파로 열처리된 와이어를 뜻하며 자동차 현가장치 부품인 냉간코일스프링 제조에 주로 사용된다.

IT 와이어는 제품 특성상 표면 결함 및 스크래치를 최소화해야 하기 때문에 이를 우선적으로 고려해 양산한다.

지난 28일, 영흥철강 창원공장에 들어서니 둥근 코일형태의 원자재(Wire rod)들이 길게 늘어서 있었다.

1.5~2t 규모의 원자재들은 먼저 신선·직선교정 공정을 거치면서 직선 형태로 곧게 펴진다. 이 때, 신선(Drawing) 설비는 가로 형태로 설치돼 있어 표면의 흠이나 스크래치 발생을 최소화한다.

또한, 원자재는 신선기 내에 장착된 원형 다이스를 통과하면서 그 강도가 더 단단해지게 된다.

신선·교정 공정을 거친 Rod는 총 2번의 열처리를 통해 경성과 연성을 갖게 되는 데 두 번 모두 고주파 형태로 제품에 열을 가하는 방식이다.

먼저, 1차적으로 900~1천℃ 가량의 고온에서 제품에 열을 가해(Hardening) 강도를 단단하게 하며 냉각 후 다시 400~600℃ 사이에서 제품을 한번 더 달궈주며(Tempering) 연성을 부여하는 것이다.

열처리를 거친 제품은 냉각수로 식혀진 뒤 와전류탐상기(ECT)로 이동하는 데 이는 최종 제품으로 납품되기 이전 표면 결함 등을 마지막으로 잡아내는 역할을 한다.

강정규 영흥철강 생산1팀 과장은 “탐상기는 제품의 최종 품질을 진단하는 역할로, 간혹 스크래치나 흠이 발생한 제품은 별도의 표시를 통해 구별한다”고 말했다.

▲ 왼쪽 - 와전류탐상기(ECT), 오른쪽 - IT 와이어
제품 결함 테스트를 마친 rod는 녹 발생을 방지키 위한 기름(방청유)을 바른 뒤 IT 와이어라는 최종 제품으로 탄생하게 된다.

완성된 IT 와이어는 자동차 부품용, 산업용, 농업용, 가정용 등 다양한 분야에 사용되지만 특히 자동차 현가용, 브레이크, Torsion용 부품 소재로 활용된다.

영흥철강은 자동차 부품인 냉간코일스프링의 소재로서 IT 와이어를 생산해 국내뿐 아니라 해외를 겨냥해 공급하겠다는 방침이다.

강근욱 영흥철강 재무관리 팀장은 “10월경부터 상업용 제품 생산에 돌입해 인도·미국 등 해외 자동차 완성업체의 1차밴드업체를 주 대상으로 수출할 계획"이라며 "2012년부터는 유럽 및 국내에도 수요처를 확보키 위해 노력할 것”이라고 설명했다.

그는 그러면서, “20억원을 투자해 올해 월 500t 규모의 설비를 완료한 데 이어 2012년 초에는 500t 규모의 설비를 추가로 증설해 총 1천t 규모의 IT 와이어 생산능력을 갖춰 연간 240억원의 매출을 달성할 계획”이라며 “향후 수요 추이를 지켜본 뒤 신규라인을 추가로 건설하는 것도 검토 중”이라고 말했다.

영흥철강은 지난 5월 인수한 삼목강업에도 IT 와이어를 공급할 예정이다. 삼목강업은 자동차 부품 제조업체로 열간코일스프링을 주력으로 생산하고 있으며 최근에는 자동차 경량화 트렌드에 맞게 냉간코일스프링 설비를 신설해 냉간스프링 제품을 생산하고 있다.

영흥철강의 IT 와이어 생산은 오랜 선재 가공 기술 노하우가 있었기에 가능했다.

영흥철강의 주 수출품목인 와이어로프(Wire rope)는 원자재인 rod를 산세·피막 처리한 뒤 주문에 따라 열처리, 도금 공정을 추가해 제조한다.

먼저, 원자재는 50~55℃의 염산수에 의해 표면 스케일과 녹 등이 제거된 뒤, 80~90℃의 피막재, 중화재 등을 거쳐 1차 신선공정으로 이동한다.

산세·피막 공정을 거친 원자재는 신선기를 통해 곧고 길게 당겨지며 특히 제품은 이형다이스를 통과하면서 일정한 문양이 형성된다.

이후, rod는 수요처의 주문에 따라 열처리, 열처리 및 아연 도금, 이중도금 등의 공정으로 나뉘어 제조된다.

송정화 영흥철강 생산팀 과장은 “열처리시 제품에 980∼1천℃ 가량의 고온을 가한 뒤 다시 피막 작업을 거쳐 2차 신선 공정으로 이동하게 된다”고 설명했다.

2차 신선 작업으로 길게 늘어난 rod는 연선(Stranding)과 제강(Closing) 공정에서 다발로 묶여 꼬아지는 작업을 진행한다.

먼저 연선 공정에선 가는 상태의 소선을 모아 밧줄처럼 꼬면, 제강 공정에선 꼬아진 소선들을 모아 다시 한번 꼬아주는 작업을 진행한다. 이로써 완성되는 와이어로프는 8mm에서 100mm까지 그 규모가 다양하다.

와이어로프는 연산 2만2천t 가량 생산되며 이 중 70~80% 정도가 수출용으로 만들어진다. 국내·외로 납품된 와이어로프는 조선, 크레인, 석유시추, 엘리베이터 등 다양한 용도로 활용된다.

이외에 영흥철강은 CD Bar, PC강연선, PC강봉 등을 함께 제조해 국내 실수요 및 유통업체에 공급하고 있다.

CD Bar는 고부가가치 제품으로 최근 월 500t 규모의 생산라인을 증설했으며 이와 함께, 10월 경에는 월 1천500t 규모의 드로우벤치(DBM)를 증설을 완료하는 등 IT 와이어와 함께 연간 총 370억원의 매출 증대 효과를 거둘 수 있을 것으로 보고 있다.

강근욱 팀장은 “영흥철강의 상반기 매출액은 652억, 영업익은 46억원을 기록했으며 하반기엔 15~20%의 이익을 달성할 것으로 기대한다”며 “삼목강업 등과 연계해 2020년까지 매출 1조, 영업익 1천억원 달성을 목표로 제품 생산 및 공급에 박차를 가할 것”이라고 기대했다.

세아제강 생산공정

http://e-pipe.ebn.co.kr/news/n_view.html?id=504332&keys=89&kind=menu_code

세아특수강, "입맛대로 주문하세요"
QT Bar, CG Bar 등 고품질 차별화 제품 양산
자동차, 전자 등 다양한 전방산업용 부품의 핵심 소재 공급
조인영 기자 (ciy810@ebn.co.kr) l 2011-07-08 17:24:46트위터페이스북미투데이요즘싸이월드공감
1986년에 설립돼 25년간 냉간압조용선재(CHQ Wire), 마봉강(CD Bar), 스테인리스봉강(STS Bar) 등을 제조해온 세아특수강은 최근 신규 사업의 일환으로 충주2공장을 신설하고 초정밀직진BAR, 바투바(BAR TO BAR) 등 전략 품목을 집중 육성키 위해 노력하고 있다. 또한, 제품의 경쟁력을 좌우하는 수소벨로를 추가 증설해 국내 55만t, 중국 10만t까지 생산 능력을 끌어올린다는 계획이다. <편집자 주>

▲ 세아특수강 포항공장
포항시 남구에 위치한 세아특수강 포항공장은 11만㎡ 규모의 연산 27만t 가능한 선재공장이다. 포항공장에선 주력 제품인 냉간압조용선재, 마봉강, 스테인리스봉강 등 수요처의 입맛에 맞춰 모든 제품을 생산하고 있다.

냉간압조용선재(CHQ Wire) 공장에 들어서니 공정을 기다리는 둥글게 감긴 원자재(Wire ROD)들이 길게 늘어서 있었다. 1코일 기준 2t 규모의 와이어는 5.5mm부터 42mm까지 그 규모가 다양했다.

안내를 맡은 허민 선재파트장은 “원재료가 최종 CHQ Wire로 탄생하기 위해선 산세, 신선, 열처리 등을 거쳐야 하는데 제품에 따라 이 작업을 여러 번 반복하거나 생략하는 경우가 있어, 만들어지는 제품의 종류는 수만 개에 달한다”고 설명했다.

산세 라인으로 들어서자 ‘완벽한 산세 균일한 피막’이라는 슬로건이 보였다. 산세과정에선 와이어의 산화스케일을 제거해 피막을 입히는 작업을 진행한다.

세아특수강에선 산세 과정에서 제품에 따라 염산이나 쇼트볼(Shot Ball)을 이용한다. 염산 세척을 할 경우엔 강산, 인산염, 중화조, 윤활조 등으로 단계를 나누어 진행한다.

▲ 산세·피막 설비
허 파트장은 “와이어를 강산에 투입하고 꺼내면 인산염 단계에서 피막을 입히고 중화를 시키는 데 이 작업은 보통 1시간 반 정도 소요된다”고 말했다.

쇼트볼 산세에서는 0.6mm의 검은 가루 모양인 쇼트볼을 와이어에 분사해 10분 가량 스케일을 제거한다.

이 공정은 제품에 고르게 분사되기 때문에 스케일 제거 비율이 높은 편이라고 허 파트장은 설명했다.

산세 라인을 통과한 제품는 신선기의 다이스를 통과하면서 수요처가 주문한 규격대로 늘어나는 과정을 거친다. 이것을 인발이라고 하는 데, 신선기에 장착된 모터가 드럼을 돌리면, 와이어가 다이스를 통과하면서 기존 사이즈가 다운되는 형식이다.

산세와 신선 가공을 거친 제품은 열처리 작업을 위해 제품에 따라 수소벨로와 STC로로 이동한다. 수소벨로는 수소가스를 이용해 열처리하는 종(Bell)모양의 설비로, 수소가스는 열전도율이 높고 표면을 밝게 해주는 특성이 있다.

수소벨로는 용도에 따라 흰색과 흑색으로 구분해 사용하는 데, 각각 열처리(Heating)와 냉각에 쓰인다.

허 파트장은 “48t 와이어 기준으로 수소벨로 안에서 30시간 정도 공정이 이뤄지며, 이 안의 와이어는 680℃의 고온에서 열처리 된 뒤, 150℃ 수준에서 냉각된다”며 “이 과정을 통해 제품 표면이 밝아지고, 품질이 균일하게 형성되는 것”이라고 설명했다.

STC로(Short Time Cycle)는 종 모양의 수소벨로와 달리 긴 박스 형태의 설비로, 이 안에 와이어가 순차적으로 들어가면서 열처리가 이뤄진다. 20~24t 기준으로 20시간 정도 소요되는데 이 때 수소 가스 대신 RX 가스를 주입한다. 이는 열처리 시, 산세 과정을 거친 와이어의 탄소 성분이 빠져 나가는 것(탈탄)을 방지하기 위해서다.

▲ 수소벨로
열처리까지 거친 제품은 포장된 뒤 수요처의 주문대로 출하되지만, 심프리 와이어(Seam Free Wire) 등 특화 제품의 경우에는 쉐이빙머신(Shaving Machine)으로 일정 깊이 만큼 깎는 공정을 거친 뒤 납품된다.

마봉강이라고도 불리는 CD Bar(Cold Drawn Bar)는 선재를 곧게 편 뒤, 일정 길이로 절단해 만드는 봉(Bar)형태의 제품이다.

CD Bar는 산세를 거쳐 CDM(Combined Drawing Machine)이라는 설비에서 인발, 커팅, 교정 등의 작업이 일괄적으로 이뤄진다. 총 10기의 CDM 설비는 월 9천에서 9천500t 가량의 CD BAR를 생산한다.

작업장에 들어서니 원재료(Wire ROD)를 ‘ㅗ’ 모양의 페이오프롤(Pay off Roll)에 끼운 후, 감긴 와이어를 길게 피는 작업이 한창이었다.

이렇게 펴진 와이어는 예비교정기에서 1차적으로 곧게 펴주는 작업을 거친 뒤, 쇼트볼 산세 과정을 거친다. 스케일이 제거된 제품은 CHQ Wire와 마찬가지로 다이스에 통과되면서 사이즈가 다운된다.

이직상 봉강파트장은 “와이어가 다이스를 빠져 나옴과 동시에 앞에서 직선으로 당기는 인발적업이 이뤄진다”며 “이 작업은 18mm 제품 기준으로 다이스를 통과하면 지름이 16mm 정도로 줄어들며, 이 때 생기는 마찰을 적게 하기 위해 윤활유를 뿌려준다”고 설명했다.

인발 과정이 끝나면 수요처의 주문대로 길이를 자른 뒤, 제품 표면을 밝고 곧게 하는 교정 작업을 거쳐 최종 제품인 CD BAR로 탄생한다.

이후 CD BAR는 바로 출하되거나 주문에 따라 CG BAR, QT BAR 등 특화제품을 생산키 위한 다양한 후공정을 거친다.

이직상 봉강파트장은 “CG BAR는 연마기로 불리는 CG머신을 통과하면서 표면이 밝아지고 치수정밀도도 높아지는 제품”이라며 “QT BAR의 경우, 950~1100℃의 고온에서 열간한 뒤 냉간을 거치고 다시 750~850℃의 온도에서 가열하기 때문에 제품의 인장강도가 더 단단해진다”고 설명했다.

CHQ Wire, CD BAR 등 각 제품의 70% 가량은 자동차 부품용 소재로 쓰이며 주 수요처는 자동차 부품업체인 만도, S&T대우, 델파이 제트에프삭스 등이 있다. 또한 화스너(fastener)를 제조하는 태양금속, 케이피에프, 삼진정공, 진합, 영신금속 등에도 납품된다.

향후 세아특수강 포항공장은 공장합리화를 통한 생산 효율 제고와, 후처리 보완을 통한 고급화를 통해 매출 확대에 기여할 계획이다.

이와 함께 세아특수강은 충주1공장에 CHQ Wire 설비를 증산하고, 충주 2공장 신설로 BAR, TO BAR, PEELED BAR 등 신규 사업을 다각화할 예정이다.

아울러 중국 남통에 위치한 포스세아선재유한공사에도 설비를 투자해 생산량을 지속적으로 확충, 2015년까지 매출 1천억원을 달성해 글로벌 부품 소재기업으로서의 기반 구축과 조선 및 기계산업 등 비자동차산업 부문의 비중을 확대해 나가겠다는 목표다.

또한, 세아특수강은 국내외에 걸친 시설 투자로 오는 2014년까지 생산량 65만t, 매출 1조원을 달성하겠다는 방침이다.

2011년 12월 27일 화요일

LS7366 카운터 데이터

http://cafe.naver.com/circuitsmanual.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=23299&

LS7366 카운터 데이터
엔코더 신호 A/ B 를 처리하는 방법으로 LSI/CSI 의 카운터 IC인 LS7366R을 사용하면 고속 카운트가 가능하며 하드웨어가 간단하여 시스템의 안정성이 향상된다.

LS7366R의 사양, SPI 인터페이스, 내부 레지스터 그리고 간단한 프로그램 방법에 관하여 알아 보기로 한다.
32-비트 시리얼 인터페이스(SPI) 쿼더래쳐 카운터
* 동작전압: 3V 에서 5.5V (VDD-VSS)
* 5V 동작 시 최대 주파수 : 40MHz
* 3V 동작 시 최대 주파수 : 20MHz
* 32-비트 카운터(CNTR)
* 32-비트 데이터 레지스터(DTR) 와 비교기
* 32-비트 출력 레지스터(OTR)
* 2 개의 8 비트 모드 레지스터(MDR0, MDR1) 프로그램 가능한 기능모드
* 8 비트 명령 레지스터(IR)
* 8 비트 상태표시 레지스터(STR)
* 캐리, 보로우, 비교, 인덱스의 래치된 인터럽트 출력
* 비-쿼더래처 신호의 업/다운 카운트
* 카운트 영역지정(모듈로-N), 비-반복카운트(Non-recycle), 영역제한(Range-limit) 또는 프리-러닝 카운트 모드
* 8-비트, 16-비트, 24-비트, 32-비트 모드로 설정 가능한 동기(SPI)시리얼 인터페이스
* 3 가지의 패키지 타입: LS7366R (DIP), LS7366R-S (SOIC), LS7366R-TS (TSSOP)
* 표준 SPI (Serial Peripheral Interface): MOSI, MISO, SS/ 그리고 SCK
* 기타: 2, 3, 4 바이트 리드/라이트 시 최상위 바이트부터 바이트 내에서 최상위 비트(B7)부터 리드/라이트 한다.










LS7366R

LS7366R 은 인크리멘털 인코더로부터 출력되는 쿼더래쳐 신호를 직접 수신하는 32-비트 CMOS 카운터 이다. A, B 상의 4 체배, 신호에 포함된 노이즈 필터링 그리고 엔코더나 외부 센서로부터 출력되는 인덱스 신호를 수신하여 카운터 프리 셋, 카운터 클리어 그리고 데이터 캡쳐등의 여러 가지 기능을 사용할 수 있다. Index 신호가 없는 로터리 엔코더에서 1 회전 펄스 수를 설정하여 자동적으로 회전 각도 값을 표시할 수 있는 N-modulo 카운트 기능을 가지고 있다. Index 신호의 인터럽트 출력이 가능하여 고 정밀도의 엔코더를 이용한 3 차원 측정기와 고속 서보 모션 제어기에 사용된다. 마이크로 프로세서와의 인터페이스는 MOTOROLA에서 제정한 시리얼 통신 방식의 SPI를 사용한다.



LS7366R은 마이크로 컨트롤러와의 통신을 위하여 4-선식 SPI(Serial Pheriperal Interface) 버스를 제공한다. LS7366R 은 SPI 규정에서 포지티브 클록(CPOL = 0), 데이터 선. 쉬프트 후 (CPHA = 0)에 맞추어져 있다. LS7366R에서 데이터 전송은 1 바이트부터 최대 5 바이트(설정에 따름)로 이루어진다.
데이터 전송 사이클은 SS/ 신호가 High 에서 Low로 변하면 시작한다. LS7366R 로 보내지는 첫번째 바이트는 언제나 IR 레지스터를 라이트하는 명령어이다. 그리고 2 번째 바이트부터 5 번째 바이트 까지는 데이터로 처리된다. 통신은 SS/ 입력이 Low 에서 High로 되면 종료된다.


SPI 통신

SPI 는 MOTOROLA (Freescale) 사에서 규정한 전이중 통신 방식의 시리얼 인터페이스이다.
4 개의 핀 SCK, MISO, MOSI, /SS 으로 구성되며 고속의 데이터 전송 시 사용된다. SPI는 쉬프트 레지스터를 이용한 통신 방법으로 대부분의 마이크로 프로세서에서 기본 기능으로 채택되어있으며 마이크로프로세서와 연결되는 많은 주변 기기 IC 에서 통신 방법으로 사용된다.
SPI 의 핀 구성

SCK : Serial Clock 데이터를 동기화 시키는 기준 클럭
MISO : Master Input Slave Output 마스터는 데이터 입력, 슬래이브는 데이터 출력
MOSI : Master Output Slave Input 마스터는 데이터 출력 슬래이브는 데이터 입력
/SS : Slave Select 슬레이브 셀렉트 (마스터가 슬래이브를 선택하기위한 신호)


SPI 는 프로그램시 3 가지를 고려하여야 한다.
클록 극성:

클록의 시작이 LOW -> HIGH 종료가 HIGH->LOW
클록의 시작이 HIGH->LOW 종료가 LOW->HIGH
클록위상:

CPHA = 0: 클록의 시작시 데이터를 샘플링하고 클록의 종료시 데이터 쉬프트된다.
CPHA = 1: 클록의 시작시 데이터를 쉬프트하고 클록의 종료시 데이터를 샘플링한다.
데이터 전송 순서:

바이트를 구성하는 8 개의 비트가 MSB가 선 송신/수신인지 LSB 가 선 송신/수신인지 결정한다.
MOTOROA 프로세서는 MSB 로 고정되어 있으나 LSB 선 송신/수신을 선택 가능한 마이크로 프로세서도 있으므로 확인하여야 한다.


카운터는 1,2,3 또는 4 바이트 카운터로 동작할 수 있다. N-바이트 카운터로 구성되면 CNTR, DTR, 그리고 OTR은 모두 N 바이트 레지스터로 설정된다. 여기서 N 은 1,2,3 또는 4 이다. 명령/데이터의 형식은 자동적으로 N-바이트 환경으로 일치된다. 예를 들어 카운터가 2 바이트로 구성되면 DTR 쓰기 는 명령어 바이트 다음에 2 바이트가 따라 오는 것으로 처리된다. 만약 카운터가 3 바이트 카운터로 구성되면 같은 명령에서 3 바이트의 데이터가 따르는 것으로 예상한다.
적당한 수의 바이트가 전송된 후 다른 데이터의 전송이 시작된다면 SS/ 입력이 High 에서 Low 로 전환되어 새로운 명령 사이클이 개시되기 전까지 무시된다.
카운터는 두개의 모드 레지스터 MDR0 와 MDR1 레지스터를 라이팅하여 여러 개의 다른 동작 모드로 동작하도록 프로그램 가능하다.

LS7366R의 핀사양
LS7366R은 14Pin 으로 구성되어있다, 3 개의 패키지 버전(DIP, SOP, TSSOP)이 있으나 핀수와 핀번호에 정해진 기능은 모두 동일하다.


A(Pin 12)-입력, B(Pin 11)-입력

인크리멘탈 엔코더로부터 출력되는 A, B 쿼더래쳐 신호 입력이며 LS7366R의 입력으로 직접 연결한다. 이 입력은 90° 위상 차이가 있다. A상 신호와 B상 신호는 서로 상대적이다. A 신호의 변화가 B 신호의 변화보다 시간적으로 앞서면 카운터 값은 증가하며 반대로 늦으면 카운터 값은 감소한다. A와 B 신호는 내장된 디지털 필터를 거치게 되며 업/다운 방향과 카운트 클록 신호로 분해된다. 비-쿼더래쳐 모드에서 A 는 카운트 펄스 입력으로 B 는 방향 입력으로 동작한다. (B = High: 업 카운트 B=Low: 다운 카운트) 비-쿼더래쳐 모는 입력이 필터 처리되지 않는다.


INDEX/ (Pin 10)-입력

INDEX/ 는 인크리멘털 엔코더로 부터 출력된 인덱스 신호에 의하여 직접 구동 되도록 프로그램 가능하다. MDR0를 프로그램하여 터치 프리셋 (DTR로부터 CNTR에 로드), 터치 리셋 (CNTR을 0으로), 캡쳐(CNTR로부터 OTR 에 로드) 그리고 Index을 사용하지 않도록 할 수 있다.
쿼더래쳐 모드에서 INDEX/ 입력은 동기 또는 비동기 모드로 동작하도록 프로그램할 수 있다. 비동기 모드에선 A, B 의 상태에 관계없이 Index 가 Low 레벨이 되면 즉시 Index 동작(프리셋, 리셋 또는 캡쳐)이 실행된다. 동기모드 일 때 INDEX/ 입력은 입력 A 와 B 를 샘플링 하기 위한 클록에서 샘플링 된다. A 와 B 입력은 위상관계를 만족하여야 한다. A 와 B 가 동시에 High 이거나 동시에 Low 인 동안에 Index 는 Low 를 유지하고 있어야 한다. 비-쿼더래쳐 모드에서 INDEX/ 입력은 샘플링하지 않으며 어느 위상이든 직접 적용된다.


fCKi(Pin 2)-입력, fCKo(Pin 1)-출력

이 두 핀에 A, B 그리고 INDEX/ 입력을 필터링 하기위한 기본 클럭을 발생하기 위하여 크리스털을 연결한다. 크리스털 대신에 fCKi 에 외부 클록을 연결할 수 있다.
fCKi 에 입력되는 주파수는 2 분주(MDR0<B7> = 1) 또는 1 분주(MDR0<B7> = 0)하여 필터 주파수 ff가 되며 A, B 와 INDEX/ 입력의 정확한 필터링이 되기 위하여 A, B 상 주파수보다 4배 이상 커야 한다.


SS/ (Pin4)-입력

SS/ 가 High에서 Low로 변할 때 LS7366이 양방향 시리얼 통신이 되도록 한다. Low 에서 High 로 되면 시리얼 통신은 금지되며 MISO 핀은 하이-임피던스 상태가 된다. 이것은 여러 개의 슬래이브 유닛이 가능하게 한다.
CNT_EN (Pin13)-입력

CNT_EN 이 High 이면 카운트 가능 상태로 된다. 이 핀이 Low 이면 카운트 정지이다. 이 입력은 내부적으로 Pull-Up 저항이 부착되어 있어 이 핀을 사용하지 않을 때 개방 상태로 두어도 된다.


LFLAG/ (Pin8)-출력, DFLAG/ (Pin 9)-출력

LFLAG/ 와 DFLAG/ 는 Carry( 카운터 오버 플로우)가 발생, Borrow(카운터 언더 플로우) 비교 (CNTR = DTR) 그리고 INDEX 가 발생할 때 플래그가 출력되도록 설정이 가능한 출력 이다.
LFALG/는 오픈 드레인이며 래치 출력이다. 반면에 DFLAG/는 푸쉬-풀 출력 이다. LFLAG/는 여러 개의 슬래이브 구성에서 묶여질 수 있다(Wired-OR). 그러므로 하나의 프로세서가 여러 개의 LS7366R에서 발생한 인터럽트 처리 가능하다. 활성화된 LFLAG/스위치가 0 으로 되면 스태터스 레지스터 STR를 클리어 하여 하이 임피던스 상태로 복귀된다. 마이크로 프로세서에서 이 핀을 인터럽트 처리하려면 LOW 레벨 모드로 설정한다.
DFLAG/ 는 Carry, Borrow, Compare 그리고 INDEX 상태에 즉시 low 상태로 된다.( Carry, Borrow, Compare 그리고 INDEX 상태에서 벋어나면 즉시 High 상태로 복귀된다. 마이크로 프로세서에서 이 핀을 인터럽트 입력 처리 하려면 에지 트리거 모드로 설정한다.
LFALG/와 DFLAG/는 MDR1에서 설정 한다.


MOSI (Pin 7)-입력

마스터가 출력한 데이터를 수신한다. SS/ 가 Low 상태에서만 입력한 데이터가 유효하다.


MISO (Pin 6)-출력

LS7366R로부터 데이터가 출력되는 핀이다. MISO는 SS/ 가 High 가 되면 하이-임피던스 상태가 되어 여러 개의 슬래이브 유닛이 Wired-OR 출력이 가능하도록 한다.


SCK (Pin 5)-입력

SCK 입력은 MOSI, MISO의 데이터 전송 시 LOW->HIGH 이며 쉬프트는 HIGH->LOW 일때 실행하는 MOTOROLA SPI 사양의 Mode 0 조건으로 동작한다. LS7366R은 항상 슬래이브 모드로 동작하므로 SCK 신호는 호스트 마이크로 프로세서에서 공급하여야 한다.


LS7366R의 레지스터:

다음 열거되는 것이 LS7366R의 내부 레지스터 이다.
파워-온 리셋되면 레지스터 DTR, CNTR, STR, MDR0, MDR1 은 0 으로 리셋된다.


DTR. 소프트웨어 설정 가능한 DTR 은 8, 16, 24 또는 32 비트 입력 데이터 레지스터이며 MOSI 로부터 직접 라이트 될 수 있다. DTR 데이터는 32-비트 카운터(CNTR)로 부터 프로그램 제어 또는 Index 신호에 의한 하드웨어 적으로 CNTR로 전달될 수 있다. DTR 은 클리어 명령에의 하여 클리어 될 수 있다. DTR의 주 용도는 CNTR 레지스터를 프리셋 하는 것이다. (CNTR로 직접 라이트 할 수 없다.) 그리고 모듈로-N 모드 동작 시 DTR 은 모듈로 N 값, 영역-제한 모드 동작 시 제한 데이터를 저장하고 있다. 비교 동작에서 비교 플래그가 세트되면 DTR 은 CNTR 과 비교 된다. 4 바이트 모드로 설정된 경우 B31-B24, B23-B16, B15-B8 그리고 B7-B0 의 순서로 라이트 한다.


CNTR. 소프트웨어 설정 가능한 CNTR 은 8, 16, 24 또는 32-비트 업/다운 카운터이며 A 와 B 입력에 가해진 쿼더래쳐 신호를 1 체배, 2 체배 또는 4 체배(MDR0 B1, B1에서 선택)하여 얻어진 Up/Down 펄스를 카운트 한다. CNTR 은 클리어 하거나 DTR로부터 데이터를 가져올 수 있다(Pre-Set). CNTR은 마이크로 프로세서에서 데이터를 읽기(MISO 핀으로 출력)만 가능하며 쓰기는 할 수 없다. 4 바이트 모드로 설정된 경우 데이터를 읽을 때 B31-B24, B23-B16, B15-B8 그리고 B7-B0 의 순서로 출력된다.


OTR. 소프트웨어 설정 가능한 OTR은 8, 16, 24 또는 32-비트 레지스터 이며 MISO 를 통하여 출력된다. 주로 Index 펄스에 의하여 CNTR 값을 래치한 후 읽어내는 용도로 사용한다.


STR. 8-비트의 상태 레지스터이며 카운트와 관련된 정보를 저장하고 있다.

STR. 8-비트의 상태 레지스터이며 카운트와 관련된 정보를 저장하고 있다.


CY
BW
CMP
IDX
CEN
PLS
U/D
S
7
6
5
4
3
2
1
0


CY: 캐리(CNTR 오버플로우) 래치 (CNTR 이 0xFFFFFFFE에서 0xFFFFFFFF 로 되면 발생)
BW: 보로우(CNTR 언더플로우) 래치 (CNTR 0x00000001 에서 0x00000000 로 되면 발생)
CMP: 비교 (CNTR = DTR) 래치
IDX: 인덱스 래치(Index 핀이 High -> Low)
CEN: 카운트 인에이블 상태: 0: 카운트 정지, 1: 카운트 가능
PLS: 파워 손실 표시 래치: 파워 업시 세트
U/D: 카운트 방향 표시: 0: 카운트 다운, 1: 카운트 업
S: 부호비트 1: 음수 0: 양수






IR. 8-비트 레지스터인 IR은 MOSI 핀으로 입력되는 데이터열로 부터 명령어를 페치하여 선택한 레지스터를 조작한다. 명령은 CLR(Cear), RD(Read), WR(Write) 그리고 LOAD의 4 명령 이며 레지스터는 MDR0, MDR1, DTR, CNTR, OTR 그리고 STR의 6 개 레지스터이다.


B7
B6
B5
B4
B3
B2
B1
B0


B2 B1 B0 = XXX (사용하지 않음)
B5 B4 B3 = 000 : 선택 하지 않음
= 001 : MDR0 선택
= 010 : MDR1 선택
= 011 : DTR 선택
= 100 : CNTR 선택
= 101 : OTR 선택
= 110 : STR 선택
= 111 : 선택하지 않음
B7 B6 = 00 : 레지스터 CLR
= 01 : 레지스터 RD
= 10 : 레지스터 WR
= 11 : 레지스터 LOAD






CLR, RD, WR 그리고 LOAD 와 레지스터를 조합한 명령어


바이트 수


명령 코드


레지스터


IR(Binary)



IR(Hex)



동작


1



CLR



MDR0


MDR1


DTR


CNTR


OTR


STR













00001000


00010000




00100000




00110000













0x08


0x10




0x20




0x30













MDR0 를 0 으로 클리어


MDR1 를 0 으로 클리어




CNTR 을 0 으로 클리어




STR 을 0 으로 클리어













2 에서 5



RD



MDR0


MDR1


DTR


CNTR


OTR


STR













01001000


01010000




01100000


01101000


01110000













0x48


0x50




0x60


0x68


0x70













MDR0 을 TXD(MISO)에 의하여 시리얼 출력


MDR1 을 TXD(MISO)에 의하여 시리얼 출력




CNTR을 OTR 로 전달하고 MISO에 출력


OTR 을 TXD(MISO)로 시리얼 출력


STR 을 TXD(MISO)로 시리얼 출력













2 에서 5



WR



MDR0


MDR1


DTR


CNTR


OTR











10001000


10010000


10011000




10101000











0x88


0x90


0x98




0xA8











MOSI를 통하여 MDR0에 시리얼 데이터 라이트


RXD(MOSI를 통하여 MDR1에 시리얼 데이터 라이트


RXD(MOSI를 통하여 DTR에 시리얼 데이터 라이트














1



LOAD



STR


MDR0


MDR1


DTR


CNTR


OTR





















11100000


11101000





















0xE0


0xE8





















DTR 을 CNTR 로 파라렐 전송


CNTR 을 OTR 로 파라렐 전송
















MDR0. 모드 레지스터 MDR0 는 8 비트 리드/라이트 레지스터 이며 LS7366R 의 동작모드를 설정한다. MDR0에서 Index 신호가 없는 로터리 엔코더에서 1 회전 펄스 수를 입력하여 자동적으로 기준 각도(0 도)를 표시할 수 있는 N-modulo 카운트 기능이 설정 가능하다. MDR0는 파워-업 시 0으로 클리어 된다.


B7
B6
B5
B4
B3
B2
B1
B0


B1 B0 = 00: 비-쿼더래쳐 카운트 모드. (A = 클록, B = 방향).
= 01: x1 쿼더래쳐 카운트 모드( 쿼더래쳐 사이클당 1 카운트)
= 10: x2 쿼더래쳐 카운트 모드( 쿼더래쳐 사이클당 2 카운트)
= 11: x4 쿼더래쳐 카운트 모드( 쿼더래쳐 사이클당 4 카운트)
B3 B2 = 00: Free-running 카운트 모드
= 01: Single-Cycle 카운트 모드(카운터는 캐리나 보로우가 발생하면 동작을 멈춘다.
리셋이나 프리셋에 의하여 재 카운트 가능
= 10: Range-Limit 카운트 모드( 0 과 DTR 설정 값 내에서만 카운트 가능하다)
= 11: Modulo-n 카운트 모드이며 CNTR 은 DTR 값이되면 0 이된다.
B5 B4 = 00: 인덱스 기능 사용하지 않음
= 01: 인덱스 펄스가 입력되면 DTR 값을 CNTR 로 로드한다.
원점 신호에 의한 프리셋으로 사용한다.
= 10: 인덱스 펄스가 입력되면 CNTR 을 0 으로 초기화 한다.
원점 신호에 의한 절대 위치 설정
= 11: 인덱스 펄스가 입력되면 CNTR 값을 OTR 로 로드한다.
3 차원 측정기에서 프르부 터치에 의한 좌표 측정 시 사용한다.









MDR1: Mode Register 는 8-비트의 읽기/쓰기 가능 레지스터이다. 추가적인 모드 설정을 위하여 MDR0 에 부가된다. MDR1 레지스터는 전원 투입시 0 으로 클리어된다.


B7
B6
B5
B4
B3
B2
B1
B0




B1 B0 = 00: 4-바이트 카운트 모드
= 01: 3-바이트 카운트 모드
= 10: 2-바이트 카운터 모드
= 11: 1-바이트 카운트 모드
B2 = 0: Enable counting
= 1: Disabling counting
B3 = : 사용하지 않음
B4 = 0: NOP (아무 동작하지 않음)
= 1: IDX 입력시 FLAG 세트(STR 레지스터의 B4)
B5 = 0: NOP
= 1: DTR 과 CNTR 이 일치할 때 FLAG 세트(STR 레지스터의 B4)
B6 = 0: NOP
= 1: 보로우(BW) 발생시 FLAG 세트(STR 레지스터의 B4)
B7 = 0: NOP
= 1: 캐리(CY) 발생시 FLAG 세트(STR 레지스터의 B4)







LS7366R의 간단한 테스트 회로구성

브레드 보드에 로터리 엔코더, LS7366R, ATMEL 사의 8ㅂ트 프로세서 ATMega8 을 실장하여 테스트 보드를 만든 것이다. LED 8 개를 사용하여 카운트 값의 변화를 볼 수 있다. Index 신호는 택트 스위치를 사용하여 입력한다. 프로세서의 클럭은 내장 RC 오실레이터 8MHz 로 퓨즈비트에서 설정한다.
프로그램 다운로드는 ATMEL 의 AVRISP-MK2 를 이용하였다.























LS7366R 프로그래밍 예

1 회전에 256 펄스를 출력하는 엔코더의 A, B상 신호를 LS7366R에서 카운트하고 ATMEL 사의 ATMega8 프로세서에서 8 개의 LED에 1 바이트 카운트 값을 표시한다. 그림-5는 테스트용 회로도이며 그림-6 은 브레드 보드에 LS7366R 테스트 회로를 구성한 것이다. 소프트웨어 개발환경은 미국 ImageCraft 사의 ICC-AVR C 데모 버전 컴파일러를 사용하였다.


그림-7은 C로 작성한 LS7366R 테스트용 프로그램이다.
마이크로 프로세서가 전원 ON 되면 프로세서의 내부 그리고 PORT 입/출력 등의 초기화를 실행한다. 다음으로 LS7366R을 초기화 한다. 그리고 LS7366R의 카운터(CNTR)값을 읽어 PORTD 에 출력을 반복한다.
Line19 init_devices() 에서 PORT의 방향(입력/출력) 및 초기 값(High/Low)설정은 SPI에 맞도록 한다. /SS 핀은 출력/HIGH, CLK 핀은 출력/LOW, MOSI 핀은 출력, MISO 핀은 입력으로 되도록 설정한다. SPI 의 모드는 SPI Mode = 0인 CPOL = 0, CPHA = 0으로 설정한다. 데이터는 MSB(최상위 비트) 가 먼저 전송되도록 설정한다.
Line13 의 unsigned char shift_data_io(unsigned char c)는 1 개의 바이트를 SPI 를 통하여 내보내고 1 개의 바이트를 수신하여 반환하는 함수이다. ATMega8 의 데이터 시트의 예제 코드를 인용한 것이다.
Line19 void init_LS7366R(void)는 LS7366R을 초기화 시킨다. MDR0 를 4체배 모드로 MDR1에서 1 바이트 카운트 모드로 설정한다. 그리고 CNTR, STR 레지스터를 클리어한다.
Line64 의 while 무한 루프문에서 CNTR 을 읽어 ATMega8 의 PORTD 에 라이트한다.
Line66 은 CNTR 값을 읽기 위한 명령어를 0x60을 IR 로 보낸 것이다.
Line67 은 LS7366R의 MISO 핀에서 출력되는 데이터를 PORTD 에 라이트한다. 0x00 는 SPI 통신 특성상 어떠한 데이터라도 출력되어야 하므로 0x00 을 보낸 것 이므로 LS7366R에서 무시되므로 다른 어떤 값이라도 관계없다


PORTD 핀(7~0)이 0 상태에서 LED 가 ON 된다. 엔코더를 회전시키면 8 개의 LED 에 CNTR 카운터의 변화를 확인할 수 있다.











































월간 FA 저널 구독 신청
http://www.fajournal.com/
[출처]