Grammidin 0 29 августа, 2011 Опубликовано 29 августа, 2011 (изменено) · Жалоба Надо повесить хотябы еще одно устройство на линию, чтобы оно могло подтвердить прием, тогда все встанет на места. Пока не повесите второе устройство, ничего работать не будет. Спасибо за ответ ) Второе устройство вешаем... оно ничего не может принять... ошибка... С 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 котроллером подобных проблем не было... если пакет посылется даже в пустоту.... то его видно на осцилографе... Изменено 29 августа, 2011 пользователем Grammidin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kamil_yaminov 1 29 августа, 2011 Опубликовано 29 августа, 2011 · Жалоба Вообще, если пакет посылается в пустоту, то его должно быть видно все равно, насколько я помню, посылается фрейм в линию, и если в конце фрейма нет подтверждения, то через какое-то время попытка повторяется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grammidin 0 29 августа, 2011 Опубликовано 29 августа, 2011 · Жалоба Вообще, если пакет посылается в пустоту, то его должно быть видно все равно, насколько я помню, посылается фрейм в линию, и если в конце фрейма нет подтверждения, то через какое-то время попытка повторяется. А вот этого как раз и нет!!! Как же так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grammidin 0 29 августа, 2011 Опубликовано 29 августа, 2011 · Жалоба DSP281x_ECan.txt - код настройки ECan Example_281xECanBack2Back.txt - код посылки При включенном ABO=1 осциллограф показывает только это: При выключенном совсем ничего - тишина. Жду помощи :crying: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 29 августа, 2011 Опубликовано 29 августа, 2011 · Жалоба Жду помощи :crying: Что первое бросается в глаза, у Вас зацикливание до тех пор пока не будет установлен флаг успешной передачи. И как мне кажется он у Вас не выставляется никогда. А вот чтобы узнать по какой причине, надо еще проверять флаги ошибок и по каждому из этих флагов выполнять определенные действия (какие сами придумайте, можно например определенные пины переключать или лучше точки останова расставить). И еще советую при обнаружении ошибки сбросить ее записью 1 в соответствующий бит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Racurs 0 2 сентября, 2011 Опубликовано 2 сентября, 2011 · Жалоба вот рабочие файлы настройки и отправки. Советую проверить разводку платы и правильность распайки CAN передатчика InitECAN.txt PdoEpos.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grammidin 0 5 сентября, 2011 Опубликовано 5 сентября, 2011 (изменено) · Жалоба вот рабочие файлы настройки и отправки. Советую проверить разводку платы и правильность распайки CAN передатчика Файлы поглядели... добавили в свой проект... симптомы те же... проверялось на отладке eZdsp F2812 и на плате с TMSF2810. На выходе только то, что на картинках приведенных выше. Можем выложить весь проект. Может так получится сдвинуться с мертвой точки? can_v1.rar Изменено 5 сентября, 2011 пользователем Grammidin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grammidin 0 5 сентября, 2011 Опубликовано 5 сентября, 2011 (изменено) · Жалоба Some hidden text Изменено 5 сентября, 2011 пользователем Grammidin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grammidin 0 7 сентября, 2011 Опубликовано 7 сентября, 2011 · Жалоба Проблема решена - непропай RX ноги котроллера. Всем спасибо за участие. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rombic87 0 12 сентября, 2011 Опубликовано 12 сентября, 2011 · Жалоба Я попробовал запустить ваш проект, но сталкнулся с ошибками линковщика... Понимаю, что это оффтоп, но поиск по форуму особых результатов не дал, а те советы, которые нашлись, мне помочь не смогли... увы.. Вот что пишется: ------------------------------ 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. Что делать, что за ошибки, ума не приложу... Подскажите пожалуйста Спасибо... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rombic87 0 7 декабря, 2011 Опубликовано 7 декабря, 2011 · Жалоба ура заработало... просто проект не правильно сделал... а вот вопрос: У кого-нибудь получилось принимать данные от контроллера и как входить в прерывания? что-то у меня не очень вышло... не знаю, что надо делать.... По даташиту пробовал но сразу не получилось... вот код настройки мэйлбокса на приём.. 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; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться