spi调试步骤,mcp2515调试整理
1、先查看也硬件电路,一般都是单片机作为master,其他芯片作为slave。单片机的MOSI对应从机的SI,单片机的MISO对应从机的SO,如果两个引脚接反了,那是怎么调试都没有效果的。
2、单片机硬件spi的配置,spi我们有四种模式,模式要和芯片的模式一直,比如:mcp2515,支持高速SPI接口(10MHz):
支持 0,0 和 1,1 的 SPI 模式,这个可以网上找找,我这里也用图说明一下

说明如下
CPOL CPHA
MODE0 0 0
MODE1 0 1
MODE2 1 0
MODE3 1 1
CPOL: SPI空闲时的时钟信号电平(1:高电平, 0:低电平)
CPHA: SPI在时钟第几个边沿采样(1:第二个边沿开始, 0:第一个边沿开始)
MODE0和MODE3最常用。
3、spi的速度,有的芯片,spi的速度有最低速度的要求,比如ads1259,不能太低,我使用的stm32配置为2.25Mbits/s,有的spi芯片是可以低速的。
4、调试的时候,可以先看看有没有clk,和自己配置是否相同。
5、然后单片机先把外设spi芯片复位后,先别着急写,可以看看读取芯片的寄存器是否和datasheet的默认值一致,如果一致,说明读取基本没有问题。
6、spi读取函数,要查看数据手册,在数据手册中,摘取了读取指令时序如下:
几个注意点:
1、红色的地方是不用添加任何延时的,写c语句的时候,直接spi发送即可。
2、cs的地方,数据手册建议是:先拉高,后拉低,再次写入数据,这样就可以做到时序上的同步,能快速的写入。

7、mcp2515还有一个快速读取指令,不用写地址,就可以读取的,红色的地方,如果还想继续读取的,就不用拉高cs线,
比如我用can的时候,统一使用8个字节,那么发送完写的指令(比如0x91)后,连续读取8个数据,保存存到数组中,最后才拉高cs线。这样就可以加快spi的读取速度。

spi调试步骤,mcp2515调试整理的更多相关文章
- 【原】Maven解决jar冲突调试步骤:第三方组件引用不符合要求的javassit导致的相关异常
		
[环境参数]开发框架:Spring + MyBatis + SpringMVC + KettleJDK版本:1.8.0_91javassist依赖版本:javassit-3.12.1.GA [障碍再现 ...
 - Mac android studio真机调试步骤
		
Mac android studio真机调试步骤 这些步骤是在百度中查找的,当时记录下来了,过了个把月了,今天写出来,我也重温步骤. 1.找到android的SDK路径,一般是 /user/你的电脑名 ...
 - 13.56Mhz下直接阻抗匹配调试步骤
		
直接匹配阻抗,天线与射频芯片在同一块板子,调试步骤与50欧姆阻抗匹配调试天线参数差不多,多了一部分射频芯片端的滤波部分的参数计算.下面介绍调试过程. 1.首先看一下射频芯片发射部分原理图:分析原理图时 ...
 - ###Android 断点调试和高级调试###
		
转自:http://www.2cto.com/kf/201506/408358.html 有人说Android 的调试是最坑的,那我只能说是你不会用而已,我可以说Android Studio的调试是我 ...
 - cocos2d-js 调试办法 断点调试 Android真机调试
		
一 使用浏览器chrome打开程序,进行调试.跟普通js程序一样. 要么自行搭建服务器,利用python脚本,或者用其他服务器程序(LAMP或XAMPP).然后用浏览器打开服务器地址. 要么直接使用c ...
 - python远程调试及celery调试
		
部分来自 from: https://www.xncoding.com/2016/05/26/python/pycharm-remote.html 你是否经常要在Windows 7或MAC OS X上 ...
 - VSCode调试Html中的脚本  vscode前端常用插件推荐,搭建JQuery、Vue等开发环境  vsCode 添加浏览器调试和js调试的方法总结  VS Code - Debugger for Chrome调试js
		
一.背景 使用Visual Studio Code写了一个简单的Html页面,想调试下其中script标签里的javascript代码,网上查了一通,基本都是复制粘贴或者大同小异的文章,就是要安装De ...
 - GDB:从单线程调试到多线程调试(MFiX单步调试)
		
GDB:从单线程调试到多线程调试 1. 裸跑GDB 1.1 安装GDB sudo apt-get install gdb 1.2 编译程序 由于需要调试,因此编译的时候需要添加-g编译参数: 1.3 ...
 - Linux学习——Gdb基本调试方法&&多线程调试
		
1.Gdb的基本调试 示例代码 //e.c #include <stdio.h> void debug(char *str) { printf("debug info :%s\n ...
 - 调试多线程 & 查死锁的bug & gcore命令 & gdb对多线程的调试 & gcore & pstack & 调试常用命令
		
gdb thread apply all bt 如果你发现有那么几个栈停在 pthread_wait 或者类似调用上,大致就可以得出结论:就是它们几个儿女情长,耽误了整个进程. 注意gdb的版本要高于 ...
 
随机推荐
- 四元数,  Physx中的四元数
			
四元数的概念 & 如何使用四元数: 绕V轴旋转 f 角,对应的四元数: q = ( cos(f/2), Vx*sin(f/2), Vy*sin(f/2), Vz*sin(f/2) ) = c ...
 - python 基础  ----  面向对象
			
------ 面向对象的思想 三个基本特征: 封装(封装属性方法可以减少耦合)继承(可以抬高开发效率) 多态 主要包括 : 类 : 描述具有相同的属性和方法的对象的集合 变量: 类变量/ 成 ...
 - day60——单表操作补充(批量插入、查询、表结构)
			
day60 批量插入(bulk_create) # bulk_create obj_list = [] for i in range(20): obj = models.Book( title=f'金 ...
 - Go语言【数据结构】切片
			
切片 简介 简单地说,切片就是一种简化版的动态数组.Go 数组的长度不可改变,而切片长度是不固定,切片的长度自然也就不能是类型的组成部分了.数组虽然有适用它们的地方,但是数组的类型和操作都不够灵活,因 ...
 - DELL OptiPlex 7050M黑苹果纪录
			
准备工作: 主机:OptiPlex 7050 Micro Desktop Computer 镜像:黑果小兵 macOS Catalina 10.15.1 安装过程: 大体的安装过程,就Dell品牌而言 ...
 - SpringCloud高并发性能优化
			
1. SpringCloud高并发性能优化 1.1. 前言 当系统的用户量上来,每秒QPS上千后,可能就会导致系统的各种卡顿,超时等情况,这时优化操作不可避免 1.2. 优化步骤 第一步:优化大SQL ...
 - echarts自定义悬浮框的显示
			
最近在使用echarts的地图功能 ,业务需求是显示前五的具体信息,并且轮流显示,首先解决轮流显示的问题 var counta = 0; //播放所在下标 var mTime = setInterva ...
 - Django 中使用 MarkDown 插件
			
目录 Django 使用 markdown 插件 1 将 markdown 转化为 html 2 使用 markdown 编辑框 Django 使用 markdown 插件 Python-Markdo ...
 - SAP CDS redirect view支持写操作吗,一个实验来验证
			
According to this wiki, write back on CDS view is not supported: And also it is defined in ABAP help ...
 - Python如何去实际提高工作的效率?也许这个会有用!
			
4月初,班主任的某次周会议上,华华关切的问了一下:最近班主任们有什么难题吗?就是花费了你们大部分时间的工作!我们Python天团可以帮你们解决问题. 班主任大主管星星说:有.目前有一个大难题.我们每天 ...