当前位置:网站首页>nano的CAN通信
nano的CAN通信
2022-07-05 17:50:00 【罗小黑战记好看】
我买的是微雪的树莓派用的SPI转CAN。现在用在jetson nano上。我看了一下俩模块的芯片用的都是一样的,引脚也都对得上,所以我就打算拿这个模块给nano做can通信。
具备CAN功能,使用SPI接口CAN控制器MCP2515,搭配收发器SN65HVD230。 Microchip 的 MCP2515是一款CAN协议控制器,完全支持 CAN V2.0B 技术规范。该器件能发送和接收标准和扩展数据帧以及远程帧。 MCP2515自带的两个验收屏蔽寄存器和六个验收滤波寄存器可以过滤掉不想要的报文。 CAN 控制器的输出引脚 Tx 接到 SN65HVD230 的数据
输入端 D,可将此 CAN 节点发送的数据传送到 CAN 网络中;而 CAN 控制器的接收引脚 Rx 和 SN65HVD230 的数据输出端R 相连,用于接收数据。
我购买的针对树莓派用的can扩展板
总之开始安装
专门为了nano做的can通信转接板
minicom可以通过串口控制外部的硬件设备.适于在linux通过超级终端对嵌入式设备行管理.同样也可以使用minicom对外置Modem进行控制.
linux超级终端minicom的使用方法
minicom 是一款串口终端调试工具
使用/etc/modules-load.d/来配置系统启动时加载哪些模块
Linux模块加载流程及如何让系统开机自动加载模块
按照网页教程步骤,可以看到我们的nano的spi1引脚和我的can模块上的spi引脚对应
【艹 设置完重启失败,现在显示屏一直黑屏,只能重新烧录镜像。重新烧录重新操作之后教程没问题了,但我这边模块引脚和波特率对不上】
安装好之后有这么几个问题
- 我买的是微雪的树莓派的SPI转can,那个模块把中断输出引脚设置在了nano的20号引脚的位置,我应该把模块引脚设置改成26号引脚。不过看nano的SPI转can的模块也是乱设置中断引脚的位置。可能这个改不改无所谓。
- 波特率对不上
- 解压来的代码文件只可读
# 商家写的nano的cantest.py 测试例程将会在接收到信息时发送1-8
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import MCP2515
import time
print("--------------------------------------------------------")
# try:
# This setup is referred to CAN SPI click mounted on flip n click device slot A
can = MCP2515.MCP2515()
print("init...")
can.Init()
print("send data...")
data = [1, 2, 3, 4, 5, 6, 7, 8]
can.Send(data, len(data))
readbuf = []
# while(1):
while(1):
readbuf = can.Receive()
print(readbuf)
time.sleep(0.5)
print("--------------------------------------------------------")
# except Exception as e:
# print(e)
关于文件权限的问题,我在鸟哥那边学过
sudo chmod 777 -R 文件夹名/
这句就把所有权限都开放了
0(0+0+0)-没有权限。
1(0+0+1)-仅执行权限。
2(0+2+0)-仅写入权限。
3(0+2+1)-写入和执行权限。
4(4+0+0)-只读权限。
5(4+0+1)-读取和执行权限。
6(4+2+0)-读写权限。
7(4+2+1)-读取、写入和执行权限。
通常我们以 Vim 编辑 Shell 文件批处理文件后,文件权限通常是 rw-rw-r–(644),那么,如果要将该文件变成可执行文件,并且不让其他人修改此文件,则只需将此文件的权限该为 rwxr-xr-x(755)即可。
chmod 755 设置用户的权限为:
1.文件所有者可读可写可执行
2.与文件所有者同属一个用户组的其他用户可读可执行
3.其它用户组可读可执行
can的波特率
MCP2515波特率配置
因为我这个模块是12M晶振,而程序里是默认8M晶振,所以要按照手册重新计算通信阶段的各个占比,参考上面那个博客就可以了。
计算过程比较复杂,还是需要一点经验的。说实话,要是有那功夫去理解我上面的计算过程,还不如直接看博客自己推导。
需要了解的还有500Kbps是对应的2us的Tbit。由1/2us得到。同理可知250Kbps是需要4us,125Kbps为8us
【当然了,我没挨个去测试】
改好这两处就能通信了【要先连好硬件哈】
所以引脚的事确实没关系,我现在用的是29号引脚作为中断输出
琢磨信息发送
商家设置成这样 只做了一个send函数。想发扩展帧估计只能自己写。
附图
nano的对应的引脚接口
这个是啥也不设置的时候默认就有的引脚功能
nano的另一个更详细的表,是可以设置开启的对应引脚。
这个是nano的设置界面
微雪的nano专用的SPI转CAN模块
微雪的树莓派专用的SPI转CAN模块
扩展阅读
英伟达Jeston nano<3>使用Python实现三种方式串口通信
Jetson Nano 配置40引脚扩展接头
linux 编辑文件时提示swp文件已经存在
边栏推荐
- The comprehensive competitiveness of Huawei cloud native containers ranks first in China!
- [performance test] full link voltage test
- GFS分布式文件系统
- 论文阅读_医疗NLP模型_ EMBERT
- 检查命名空间和类
- 十个顶级自动化和编排工具
- Sophon kg upgrade 3.1: break down barriers between data and liberate enterprise productivity
- Anaconda中配置PyTorch环境——win10系统(小白包会)
- Which platform of outer disk gold is regular and safe, and how to distinguish it?
- Cmake tutorial Step4 (installation and testing)
猜你喜欢
Elk log analysis system
EPM related
南京大学:新时代数字化人才培养方案探讨
Leetcode daily question: merge two ordered arrays
Sophon kg upgrade 3.1: break down barriers between data and liberate enterprise productivity
Count the running time of PHP program and set the maximum running time of PHP
职场进阶指南:大厂人必看书籍推荐
JVM第三话 -- JVM性能调优实战和高频面试题记录
leetcode每日一练:旋转数组
Mask wearing detection based on yolov3
随机推荐
Accuracy of BigDecimal Division
Teamcenter 消息注册前操作或後操作
Is it safe to open an account online? What is the general interest rate of securities financing?
LeetCode每日一题:合并两个有序数组
提高應用程序性能的7個DevOps實踐
What are the requirements for PMP certification? How much is it?
mybash
Tkinter window preload
十个顶级自动化和编排工具
Customize the theme of matrix (I) night mode
Sophon AutoCV:助力AI工业化生产,实现视觉智能感知
企业数字化发展中的六个安全陋习,每一个都很危险!
2022 information system management engineer examination outline
Operation before or after Teamcenter message registration
“12306” 的架构到底有多牛逼?
深拷贝与浅拷贝【面试题3】
Cmake tutorial Step4 (installation and testing)
请问下为啥有的表写sql能查到数据,但在数据地图里查不到啊,查表结构也搜不到
求解为啥all(())是True, 而any(())是FALSE?
ITK Example