⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 notice

📁 ATMEGA128 对 SJA1000 寄存器读写
💻
字号:
一些废话就在这里来唠叨了哈。
编译器用的是 AVR-GCC
这点代码的功能是:
	1. 实现 ATMEGA128 读取 SJA1000 的寄存器内容。
	2. 实现 ATMEGA128 写入 SJA1000 的寄存器内容。
	3. 占据硬盘空间。
我的硬件平台接线信息是:
SJA1000: AD0-7 <-----------> ATMEGA128:PA0-7
SJA1000: ALE <-----------> ATMEGA128:PG2
SJA1000: /CS <-----------> ATMEGA128:PC2
SJA1000: /WR <-----------> ATMEGA128:PC0
SJA1000: /RD <-----------> ATMEGA128:PC1
SJA1000: MODE	5V 电源 (为了选 INTEL 总线操作模式)
SJA1000: /RSET  硬件复位电路。
其他的程序没有涉及到就不做说明。

需要注意的地方:
	1. 参考 SJA1000 数据手册。
	2. 读写前把 ATMEGA128 的外部端口设置为 SJA1000 数据手册
	上进行读取之前的电位。这就是 sja1000_port_init() 所做的事情。
	3. sja1000_port_init() 顺便把地址也给搞定了,这主要是应为,
	读写函数都要用到这一步。
	4. 由于 SJA1000 寄存器访问除了时序还有保持时间的要求。所以
	如果你的SJA1000 的时钟频率比 cpu 慢的多,建议你把我注释了的
	asm("nop"); 取消注释,更可以在多加几个。
	
不需要注意的地方:
	1. 刚接触到 SJA1000 遇到寄存器不能访问的问题。在网上找了找。未果
	然后参考网上的一些提示,自己写。现在可以正确访问了,希望能够给和
	我一样刚接触 SJA1000 的同行们一点提示。
	2. CAN 驱动刚刚开始,以后完了以后有空再发出来。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -