-"SPI의 인터페이스를 외부 DAC는

A

amyle

Guest
안녕하세요?

내가 MSP430F1611의 SPI의와 외부 ADC의 인터페이스를하려고 해요.

난 (아래 참조) 본 SPI를 초기화하는 코드를 작성했지만, 지금은 그것에 일부 데이터를 작성하고 그것이 내가 그것에 데이터를 기록했습니다보고 범위를 사용하여 프로빙하여 내 Init_SPI 테스트합니다.

결국, 내가 외부 ADC가에서 SPI를 사용하여 원하는 데이터를 얻을 수 및 메모리에 저장할 수있습니다.

사람이 올바른 방향으로 나를 가리킨 수 있을까요?

정말 감사합니다!많은 감사.

- 에이미INIT_SPI ==================== =========================

무효 Init_SPI (무효)
(
P3SEL | = 0x3F; / / 선택 P3.0, 1,2,3,4,5
P3DIR | = 0x0B; / / 선택 P3.1, 3 출력 방향으로
P3OUT & = ~ 0x01;
ME1 | = USPIE0; / / USART0 SPI를 ENABLE
UCTL0 | = CHAR SYNC MM은; / / 8 비트 데이터, SPI의 모드
UTCTL0 | = CKPH CKPL SSEL1; / / Inv.delay, ACLK
UBR00 = 0x2A; / / Baud 속도 = 115200
UBR10 = 0x0으로;
UMCTL0 = 0x0으로; / / 지우기 변조
UCTL0 & = ~ SWRST; / / USART 초기화 상태 머신

/ / _BIS_SR (LPM3_bits GIE); / / LPM0 승 입력 / 인터럽트

) / / 끝 Init_SPI

===============================================

 
그것은 간단합니다.난 당신 IAR 사용 같아요.초기화 함수에 넣어

IE1 | = UTXIE0 | URXIE0;
__enable_interrupts ();

난 당신에 대해 고정된 크기의 데이터를 버퍼에 쓰기 위해 몇 가지 징후 줄 :

전역 유효 영역에서 변수를 선언 휘발성이 짧은 sizetx
글로벌 범위를 문자 배열 (buffertx) 신고
(pointertx) 숯불에 전역 유효 영역에서 포인터를 선언합니다

buffertx 준비
전송 바이트의 sizetx 변수를 설정 (숫자)
pointertx buffertx 동일한 설정
텍사스 U0TXBUF 첫 번째 데이터 바이트를 레지스터에 쓰기를 시작합니다 (buffertx [0])

텍사스 인터럽트 핸들러를 작성
#에서 Pragma 벡터 = USART0TX_VECTOR
무효 TxInt (무효)
(
만약 (- sizetx)
(
U0TXBUF =*( 포인터);
)
)

데이터 rx하려면 :
#에서 Pragma 벡터 = USART0RX_VECTOR
무효 RxInt (무효)
(
(sizerx 경우)
(
* pointerrx = U0RXBUF;
pointerrx ;
sizerx -;
)
)

rx을 사용하면 원하는 단순히 바이트의 기대와 pointerrx 그것을 대상 버퍼를 가리 키 있도록 sizerx 번호를 설정합니다.pointerrx 및 sizerx 휘발성이 선언되어야한다.

이것은 당신이 도움이 되요?

SimNav

 
안녕하세요 SimNav,

답장을 보내주셔서 감사합니다.

난 아직도 꽤 있기 때문에 ADC의 데이터를 내 보낼 수있는 특정 프로토콜을 필요로하는 방법을 내 외부 ADC78H90 (노예)에서 데이터를받을 수있습니다 혼란 스러워요.

내 프로젝트에 대한 uc SPI를 마스터, 그리고 외부 ADC가 노예됩니다.그래서 SPI와 ADC의 핀 구성됩니다 :

마스터 : 슬레이브 :
-----------------------
인트 -------> SCB는
SCLK ------ "UCLK
Dout ------> SOMI
딘 <------- SOMI자,에 대한 외부 ADC는 자사의 데이터를 보내주, 나는 다음을 수행할 필요가 :
1) 설정 SCB는 낮은
2) 설정 UCLK
3) 주소 ADC를 보내기
4) 다음, ADC의 출력 및 저장 SPI는 버퍼에 나가 RAM에 데이터를 저장.그래서, 저는 어떻게 외부 ADC가 내 MSP430F1611 SPI는 얘기 좀해야할지 모르겠다 내 혼란을 것 같아요.

내가 uc에 비트 가능 GPIO에서 자겠다는 얘기를 사용하여 내 외부 ADC를 얻을 수 있는것처럼 보이지만 SPI는 이미 목적을위한 것입니다 그리고 그것을 사용하려고합니다.하지만 난 어떻게 SCB는 낮게 설정해야할지 모르겠다.

모든 그 될까?감사합니다.

- 에이미

 
ADC78H90 데이터 시트에 그림 1을 참조하십시오.

uc을 위해 자사의 데이터를 이동하려면 ADC를 16 SCLK 펄스를 제공하고있다.
이 MSP430F1611에서 16 비트 단어 또는 2 바이트를 서면에 의해 이루어집니다
ADC는 염화물 측정기 (DY).만약 16 비트를 쓸 수 있도록 나도 모르겠어요 uc 익숙하지 않아
시간.종종 하나의 다양한 모드에서 SPI의 포트를 설정할 수있습니다.

3 비트의 입력을 선택합니다 먹스를 읽고 비트 주소입니다.
나머지는 더미 비트 (모르 케어)입니다.

CS를 신호가 ADC를위한 낮은 응답을 설정할 수있다.경우에만 SPI는있다
버스에서 장치가, 그것을 영구적으로 지상에 묶여있을 수있습니다.

그럼, 언제가 될 것이다 16 비트 12 비트 ADC는 원본 데이터를 작성했습니다
automaticaly SPI는 입력 레지스터로 전송.그건 간단합니다.

ADC를하는 0000h 작성하여 시작 AIN1 읽을 수있습니다.언제 작품을하실 수있습니다
다른 입력을 읽을 주소를 비트는 변화를 시작합니다.

 

Welcome to EDABoard.com

Sponsor

Back
Top