Перейти к содержанию
    

программирование CAN в TMS320F2812

Надо повесить хотябы еще одно устройство на линию, чтобы оно могло подтвердить прием, тогда все встанет на места.

Пока не повесите второе устройство, ничего работать не будет.

 

Спасибо за ответ )

Второе устройство вешаем... оно ничего не может принять... ошибка... С ABO почти понятно... кадр ошибки от него наверное и видим осцилографом... а вот сами данные нет.. просто тишина - кадр - тишина. Разве пакетов с данными не должно быть пусть без подтверждения пока, просто они не должны разве ломиться и стучаться в линию до потери пульса если ABO =1.

Выдвигается подозрение о неправильной настройке BitRate для контроллера 100МГц. У меня так, настравиваем на 1Mbps: (все по формуле вроде)

ECanaShadow.CANBTC.all = 0;

ECanaShadow.CANBTC.bit.BRPREG = 9; // 1 Mbps @ 100 MHz SYSCLKOUT

ECanaShadow.CANBTC.bit.TSEG2REG = 2; // 100 Mbps/(9+1)*((5+1)+(2+1)+1)=1Mbps

ECanaShadow.CANBTC.bit.TSEG1REG = 5;

ECanaRegs.CANBTC.all = ECanaShadow.CANBTC.all;

Еще сделали пример настроенный на прием пакета - а второе устройство его посылает нам... на осцилографе видим посылки... но наш CAN его не видит и не принимает и не подтверждает соответственно...

P.S: C2000, можно свами по IСQ пообщаться... через форум долго, вторую неделю бьемся...

C AVR котроллером подобных проблем не было... если пакет посылется даже в пустоту.... то его видно на осцилографе...

Изменено пользователем Grammidin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще, если пакет посылается в пустоту, то его должно быть видно все равно, насколько я помню, посылается фрейм в линию, и если в конце фрейма нет подтверждения, то через какое-то время попытка повторяется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще, если пакет посылается в пустоту, то его должно быть видно все равно, насколько я помню, посылается фрейм в линию, и если в конце фрейма нет подтверждения, то через какое-то время попытка повторяется.

 

А вот этого как раз и нет!!! Как же так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

DSP281x_ECan.txt - код настройки ECan

Example_281xECanBack2Back.txt - код посылки

При включенном ABO=1 осциллограф показывает только это:

409e13a4b655t.jpg

b3dbd537e54ft.jpg

При выключенном совсем ничего - тишина.

Жду помощи :crying:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Жду помощи :crying:

Что первое бросается в глаза, у Вас зацикливание до тех пор пока не будет установлен флаг успешной передачи. И как мне кажется он у Вас не выставляется никогда. А вот чтобы узнать по какой причине, надо еще проверять флаги ошибок и по каждому из этих флагов выполнять определенные действия (какие сами придумайте, можно например определенные пины переключать или лучше точки останова расставить). И еще советую при обнаружении ошибки сбросить ее записью 1 в соответствующий бит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот рабочие файлы настройки и отправки. Советую проверить разводку платы и правильность распайки CAN передатчика

InitECAN.txt

PdoEpos.txt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот рабочие файлы настройки и отправки. Советую проверить разводку платы и правильность распайки CAN передатчика

 

Файлы поглядели... добавили в свой проект... симптомы те же... проверялось на отладке eZdsp F2812 и на плате с TMSF2810.

На выходе только то, что на картинках приведенных выше.

 

Можем выложить весь проект. Может так получится сдвинуться с мертвой точки?

can_v1.rar

Изменено пользователем Grammidin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я попробовал запустить ваш проект, но сталкнулся с ошибками линковщика...

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

Вот что пишется:

 

------------------------------ can.pjt - Debug ------------------------------

[Linking...] "C:\CCStudio_v3.3\C2000\cgtools\bin\cl2000" -@"Debug.lkf"

<Linking>

>> warning: entry point symbol _c_int00 undefined

 

undefined first referenced

symbol in file

--------- ----------------

_c_int00 D:\test\Projects\eCAN\someCAN\can_v1\Debug\DSP281x_CodeStartBranch.obj

>> error: symbol referencing errors - './Debug/can.out' not built

 

>> Compilation failure

 

Build Complete,

2 Errors, 1 Warnings, 0 Remarks.

 

Что делать, что за ошибки, ума не приложу...

Подскажите пожалуйста

Спасибо...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ура заработало... просто проект не правильно сделал...

а вот вопрос:

У кого-нибудь получилось принимать данные от контроллера и как входить в прерывания?

что-то у меня не очень вышло... не знаю, что надо делать....

По даташиту пробовал но сразу не получилось...

вот код настройки мэйлбокса на приём..

 

struct ECAN_REGS ECanaShadow;

 

EALLOW;

ECanaRegs.CANMIM.bit.MIM3 = 1;

EDIS;

 

ECanaShadow.CANME.all=ECanaRegs.CANME.all;

ECanaShadow.CANME.bit.ME3 = 0 ;

ECanaRegs.CANME.all=ECanaShadow.CANME.all;

 

ECanaMboxes.MBOX3.MSGID.bit.IDE = 0;

ECanaMboxes.MBOX3.MSGID.bit.AAM = 0;

ECanaMboxes.MBOX3.MSGID.bit.AME = 0;

ECanaMboxes.MBOX3.MSGCTRL.bit.DLC = DLC;

ECanaMboxes.MBOX3.MSGCTRL.bit.RTR = 0;

ECanaMboxes.MBOX3.MSGID.bit.STDMSGID = ID;

 

ECanaShadow.CANMD.all=ECanaRegs.CANMD.all;

ECanaShadow.CANMD.bit.MD3 = 1 ;

ECanaRegs.CANMD.all=ECanaShadow.CANMD.all;

 

ECanaShadow.CANME.all=ECanaRegs.CANME.all;

ECanaShadow.CANME.bit.ME3 = 1 ;

ECanaRegs.CANME.all=ECanaShadow.CANME.all;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...