Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 09.12.2020, 20:47   #1
alex_zas
Senior Member
 
Аватар для alex_zas
 
Регистрация: 17.03.2017
Адрес: Днепропетровск
Возраст: 55
Сообщений: 145
Вес репутации: 185/17
alex_zas has a spectacular aura aboutalex_zas has a spectacular aura about
По умолчанию Помогите запустить CAN...

Здравствуйте.
Пишу на ASM для PIC24EP512GP806 в MPLAB IDE 8.92 + XC16 1.31. Никак не получается запустить модуль CAN. Ранее это без проблем удавалось на PIC24HJ128GP502.
Вот минимизированный исходник, который должен вызывать появление импульсов на выводах CAN MCU:
Код:
.INCLUDE	"P24EP512GP806.inc"

.GLOBAL __reset
.BSS
.DATA
.TEXT
__reset:
	setm	PMD1
	bclr	PMD1,#C1MD		; включение модуля CAN

	; подключение CAN к RP102 и RP98
	mov	#0x0046,W0		; разблокирование PPS
	mov	WREG,OSCCON
	mov	#0x0057,W0
	mov	WREG,OSCCON
	bclr	OSCCON,#IOLOCK
	mov	#0x0066,W0		; C1RX - RP102 port F6 pin 35
	mov	WREG,RPINR26
	mov	#0x000E,W0		; C1TX - RP98 port F2 pin 34
	mov	WREG,RPOR8
	mov	#0x0046,W0		; блокирование PPS
	mov	WREG,OSCCON
	mov	#0x0057,W0
	mov	WREG,OSCCON
	bset	OSCCON,#IOLOCK

	clr	C1CTRL1			; перевод C1 в нормальный режим

loop:	bset	C1TR01CON,#TXREQ0	; запуск передачи
	bra	loop

	.end
Аналогичный исходник (только CAN по PPS подключен к другим выводам MCU) на PIC24HJ128GP502 приводит к появлению импульсов, а на PIC24EP512GP806 - импульсов нет (стабильно высокие уровни).
Будьте добры - подскажите почему не работает CAN? Что я упустил? Кто-нибудь реализовывал CAN на PIC24EP?
Заранее благодарен, Алексей.
alex_zas вне форума   Ответить с цитированием
Старый 10.12.2020, 08:12   #2
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 34
Сообщений: 2,685
Вес репутации: 4859/106
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Помогите запустить CAN...

alex_zas
попробуйте на ногах по умолчанию посмотреть. Без PPS.
besogon вне форума   Ответить с цитированием
Старый 10.12.2020, 11:29   #3
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,618
Вес репутации: 4306/129
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Помогите запустить CAN...

Цитата:
Сообщение от besogon Посмотреть сообщение
на ногах по умолчанию
На ногах по умолчанию CAN вообще никуда не подключен. Как и другие ремаппируемые интерфейсы.
Марк вне форума   Ответить с цитированием
Старый 10.12.2020, 12:13   #4
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 34
Сообщений: 2,685
Вес репутации: 4859/106
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Помогите запустить CAN...

Марк
На ногах по умолчанию CAN вообще никуда не подключен. - да. забыл. просто на другие ноги.
если на другом МК работало, то самый простой вариант попробовать сменить ремап.
besogon вне форума   Ответить с цитированием
Старый 10.12.2020, 12:58   #5
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,618
Вес репутации: 4306/129
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Помогите запустить CAN...

Цитата:
Сообщение от alex_zas Посмотреть сообщение
Вот минимизированный исходник, который должен вызывать появление импульсов на выводах CAN MCU
А разблокировка зачем? У Вас в конфиге включен OneWay?
Марк вне форума   Ответить с цитированием
Старый 10.12.2020, 15:04   #6
alex_zas
Senior Member
 
Аватар для alex_zas
 
Регистрация: 17.03.2017
Адрес: Днепропетровск
Возраст: 55
Сообщений: 145
Вес репутации: 185/17
alex_zas has a spectacular aura aboutalex_zas has a spectacular aura about
По умолчанию Re: Помогите запустить CAN...

Цитата:
А разблокировка зачем?
Опа! Наверное я не правильно понимаю PPS.
В конфиге есть бит, который определяет количество доступов к PPS. В одном положении доступ может быть только один раз, а в другом - не ограниченное количество раз.
А разблокировку, как я понимаю, нужно делать всегда. Иначе запись в регистры PPS заблокирована.
alex_zas вне форума   Ответить с цитированием
Старый 10.12.2020, 15:29   #7
alex_zas
Senior Member
 
Аватар для alex_zas
 
Регистрация: 17.03.2017
Адрес: Днепропетровск
Возраст: 55
Сообщений: 145
Вес репутации: 185/17
alex_zas has a spectacular aura aboutalex_zas has a spectacular aura about
По умолчанию Re: Помогите запустить CAN...

Пробовал подключать к другим выводам - так же стабильно высокие уровни.
Такое впечатление будто модуль CAN не тактируется. Бит #TXREQ0 устанавливается, но автоматически не сбрасывается.
alex_zas вне форума   Ответить с цитированием
Старый 10.12.2020, 15:32   #8
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,618
Вес репутации: 4306/129
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Помогите запустить CAN...

Нет, по дефолту ничего не блокировано. Я вообще ни в одном своем устройстве ремап не лочу.
Мало того, в дебаге останавливаете исполнение, вручную правите регистры ремапа и продолжаете с новой комбинацией.
Можете попробовать с какм нибудь аутпут компэйром.
Марк вне форума   Ответить с цитированием
Старый 10.12.2020, 17:26   #9
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 34
Сообщений: 2,685
Вес репутации: 4859/106
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Помогите запустить CAN...

alex_zas
Проверьте в отладке адреса - есть вероятность, что всё-таки не по тем адресам пишете.
Ну или накатите последнюю версию компилятора и проверьте в ней.
besogon вне форума   Ответить с цитированием
Старый 11.12.2020, 22:28   #10
alex_zas
Senior Member
 
Аватар для alex_zas
 
Регистрация: 17.03.2017
Адрес: Днепропетровск
Возраст: 55
Сообщений: 145
Вес репутации: 185/17
alex_zas has a spectacular aura aboutalex_zas has a spectacular aura about
По умолчанию Re: Помогите запустить CAN...

Бит блокировки изменения PPS по дефолту действительно сброшен.
Марк - спасибо за разъяснение.

Цитата:
Проверьте в отладке адреса - есть вероятность, что всё-таки не по тем адресам пишете.
Проверил - адреса и данные правильные.
Есть одно подозрение - в проекте на PIC24HJ128GP502 (где CAN работает) MCU тактируется от кварца HS. А в проекте на PIC24EP512GP806 (где CAN не работает) MCU тактируется от FRC.
Может проблема находится в этой плоскости.
alex_zas вне форума   Ответить с цитированием
Старый 12.12.2020, 10:22   #11
alex_zas
Senior Member
 
Аватар для alex_zas
 
Регистрация: 17.03.2017
Адрес: Днепропетровск
Возраст: 55
Сообщений: 145
Вес репутации: 185/17
alex_zas has a spectacular aura aboutalex_zas has a spectacular aura about
По умолчанию Re: Помогите запустить CAN...

Цитата:
Ну или накатите последнюю версию компилятора и проверьте в ней.
Попробовал на другом компьютере в MPLAB X IDE v5.30 - результат тот же, CAN не работает, высокие уровни.
alex_zas вне форума   Ответить с цитированием
Старый 12.12.2020, 10:37   #12
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,618
Вес репутации: 4306/129
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Помогите запустить CAN...

Код:
loop:	bset	C1TR01CON,#TXREQ0	; запуск передачи
	bra	loop
Я с CAN не работал, но у меня вызвал некоторый скептицизм этот участок кода, где запуск передачи осуществляется в цикле длительностью в несколько машинных циклов.
Еще один вопрос про частоты . У Вас осциллятор и рейт CAN остались прежними?
Марк вне форума   Ответить с цитированием
Старый 14.12.2020, 15:31   #13
alex_zas
Senior Member
 
Аватар для alex_zas
 
Регистрация: 17.03.2017
Адрес: Днепропетровск
Возраст: 55
Сообщений: 145
Вес репутации: 185/17
alex_zas has a spectacular aura aboutalex_zas has a spectacular aura about
По умолчанию Re: Помогите запустить CAN...

Марк, Вы правы, с точки зрения правильности управления выводом в CAN это нарушение. Правильно установить бит TXREQ0, дождаться его сброса и только после этого вновь устанавливать. И рейт CAN тоже нужно программировать. Осциллятор другой и естественно рейт тоже другой. Но всё это для проверки работоспособности модуля CAN на мой взгляд значения не имеет.
Я вообще начинал работу с CAN портируя программный модуль со всеми настройками и функционалом (CAN, DMA, таймеры, буферы). Но модуль CAN никак не работал.
Потом стал минимизировать рабочий код CAN и проверять его на нерабочем проекте, чтобы потом выложить на форум.
alex_zas вне форума   Ответить с цитированием
Старый 19.12.2020, 21:10   #14
alex_zas
Senior Member
 
Аватар для alex_zas
 
Регистрация: 17.03.2017
Адрес: Днепропетровск
Возраст: 55
Сообщений: 145
Вес репутации: 185/17
alex_zas has a spectacular aura aboutalex_zas has a spectacular aura about
По умолчанию Re: Помогите запустить CAN...

Прошу прощения за длительное молчание - немного приболел. Разобрался с CAN-ом. Оказывается есть различие в реализации модуля CAN в сериях PIC24HJ и PIC24EP.
В регистре C1TR01CON есть бит TXREQ0. При установке этого бита запускается механизм передачи сообщения из буфера. В этом же регистре есть бит TXEN0, который определяет режим использования буфера (0 - приём, 1 - передача).
Так вот в PIC24HJ передача сообщения из буфера осуществляется внезависимости от состояния бита TXEN0. Достаточно установить бит TXREQ0.
В PIC24EP для передачи сообщения из буфера должен быть установлен бит TXEN0 и затем установлен бит TXREQ0.
В проекте на PIC24HJ бит TXEN0 я устанавливал но неправильно (при установленном бите WIN в регистре C1CTRL1, фактически писал не в тот регистр). Но из-за того что в PIC24HJ установка бита TXEN0 не обязательна этой ошибки я не заметил.
В проекте PIC24EP установка бита TXEN0 обязательна, естественно передача не начиналась.
После перемещения установки бита TXEN0 после сброса бита WIN всё заработало.
Спасибо всем за участие.
alex_zas вне форума   Ответить с цитированием
Ответ

Метки
ecan, pic24ep


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
STM32: Не могу запустить бутлоадер на плате, помогите hfmscan Микроконтроллеры других производителей 17 13.01.2017 08:49
Помогите запустить проект в MPLAB Egorrr Вопросы начинающих 23 10.09.2015 12:58
Помогите запустить АЦП PIC18f26k22 retro55 Продукция MICROCHIP 35 13.02.2013 09:46
Помогите запустить 12F629 john2103 Вопросы начинающих 30 07.11.2011 21:09
Помогите запустить Timer1 с внешним кварцем Lexus Продукция MICROCHIP 7 12.05.2011 21:24


Часовой пояс GMT +3, время: 01:44.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot