PIC 마이크로 컨트롤러와 마스터 슬레이브

D

dfullmer

Guest
안녕하세요 여러분,

내가 생각하고 실행하는 방법에 대한 몇 가지 그림은 슬레이브와 마스터 모드로 시작합니다.아무도이 일을에 experiance이 있었나요?당신이 내게 어떤 걸림돌 저장할 수있는 조언을 주실 수 있습니까?

감사합니다dfullmer

 
내가 PICS는 함께 일한 적이 있지만 PIC는 하드웨어에서 같은 기능과 함께 온다면 나는 확실히 아니다.소프트웨어의 경우는 매우 쉽게 구현하고자합니다.내가 AVRs와 8051s와 그것을 한 적이있다.

I2C/SPI 확실한 가야로 등 커뮤니케이 션을 허용하는 경우는없습니다.
메모리 범위 따라서 노예 주인의 주변 기기로 PICS는 만드는 주인의 노예가 주소에 매핑할 수있습니다.

같은 간단한 어플 리케이션을위한 공유 메모리와 같은 이국적인 물건을 기반으로 메시지를 전달하여 너무 많은 오버헤드.

 
감사합니다 kishore2k4,

난 내가 할 수있는 모든 정보가 걸릴거야.

안부

dfullmer

 
dfullmer 썼습니다 :

감사합니다 kishore2k4,난 내가 할 수있는 모든 정보가 걸릴거야.안부dfullmer
 
귀하의 권리는 내가 더 잘 나타내는 이름이어야합니다좋아요, 그래서 제가 함께 노예 / 주인 관계 4, 5 pic16F877A 놓고 싶어.마찬가지로 각에 대한 주소로의 I2C 또는 SPI를 밝혔다.내가의 I2C 디스플레이 드라이버를 설정하고 난 할 방법에 대한 처리 방법은 I2C comunication 나려고입니다.또한 SPI를 완료 (조금)에서 과거이 성공적으로 사용 해왔다.만약 누군가가 노예의 일부 소프트웨어 예를했다 / 마이크로 스튜디오 확장할 수있는 마스터 코드 난에 훌륭한 것입니다.각각의 디바이스의 작업을 수행할 수있을 것입니다 자체 이해하는 하나의 방법을 서로 독립적으로 전화를하고 얘기해야합니다.그것을 기준이나 설문 조사 iterupt an인가.이것은 지식의 부족의 일부입니다.이 기능을 갖고있는 것 같아요 the 877A에 대한 데이터 시트를 바탕으로합니다.나는 누군가의 예를 얻을 수 있었으면합니다.내 이마에 추가하지 않아도 충분히 난 내 책상에 대해 닌가에서 평면이다.

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="매우 행복" border="0" />언제 당신이 극명하게 될 것이라고 다시 한 번 감사드립니다이 정보.

안부

dfullmer

 
연결된 마스터 전송을위한 코드 조각의 커플 / 리셉션과 10 - 비트 노예 리셉션있다.

(BF 플래그를 설정, 인터럽트 루틴 등)를 입력 예 :이 테스트의 경우 핀을 구동 상태를 표시하고이 그렇게했다

우리는 많은 고객들이
멀티 코어 시스템 개발 -로, 시간에 당신 단계 또는 테우스에서 디버깅할 때, 전체 시스템의 진보 / 일시 중지되므로 보조 프로세서를하는 동안 당신은 기본 디버깅하는 충전이 없어.

은 I2C 및 SPI 프로토콜 분석기 또한 마스터
또는 슬레이브 장치로 순서에 따라 할
수 있도록하고 버스에 입력하기만하거나 엠씨에서 텍사스 / RX 테스트들을 주사 역할을 할 수있습니다.
미안하지만, 당신이 첨부 파일을보기 위해서는 로그인이 필요

 
와우 Iain,

감사이 도움이 될 것입니다.

I can follow the code for the most part and can work on adapting it to my application.

불행히도 나는 하드웨어 사람과 어셈블리 코드는 오전에 한 프로그래머가 아니라고 생각 날 좀 걸립니다.""기본적인 코딩을 어디에 내 머리를 정상적으로
접근할 수있다.아무것도 감상할 수있는 경우를 본적이 것이 기본이다.다시 한 번 감사드립니다

환호

dfullmer

 
아니
난 두려워하지만 아주 기본적인 기초 <grin> 7 - 비트 노예 리셉션 (16f887)는
C heres

코드 :# 포함 <system.h>#에서 Pragma CLOCK_FREQ 16000000

#에서 Pragma 데이터 _CONFIG1, _HS_OSC & _MCLRE_ON & _WDT_OFF

#에서 Pragma 데이터 _CONFIG2, _WRT_1FOURTH & _BOR21V/ / 테스트의 I2C 슬레이브 모드에서 마스크 주소를 등록했다./ /의 I2C 주소 및 명령

I2C_ADDRESS 0xA8 정의 #(무효) 인터럽트 무효

(만약 (pir1.SSPIF)

(portc.7 = pir1.SSPIF; / / SSPIF 상태를 거울.

portc.7 = pir1.SSPIF = 0;

portc.6 = sspstat.BF;

만약 (sspstat.S & sspstat.BF)

/ / 슬레이브 주소를받습니다 / 시작 후 데이터를

portb = sspbuf;portc.6 = sspstat.BF;

)

)주요 무효 ()

(portc.7 = 0;

portc.6 = 0;

trisc.3 = 1; / / SCL 입력 (릴리스 버스로)

trisc.4 = 1; / / SDA는 입력 (릴리스 버스)로

trisc.6 = 0; / / 비트 BF에 플래그를 사용

trisc.7 = 0; / / SSPIF의 상태를 미러하는 데 사용

portb = 0;

trisb = 0;

""비트 주소는 상관 없어 / / 낮은 한입 비트를 확인합니다.

/ /이 등록 * * 사전 SSPM 설정 <3시> 비트 또는 10 비트의 I2C 슬레이브 모드 (7 - 선택합니다 - 비트 주소로) 시작되어야합니다.

/ / 그 SSPMASK 참고 SSPADD과 부합하기 위해서는 그것에 대한 액세스 권한이 SSPCON가 우리 0b1001 함께 써야한다.

sspcon.SSPM0 = 1;

sspcon.SSPM1 = 0;

sspcon.SSPM2 = 0;

sspcon.SSPM3 = 1;

sspadd = 0xF0;

/ / 활성화의 I2C, 슬레이브 모드, 7Bit, 시작 / 정지 비트 인터럽트

sspcon.SSPM0 = 0;

sspcon.SSPM1 = 1;

sspcon.SSPM2 = 1;

sspcon.SSPM3 = 1;

/ / SSPSTAT 현황 등록

sspstat.SMP = 0; / / Slewrate 컨트롤 비활성화

sspstat.CKE = 0; / / SMBus는 특정 입력 장애

/ / CKP, 출시 시계

sspcon.CKP = 1;

/ / 비활성화 주소 0x0이라는 일반 전화

sspcon2.GCEN = 1;

/ / 사용 안함 시계 스트레칭

sspcon2.SEN = 0;

/ / 설정의 I2C 슬레이브 주소

sspadd = I2C_ADDRESS;

/ / 동기 시리얼 포트 활성화

sspcon.SSPEN = 1;

/ / 덤미랑 읽고 지웁니다 BF

서명되지 않은 int 덤미랑 = sspbuf;

/ / 지우기 버퍼 오버플로

sspcon.SSPOV = 0;

/ / 활성화 받기

sspcon2.RCEN = 1;

/ / 활성화 글로벌, 주변 기기 및 SSP를 모듈 인터럽트

intcon.GIE = 1;

intcon.PEIE = 1;

pie1.SSPIE = 1;/ / 영원히 할

(1);

)

 
pl)는 PSP (병렬 슬레이브 포트를 고려로
내 기분은 간단합니다.

나는 마스터와 슬레이브로 TI의 DSP를 16f87 *로 작업의 예입 봤어요

 
PIC는 칩 하나에 대해 좋은 점은 그들이 쉽게 동기화 될 수있다 - 같은 클럭 소스에서와 같은 리셋 신호들을 실행하면 코드를 작성할 수있다는 병렬로 작동합니다.나는 상황을 어디로 둘 사이에 10Mb 전송했다
3 PIC는 18F 장치, / 비트 스트림 (교류는 5MB
/ s를 사용했다 각 오프셋 명령어 사이클), 1.25MByte에
세 번째에 PIC에서 데이터를 동시에 수신 / PSP 통해!큰 재미를 디버깅하는 방법 (악몽)을 개발하지만, 정말 좋은 일했다!

하지만 만약 당신이 필요
없어 빠른 전송은
I2C 슬레이브 / 마스터 아마 좋은 선택은 ...

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="매우 행복" border="0" />
 
I2C/SPI 인터페이스의 상호 커뮤니케이 션을위한 멀티듯한 솔루션입니다.

 

Welcome to EDABoard.com

Sponsor

Back
Top