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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> libopencm3 + stm32f4 + CAN, CAN на забытой всеми библиотеке
esaulenka
сообщение Jun 8 2018, 13:04
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 992
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



на F407 действительно стоит кварц частотой 26 МГц?


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
k155la3
сообщение Jun 9 2018, 05:07
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 005
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(Ekka @ Jun 7 2018, 16:20) *
. . . две stm32f1 нормально общаются. Стоит подключить f4 с такими же настройками, как она вылетает в ошибки. . . .
Зря игнорируете рекомендацию посмотреть что на линиях осцилографом. Какие трансиверы используются, схема-номиналы выходных цепей.
Go to the top of the page
 
+Quote Post
Ekka
сообщение Jun 9 2018, 09:15
Сообщение #18


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

Группа: Участник
Сообщений: 144
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Цитата(yes @ Jun 7 2018, 15:44) *
если есть возможность, хорошо бы посмотреть осциллографом линию. может что-то не так с драйвером/уровнями? заодно и грубые ошибки времянки видны будут.

или соединить два CAN-а в F4 между собой...

не уверен на 100% но Form Error может быть из-за того, что старт бит не передается - то есть на входе CAN_RX всегда 1


Все время получаю такой сигнал. Настройки stm32f4 изменены. Сейчас все stm-мы настроены на 250 kbit/s

Сообщение отредактировал Ekka - Jun 9 2018, 11:27
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Ekka
сообщение Jun 9 2018, 11:28
Сообщение #19


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

Группа: Участник
Сообщений: 144
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Сигнал на ногц RX у stm32f4 приходит такой, как на рисунке. Но в прерывание я теперь не попадаю ни в какое.
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Jun 11 2018, 08:51
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 992
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Ну и что толку с этих картиночек? Вы их самостоятельно-то рассматривать пытались?
На F105 частота APB1 36 МГц, на F407 - 20 МГц. Настройки модуля CAN по-прежнему одинаковые? Ну тогда скорость у них отличается в 1.8 раза.

И под "посмотреть осциллографом" подразумевалось не "запостить картинку", а "измерить скорость шины". Методом измерения длительности одного бита и вычисления количества бит в одной секунде.

Ничего, что я здесь азбучные истины излагаю?


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
Ekka
сообщение Jun 12 2018, 06:41
Сообщение #21


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

Группа: Участник
Сообщений: 144
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Все запустилось, проблема была в том, что вывод RS на плате болтался... После его настройки все заработало.
Go to the top of the page
 
+Quote Post
Ekka
сообщение Jun 12 2018, 08:54
Сообщение #22


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

Группа: Участник
Сообщений: 144
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



мда... в кейле-то оно на хале шпарит без проблем, но вот хэта жуткая libopencm3...

В ней у меня так (для STM32f4)
Код
APB1_FREQ = 42 mHz
Prescaler (for TQ) = 24
42/24 = 1.75
1/1.75 * 1000 = 571.4 ns (Time Quantum)

Для скорости 250 kbit/s:
1/250*1000 = 4000 ns (time for One Bit)

571.4 * (1 + BS1 + BS2) = 4000
BS1+BS2 = 6 (пусть BS1 = 1, BS2 = 5)

Итого настройки CAN1 для скорости 250 Кбит/сек:
PRESC = 24
SJW = 1
BS1 = 1
BS2 = 5


Для STM32f1 (их трое, все нормально общаются)

Код
APB1_FREQ = 36 mHz
Prescaler (for TQ) = 12
36/12 = 3
1/3 * 1000 = 333.3 ns (Time Quantum)

Для скорости 250 kbit/s:
1/250*1000 = 4000 ns (time for One Bit)

333.3 * (1 + BS1 + BS2) = 4000
BS1+BS2 = 11 (пусть BS1 = 6, BS2 = 5)

Итого настройки CAN1 для скорости 250 Кбит/сек:

PRESC = 12
SJW = 1
BS1 = 6
BS2 = 5

Но на libopencm3 у меня просто виснет кан и ложит все остальные устройства (кроме передающего)...(((

Сообщение отредактировал Ekka - Jun 12 2018, 08:56
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Jun 13 2018, 07:20
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 992
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Ложит и ложит, хад такой...


Очередной бесценный советик. Постарайтесь понять, что это железка. Тупая и абсолютно бесчувственная. И всё эти эпитеты ей совершенно безразличны.
Что виснет? Как виснет? Что в шину передаётся? (осциллографом пора-таки воспользоваться). Что как где настроено?
Пишем подробное письмо, трижды перечитываем, пытаясь понять, что же именно написано (не простое ctrl-c ctrl-v "хотят - ну нате вам"). Можно даже не отправлять.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
k155la3
сообщение Jun 13 2018, 10:04
Сообщение #24


Профессионал
*****

Группа: Свой
Сообщений: 1 005
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(Ekka @ Jun 12 2018, 09:41) *
Все запустилось, проблема была в том, что вывод RS на плате болтался... После его настройки все заработало.
А что сделали что "не болтается" ? какой номинал R и куда ? Повторяю вопрос, терминаторы, 120 Ом, два, не шине имеются ?
----
если работать по Вашей методе, сделайте "фото" настраиваемых регистров в работающем (HAL) и неработающем проектах (после инициализации), найдите разницу.
В IAR можно вывести несколько окон регистров и сделать скриншот. В другом проекте это можно не делать а сравнить с экрана.
---
Если собираетесь работать с CAN, попробуйте раздобыть адапетер CAN_HACKER. Удобно мониторить-снифф шины, легко перенастраивается, отображает ошибки.
Девайс и софт во многом удобнее даже фирменных утилит (по крайней мере от Kvaser).
Go to the top of the page
 
+Quote Post
Ekka
сообщение Jun 13 2018, 12:37
Сообщение #25


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

Группа: Участник
Сообщений: 144
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Похоже, была ошибка в том, что скорость у приемника и передатчика не совпадала.

Код
APB1_FREQ = 42 mHz
Prescaler (for TQ) = 24
42/24 = 1.75
1/1.75 * 1000 = 571.4 ns (Time Quantum)

Для скорости 250 kbit/s:
1/250*1000 = 4000 ns (time for One Bit)

571.4 * (1 + BS1 + BS2) = 4000
BS1+BS2 = 6 (пусть BS1 = 2, BS2 = 4)

Итого настройки CAN1 для скорости 250 Кбит/сек:
PRESC = 24
SJW = 1
BS1 = 2
BS2 = 4


Как ни странно, вот с этими настройками все запустилось на libopencm3.

СПАСИБО ОГРОМНОЕ ВСЕМ, кто ОТЗЫВАЛСЯ!!))))
Go to the top of the page
 
+Quote Post
k155la3
сообщение Jun 13 2018, 17:33
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 005
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Не полагайтесь на всякие "железобетонные" расчеты. Если есть возможность проверить - всегда проверяйте соответствие заданного и полученного в реале.
ps
К Rs трансивера для скорости 250 Кбит подключайте резистор не более 1.5 - 5 кОм. (на GND)
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2018 - 11:58
Рейтинг@Mail.ru


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