реклама на сайте
подробности

 
 
> MCP2515, не вижу данных на передачу
semonoff
сообщение Mar 1 2011, 14:11
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 162
Регистрация: 29-12-09
Из: Санкт-Петербург
Пользователь №: 54 553



Помогите проверить контроллер, плз. Нужен рабочий код инициализации + пример передачи в канал.


--------------------
Париться надо в бане.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
Juray
сообщение Mar 3 2011, 19:40
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 19-03-06
Из: Йошкар-Ола
Пользователь №: 15 388



Ну, если устроит пример на ассемблере 8051 (а точнее, AT89S8252) wink.gif
Старый и корявый, но рабочий.



CODE

CANINTF equ 2Ch
EFLG equ 2Dh
TXB0CTRL equ 30h
TXB1CTRL equ 40h
TXB2CTRL equ 50h

CAN_BUF_B3 EQU 69H
TXB0D3 EQU 39H
TXB0D4 EQU 3AH


Can_Init:
CLR EA
MOV SPCR,#01010001B ;MASTER CPOL=0,CPHA=1
mov R0,#9
mov R3,#0
mov R2,#255
clr McpCS ; select
mov A,#11000000b
call SendToSpi
setb McpCS

Next_SPI_Command:
clr McpCS
mov A,#00000010b
call SendToSpi
mov dptr,#McpDataPlace
inc R2
mov A,R2
movc A,@A+dptr
mov R3,A
Next_To_Spi:
inc R2
mov A,R2
mov dptr,#McpDataPlace
movc A,@A+dptr
call SendToSpi
djnz R3,Next_To_Spi
setb McpCS
djnz R0,Next_SPI_Command
MOV SPCR,#01110101B ;MASTER CPOL=0,CPHA=1
SETB EA
ret

McpDataPlace: db 5,0,60h,08h,00h,0Bh
db 5,32,0FFH,0FFH,0FFH,0FFH
db 14,49,67H,88H,04H,00H,8,0F0H,0FEH,7DH,0,0,0FFH,0FFH,0FFH
db 14,65,67H,88H,03H,00H,8,0F1H,0,0,0FFH,0FFH,0FFH,0FFH,0FFH
db 14,81,0C7H,88H,00H,29H,8,40H,7DH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
db 4,40,3,161,1
db 2,96,64
db 2,43,1
db 2,15,0

;db 14,65,0C7H,0EAH,0DFH,00H,8,80H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
;db 14,81,0C7H,0EAH,0F6H,00H,8,0FFH,50,92,0FFH,0FFH,0FFH,0FFH,0FFH
;db 14,49,67H,88H,03H,00H,8,0F1H,0,0,0FFH,0FFH,0FFH,0FFH,0FFH

ReadFromMcp:
SETB FL_SPI_BUSY
MOV SPCR,#01010001B ;MASTER CPOL=0,CPHA=1
clr McpCS
mov A,#00000011b
call SendToSpi
mov A,R2
call SendToSpi
mov A,#255
call SendToSpi
setb McpCS
MOV SPCR,#01110101B ;MASTER CPOL=0,CPHA=1
JMP CLR_FL_SPI

Clear_Can_F:
mov R2,#CANINTF
mov B,#0
call WriteToMcp
ret

WriteToMcp:
SETB FL_SPI_BUSY
MOV SPCR,#01010001B ;MASTER CPOL=0,CPHA=1
clr McpCS
mov A,#00000010b
call SendToSpi
mov A,R2
call SendToSpi
mov A,B
call SendToSpi
setb McpCS
MOV SPCR,#01110101B ;MASTER CPOL=0,CPHA=1
JMP CLR_FL_SPI ;

SendToSpi:
mov spsr,#0;
mov spdr,A
WaitForSpi:
mov A,spsr
jnb Acc.7,WaitForSpi
mov A,spdr
ret

;----------------
;собственно работа с данными
ASR_CAN:
mov R2,#CANINTF
CALL ReadFromMcp
JNB ACC.0,ASR_CAN_1
;пришел кадр
MOV R2,#CAN_BUF_B3
CALL ReadFromMcp
CALL Clear_Can_F
ASR_CAN_1:
MOV A,CEWA12
ANL A,#00000011B
CJNE A,#0,ASR_CAN_3

MOV R2,#TXB0D4
MOV R1,#BASE_TAXO+3
MOV B,@R1 ;TAXO
CALL WriteToMcp
MOV R2,#TXB0D3
MOV B,#0
CALL WriteToMcp

MOV R2,#TXB0CTRL
MOV B,#00001011B ;запрос на передачу
CALL WriteToMcp
RET
ASR_CAN_3:
CJNE A,#1,ASR_CAN_4
MOV R2,#TXB1CTRL
MOV B,#00001011B ;запрос на передачу
CALL WriteToMcp
RET
ASR_CAN_4:
CJNE A,#2,ASR_CAN_2
MOV R2,#TXB2CTRL
MOV B,#00001011B ;запрос на передачу
CALL WriteToMcp

ASR_CAN_2: RET

CLR_FL_SPI:
; дальнейшая обработка SPI, не касающаяся MCP


Сообщение отредактировал Juray - Mar 3 2011, 19:55
Прикрепленные файлы
Прикрепленный файл  MCP_INIT_DATA.doc ( 97 килобайт ) Кол-во скачиваний: 294
 
Go to the top of the page
 
+Quote Post
semonoff
сообщение Mar 4 2011, 18:26
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 162
Регистрация: 29-12-09
Из: Санкт-Петербург
Пользователь №: 54 553



СПС, дружище. rolleyes.gif


--------------------
Париться надо в бане.
Go to the top of the page
 
+Quote Post

Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 10:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016