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

 
 
> Зависание драйвера CAN в LPC2378
TanT
сообщение Sep 19 2008, 08:20
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 22-11-05
Из: Россия->Омск
Пользователь №: 11 210



Странный глюк в моём драйвере CAN: при передачи до 768 байт ( 96 кадров по 8 байт) всё номарльно можно хоть скопом 768, хоть по 10 байт, но после переданных 768 передастся ещё одна посылка и всё виснет.. потом помогает лишь ресет. Скорости менял - безрезультатно.

Сообщение отредактировал TanT - Sep 19 2008, 08:36


--------------------
Если вы не можете объяснить что-то шестилетнему ребенку, значит, вы сами этого не понимаете.
Альберт Эйнштейн
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
zltigo
сообщение Sep 19 2008, 08:52
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(TanT @ Sep 19 2008, 10:20) *
Странный глюк в моём драйвере CAN: при передачи до 768 байт...

Нет такого безобразия в железе. Заваливать этим CAN-ом на полной скорости-нагрузке подключенный к нему CAN-USB ковертор удавалось smile.gif - его драйвер падал вместе с Windows, но сам LPC работает стабильно. Использоваласть/испытывалась 'B' ревизия LPC2468.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
TanT
сообщение Sep 26 2008, 09:15
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 22-11-05
Из: Россия->Омск
Пользователь №: 11 210



96 - это лимит кадров, принятых/переданных с ошибками, установленный по умолчанию. Однако, изменение даного числа ничего не меняет. Прописываю программно значение ошибок прима и передачи и лицезрею, как они уменьшаются до нуля - кадры передаются и принимаются нормально. Но больше 96 не работает. Буду думать.

Сообщение отредактировал TanT - Sep 26 2008, 09:29


--------------------
Если вы не можете объяснить что-то шестилетнему ребенку, значит, вы сами этого не понимаете.
Альберт Эйнштейн
Go to the top of the page
 
+Quote Post
wangan
сообщение Sep 27 2008, 09:43
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 30-11-05
Из: Омск
Пользователь №: 11 590



Небуду поднимать новую тему т.к. очень схожи.
Работаете ли вы с фильтрами? у меня на lpc2468 проблемка: на CAN2 работает а на первый не хотит (т.е. без фильтров работает оба кана). Возможно это как то связанно с эрратой по CAN1 на 2468, эрратой по CAN на 2378 нет. Но опять же там другая проблемма описанна.
zltigo приведите пжалуйста ваш код.

Сообщение отредактировал wangan - Sep 27 2008, 09:54
Go to the top of the page
 
+Quote Post
TanT
сообщение Sep 30 2008, 07:35
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 22-11-05
Из: Россия->Омск
Пользователь №: 11 210



Фильтр не использую, пока. Моя проблема, как выяснилось, совсем другого рода и совпадение количества передаваемых пакетов с количеством счётчика ошибок всего лишь случайность.
В моём случае проблема с выделением памяти.
Когда я использую семафор ожидания готовности данных передачи по CAN заполняется вся память выделенная под задачу и происходит переполнение. Однако, программа ожидает данные (OSSemPend) после готовности освобождает ресурс (OSSemPost), но быстро расходует память. Без использования Post, Pend всё передаётся неограниченными порциями. Кто виноват? Что делать?


--------------------
Если вы не можете объяснить что-то шестилетнему ребенку, значит, вы сами этого не понимаете.
Альберт Эйнштейн
Go to the top of the page
 
+Quote Post
wangan
сообщение Sep 30 2008, 08:24
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 30-11-05
Из: Омск
Пользователь №: 11 590



Фуф еле победил, оказалось ошибка в даташите:
ревизия чипа - A
имею UM10237 LPC24XX User manual от Rev. 01 — 18 July 2008
написано:
Since each CAN bus has its own address map, each entry also contains the number of the CAN Controller (001-010) to which it applies.

я и программил номер CAN контроллера CAN1 как 001 а CAN2 как 002 а заработало когда сделал: CAN1 как 000 а CAN2 как 001.

p.s. примеры работы с каном с фильтрами и не только можно глянуть в примерах в кейле

Сообщение отредактировал wangan - Sep 30 2008, 08:27
Go to the top of the page
 
+Quote Post
TanT
сообщение Sep 30 2008, 11:05
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 22-11-05
Из: Россия->Омск
Пользователь №: 11 210



Усё, разобрался. Мало памяти, большие буфера. POST и PEND оказались не причём.


--------------------
Если вы не можете объяснить что-то шестилетнему ребенку, значит, вы сами этого не понимаете.
Альберт Эйнштейн
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 09:48
Рейтинг@Mail.ru


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