Jump to content
    

CAN Controller с opencores

кто-нибудь использовал ядро CAN Protocol Controller с opencores ? Все ли нормально работает, надо ли его допиливать? вроде в описании указано tested in HW and verified with the Bosch VHDL Reference System, но с другой стороны висит открытый список Bug-репортов.

Share this post


Link to post
Share on other sites

кто-нибудь использовал ядро CAN Protocol Controller с opencores ? Все ли нормально работает, надо ли его допиливать? вроде в описании указано tested in HW and verified with the Bosch VHDL Reference System, но с другой стороны висит открытый список Bug-репортов.

А что, на ОпенКорах бывает что-то не требующее допиливания? :biggrin:

Share this post


Link to post
Share on other sites

А что, на ОпенКорах бывает что-то не требующее допиливания? :biggrin:

хз, никогда ничего там не брал.всегда или готовые ядра из среды ставил или своё писал. Хочется и сейчас что-то готовое, гарантированно рабочее и модифицируемое.

Share this post


Link to post
Share on other sites

хз, никогда ничего там не брал.всегда или готовые ядра из среды ставил или своё писал. Хочется и сейчас что-то готовое, гарантированно рабочее и модифицируемое.

На opencore была реализация CAN от Igor Mohor. Это был клон с микросхемы PHILIPS.

Тут же на electronix обсуждалось, что у нее есть какой-то баг и Igor этот Mohor предлагал его поправить за денежку.

В процессе использования этой корки так на баг этот я и не напоролся. Работало стабильно. Может где-то в corner cases он зарыт.

Share this post


Link to post
Share on other sites

Что-то у меня не заводиться 

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

И на осцилограмме почему то приемник не отвечает согласно CAN протоколу.

 image.thumb.png.7fd8e21543025bee92172e17ad0e59e3.png

Share this post


Link to post
Share on other sites

Подскажите пожалуйста, кто-нибудь пробовал эту корку?

https://github.com/texane/can_controller/tree/master/firmware/hdl/rtl/verilog

Не совсем пойму, как почитать статусы?

Например статус того что сообщение передано

Edited by addi II

Share this post


Link to post
Share on other sites

f

On 6/26/2025 at 8:41 PM, addi II said:

Подскажите пожалуйста, кто-нибудь пробовал эту корку?

https://github.com/texane/can_controller/tree/master/firmware/hdl/rtl/verilog

 

а это не то же самое, с чего стартовала тема?
https://opencores.org/projects/can

если оно, то это SJA1000

===========================

корку с опенкореса я использовал, но давно. вроде бы какое-то тестирование в составе уже готового оборудования она прошла, то есть прибор был сертифицирован для применения в транспорте (за бугром и в специальном сегмене) 

Share this post


Link to post
Share on other sites

да, это она, то есть она у Вас синтезировалась?, без доработок?

И для какой ПЛИС делали?

Share this post


Link to post
Share on other sites

On 7/9/2025 at 9:34 AM, addi II said:

да, это она, то есть она у Вас синтезировалась?, без доработок?

И для какой ПЛИС делали?

выпустили пару АЗИКов на 90нм и 45нм 

доработки были в соответствии с GRLIB (там внутренние памяти вытащены наружу, чтобы их через VHDL конфигурировать)

прототипировали в Xilinx-ких виртексах соотвующих лет (Virtex5 по-моему) тоже работало

Share this post


Link to post
Share on other sites

On 7/10/2025 at 2:30 PM, yes said:

выпустили пару АЗИКов на 90нм и 45нм 

доработки были в соответствии с GRLIB (там внутренние памяти вытащены наружу, чтобы их через VHDL конфигурировать)

прототипировали в Xilinx-ких виртексах соотвующих лет (Virtex5 по-моему) тоже работало

что-то она у меня не синтезится похоже

работаю через Wishbone, пытаюсь запустить сообщение с обычным идентификатором


Сначала записываю по адресу 0 данные равные 1, то есть меняю режим на ресет чтобы далее записать регистры bus_timing_0, bus_timing_1, clock_divider_hi, acceptance_code_0, 
acceptance_mask_0.
Далее в bus_timing_0 0x000000FF в bus_timing_1 0x000000FF
Далее в clock_divider_hi 0x00000001
Далее в acceptance_code_0 0x00000001 
Далее в acceptance_mask_0_hi 0x00000001  

Далее перехожу обратно в  нормальный режим посредством записи 0 по адресу 0
Далее делаю tx_request посредством записи 1 по адресу 1 

На моделе даже после имплементации кадр есть, но на выходе ПЛИС нет

Share this post


Link to post
Share on other sites

Коллеги, посмотрите пожалуйста на это ядро, у кого есть возможность, я в упор не вижу как в этом ядре происходит прием сообщения, irq есть, но они уходят в никуда, или я ничего не понимаю.... 

Share this post


Link to post
Share on other sites

Подскажите ,пожалуйста, как правильно настроить и пользоваться https://github.com/texane/can_controller/tree/master/firmware/hdl/rtl/verilog ? Там есть модуль Can controller ,пытаюсь на симуляторе в ISE его в своем тестбенче запустить ,но на Tx все время единица. Тактовый сигнал подал ,ресет из 1 в ноль сбросил,но не работает. Как им правильно пользоваться, какие может где состояния куда записать в модули ,которые использует модуль Can controller? Буду благодарен за любую подсказку.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...