Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 08.09.2011, 20:29  
Pavlike
Временная регистрация
 
Регистрация: 16.05.2005
Адрес: Киев
Сообщений: 58
Сказал спасибо: 38
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
Pavlike на пути к лучшему
По умолчанию Кто-нибудь запустил CAN на STM32 ???

Собственно суть вопроса:
- есть STM32 VL DISCOVERY в который был впаян 32F105RC, прикрутил к нему ч/б дисплей от нокии, запустил УСАРТ, теперь дело до CANа дошло..
- запустил из STM библиотеки пример с 2-мя CAN. Когда они работаю друг на друга - все отлично! (передают, принимают). Но когда дель дошло до подключению к сторонним устройствам они друг друга не видят..
Начал разбираться, не одинаковый период пакета данных. Смотрю анализатором, пробую разные варианты BS1, BS2 и пресколера. все равно не могу добиться правильной длины пакета. Нашел небольшую П/п-му вычисляющую эти коэффициенты, тоже не помогло.
В нете гуляет еще экселевская таблица для вычисления- результат тот же.
Может натолкнет кто, куда копать...

Да, кварц 8 МГц, пробовал менять. Частота проца 72. Пробовал на разных скоростях CAN (бывает мой сниффер отлавливает на 250Кб иногда). По приему не видел ни разу.
Если надо могу проект (или нужную часть) выложить.
Пользуюсь ИАР 6.10.1.52143
Реклама:
Pavlike вне форума  
Непрочитано 08.09.2011, 23:00  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Кто-нибудь запустил CAN на STM32 ???

Я делал SAE J1939. 250 кбит. Времени было мало реализовывал на их либах. Всё работало. Но с CANом разбирался плотно. Лазил и в регистры - там вроде ничего сложного не нашёл. Он мне наоборот понравился. Я делал на 107 - но там то же самое. Единственное второй канал не проверял. Руки не дошли.
Кварц нужен действительно 8 с 16 не делится нормально...
SasaVitebsk вне форума  
Непрочитано 09.09.2011, 12:03  
Pavlike
Временная регистрация
 
Регистрация: 16.05.2005
Адрес: Киев
Сообщений: 58
Сказал спасибо: 38
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
Pavlike на пути к лучшему
По умолчанию Re: Кто-нибудь запустил CAN на STM32 ???

Цитата:
Кварц нужен действительно 8 с 16 не делится нормально...
Вчера 19:29
Вот тут я думаю как раз наоборот....
Я до этого на MCP2551 все делал, там кварц 16, коэфф. легко расчитываются и работают 100%..
А 72 не кратно 16ти, вот копаю сейчас поменять частоту на кратную 16
Pavlike вне форума  
Непрочитано 09.09.2011, 13:25  
Serega_B
Прописка
 
Регистрация: 09.11.2010
Сообщений: 102
Сказал спасибо: 4
Сказали Спасибо 28 раз(а) в 22 сообщении(ях)
Serega_B на пути к лучшему
По умолчанию Re: Кто-нибудь запустил CAN на STM32 ???

Сообщение от Pavlike Посмотреть сообщение
Может натолкнет кто, куда копать...
Да, кварц 8 МГц, пробовал менять. Частота проца 72.
Я делал. На 103, но вроде у них модули одинаковые.
http://www.reaa.ru/cgi-bin/yabb/YaBB...111077/281#281
Все чирикает нормально, связывается со всеми в сети (STM8S208, ATMEGA168+MCP2515 и, иногда, USB-CAN переходник от IXXAT)

Вот инициализация. Делал тоже через библиотеки. Кварц 8МГц, тактовая 72МГц.
Код:
//îïðåäåëåíèå ïèíîâ
//CAN 
#define RCC_APB2Periph_GPIO_CAN    RCC_APB2Periph_GPIOB
#define GPIO_Remap_CAN             GPIO_Remap1_CAN1
#define GPIO_CAN                   GPIOB
#define GPIO_Pin_CAN_RX            GPIO_Pin_8
#define GPIO_Pin_CAN_TX            GPIO_Pin_9

void AI23_CAN_Init(void)
{
GPIO_InitTypeDef  GPIO_InitStructure;
CAN_InitTypeDef        CAN_InitStructure;

    /* GPIO clock enable */
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO |RCC_APB2Periph_GPIO_CAN, ENABLE);

    /* Configure CAN pin: RX */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_CAN_RX;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_Init(GPIO_CAN, &GPIO_InitStructure);

    /* Configure CAN pin: TX */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_CAN_TX;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIO_CAN, &GPIO_InitStructure);

    GPIO_PinRemapConfig(GPIO_Remap_CAN , ENABLE);

    /* CAN1 Periph clock enable */
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);


    /* CAN register init */
    CAN_DeInit(CAN1);
    CAN_StructInit(&CAN_InitStructure);

    /* CAN cell init */
    CAN_InitStructure.CAN_TTCM = DISABLE;
    CAN_InitStructure.CAN_ABOM = DISABLE;
    CAN_InitStructure.CAN_AWUM = DISABLE;
    CAN_InitStructure.CAN_NART = DISABLE;
    CAN_InitStructure.CAN_RFLM = DISABLE;
    CAN_InitStructure.CAN_TXFP = DISABLE;
    CAN_InitStructure.CAN_Mode = CAN_Mode_Normal;
    CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;
    CAN_InitStructure.CAN_BS1 = CAN_BS1_3tq;
    CAN_InitStructure.CAN_BS2 = CAN_BS2_5tq;
    CAN_InitStructure.CAN_Prescaler = 16;//250 kbps
    CAN_Init(CAN1, &CAN_InitStructure);

    /* CAN filter init */
    CAN_FilterInitStructure.CAN_FilterNumber = 0;
    CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;
    CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;
    CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000;
    CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000;
    CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000;
    CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000;
    CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0;
    CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;
    CAN_FilterInit(&CAN_FilterInitStructure);
}
Serega_B вне форума  
Сказали "Спасибо" Serega_B
Pavlike (09.09.2011)
Непрочитано 09.09.2011, 14:13  
Pavlike
Временная регистрация
 
Регистрация: 16.05.2005
Адрес: Киев
Сообщений: 58
Сказал спасибо: 38
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
Pavlike на пути к лучшему
По умолчанию Re: Кто-нибудь запустил CAN на STM32 ???

Поставил Вашы коэфф-ы, длинна пакета получается в 3 раза больше нужной...
Не могли бы Вы привести инициализацию RCC ?
Видать грабли с установкой частоты камня...
Pavlike вне форума  
Непрочитано 09.09.2011, 16:18  
Serega_B
Прописка
 
Регистрация: 09.11.2010
Сообщений: 102
Сказал спасибо: 4
Сказали Спасибо 28 раз(а) в 22 сообщении(ях)
Serega_B на пути к лучшему
По умолчанию Re: Кто-нибудь запустил CAN на STM32 ???

Сообщение от Pavlike Посмотреть сообщение
Не могли бы Вы привести инициализацию RCC ?
В компиляторе ИАРа в определяемых символах:
STM32F10X_MD
USE_STDPERIPH_DRIVER

Все остальное - в функции SetSysClockTo72 из system_stm32f10x.c подставилось само.
Serega_B вне форума  
Непрочитано 09.09.2011, 19:05  
Pavlike
Временная регистрация
 
Регистрация: 16.05.2005
Адрес: Киев
Сообщений: 58
Сказал спасибо: 38
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
Pavlike на пути к лучшему
По умолчанию Re: Кто-нибудь запустил CAN на STM32 ???

Да вроде все так и есть... Только никак...
Пробовал только что еще пример, так в 3 раза медленнее, пресколер уменьшил в 3 раза, почти... но в 10 мкс разница и не видят друг друга.
А SJW в формировании кадра не участвует? Я смотрю везде 1 стоит?
Pavlike вне форума  
Непрочитано 12.09.2011, 09:20  
Serega_B
Прописка
 
Регистрация: 09.11.2010
Сообщений: 102
Сказал спасибо: 4
Сказали Спасибо 28 раз(а) в 22 сообщении(ях)
Serega_B на пути к лучшему
По умолчанию Re: Кто-нибудь запустил CAN на STM32 ???

Сообщение от Pavlike Посмотреть сообщение
А SJW в формировании кадра не участвует? Я смотрю везде 1 стоит?
Нет, впрямую не участвует. Определяет, насколько может скакать длительность бита при синхронизации.
SJW[1:0]: Resynchronization jump width
These bits define the maximum number of time quanta the CAN hardware is allowed to
lengthen or shorten a bit to perform the resynchronization.
Когда-то, очень давно, где-то прочитал, что при кварцованых генераторах SJW=1 - в самый раз. С тех пор везде и всегда - 1.
Serega_B вне форума  
Сказали "Спасибо" Serega_B
Pavlike (12.09.2011)
Непрочитано 12.09.2011, 10:36  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Кто-нибудь запустил CAN на STM32 ???

Pavlike, попробую сегодня вечером свою инициализацию кинуть ... Если не забуду ...
SasaVitebsk вне форума  
Сказали "Спасибо" SasaVitebsk
Pavlike (12.09.2011)
Непрочитано 12.09.2011, 14:41  
Pavlike
Временная регистрация
 
Регистрация: 16.05.2005
Адрес: Киев
Сообщений: 58
Сказал спасибо: 38
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
Pavlike на пути к лучшему
По умолчанию Re: Кто-нибудь запустил CAN на STM32 ???

Выяснил интересную вещь... если вынуть кварц вообще - девайс переключается на внутренний генератор и тогда время совпадает!
Отсюда вопрос - почему от кварца не работает???
Я думаю еще попробовать кварц не 8МГц а 16, но пока не разобрался где править настройки внешнего генератора...
Pavlike вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто нибудь имеет описание, как обращаться к KEELOQовскому регистру в PIC12F635/PIC16F636? Make_Pic Микроконтроллеры, АЦП, память и т.д 1 07.05.2010 12:53
Кто - нибудь углубленно знаком с AVR309? graham Микроконтроллеры, АЦП, память и т.д 0 15.02.2006 19:24
Кто нибудь делал вольтметр на ПИК - откликнитесь AnB Измерительное оборудование 23 20.12.2005 22:49
Люди! Кто нибудь видел в России MAX 3353, и где? walrus Информация по радиокомпонентам 1 13.09.2004 22:00


Часовой пояс GMT +4, время: 04:26.


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