本应用笔记提供了用于将串行外设接口(spi)rtc与内置spi接口模块的摩托罗拉dsp连接的硬件和软件示例。本示例使用摩托罗拉dsp演示套件作为电路的基础。
ds1306引脚配置
引脚配置
描述
ds1306实时时钟(rtc)可通过3线或spi™接口与微控制器(μc)或数字信号处理(dsp)单元连接。本应用笔记介绍了如何将ds1306连接至内置spi接口模块的摩托罗拉dsp。ds1305也可用于此应用。该电路使用摩托罗拉dsp56f800demo演示板和codewarrior ide。
使用示例软件
示例软件是从空白项目开始开发的。按照摩托罗拉套件安装指南(教程:创建 codewarrior 项目)中的说明进行操作,了解详细信息。在main.c中添加本应用笔记中包含的代码。
操作
该程序使用gpio端口来控制ds1306上的ce。软件初始化dsp中的spi控制器模块,将时间和日期写入ds1306。然后,软件循环读取时间和日期。ds1305和ds1306支持spi模式1和3。
图1所示为该电路的原理图。该电路包括连接到摩托罗拉演示板的子卡。请注意,图1中的电路包括几个带spi接口的rtc。一次只能使用一个rtc,软件仅支持ds1306。该软件如图2所示。
图 1.dsp56f800演示板的子卡。
图2.演示代码。
/* file: main.c *//* this example program was developed using the motorola56f800 demo board kit. follow the kit instalation guidefor creating a codewarrior project. use the shell of thenew project for this example. note: this program is forexample only and is not supported by dallas semiconductormaxim. */#include port.h#include stdio.h#include stdlib.h/******************************************************** main program for use with embedded sdk*******************************************************/extern sampleasm (void);void reset_spi(void);void wbyte_spi(unsigned char);unsigned char rbyte_spi(void);#define reg_base 0x0000#define spi_base 0x0f20#define gpiob_base 0x0fc0#define spscr *(volatile uword16 *)(spi_base + 0)#define spdsr *(volatile uword16 *)(spi_base + 1)#define spdrr *(volatile uword16 *)(spi_base + 2)#define spdtr *(volatile uword16 *)(spi_base + 3)#define gpio_b_pur *(volatile uword16 *)(gpiob_base + 0)#define gpio_b_dr *(volatile uword16 *)(gpiob_base + 1)#define gpio_b_ddr *(volatile uword16 *)(gpiob_base + 2)#define gpio_b_per *(volatile uword16 *)(gpiob_base + 3)void main (void){unsigned char min=0x58, sec=0x59, hr=0x09, dow=0x04, date=0x23, mon=0x10, yr=0x03; reset_spi(); gpio_b_dr = 0; // disble rtc - cs low gpio_b_dr = 0x0008; // enable rtc - cs high wbyte_spi(0x8f); // control register write address rbyte_spi(); // dummy read wbyte_spi(0); // disable write protect rbyte_spi(); gpio_b_dr = 0; // disble rtc - cs low gpio_b_dr = 0x0008; // enable rtc - cs high wbyte_spi(0x80); // select seconds register write address rbyte_spi(); // dummy read wbyte_spi(sec); // seconds register data rbyte_spi(); wbyte_spi(min); // minutes register rbyte_spi(); wbyte_spi(hr); // hours register rbyte_spi(); wbyte_spi(dow); // day of week register rbyte_spi(); wbyte_spi(date); // date register rbyte_spi(); wbyte_spi(mon); // month register rbyte_spi(); wbyte_spi(yr); // year register rbyte_spi(); gpio_b_dr = 0; // disble rtc - cs low while(1) { gpio_b_dr = 0x0008; // enable rtc - cs high wbyte_spi(0); // seconds register read address rbyte_spi(); // dummy read wbyte_spi(0); sec = rbyte_spi(); // read seconds register wbyte_spi(0); min = rbyte_spi(); // ditto minutes wbyte_spi(0); hr = rbyte_spi(); // and so on wbyte_spi(0); dow = rbyte_spi(); wbyte_spi(0); date = rbyte_spi(); wbyte_spi(0); mon = rbyte_spi(); wbyte_spi(0); yr = rbyte_spi(); gpio_b_dr = 0; // disable rtc - cs low } return;}//spscr//15 14 13 12 11 10 9 8 7 6 5 4 3 2 10// r msb sprf errie ovrf modf spte modfen spr1 spr0 sprie spmstr cpol cphaspe spitevoid reset_spi(){int val; spscr = 0x0096; // spr0, spmstr, cpha, spe spdsr = 0x0007; // 8-bit size spscr &= 0xfffd; // clear spe, resets spi (partial) spscr |= 0x0002; // set spe, new values take effect gpio_b_per = 0x00f3; // use gpiob3 as cs for rtc gpio_b_ddr = 0x000c; // direction is output}void wbyte_spi( unsigned char wbyte) // ------ write one byte -------{ while (!(spscr & 0x0200)); // wait for transmitter empty flag spdtr = wbyte;}unsigned char rbyte_spi(void) // -------- read one byte ----------{ while (!(spscr & 0x2000)); // wait for receiver full flag return(spdrr);}
半导体≠芯片:你真的了解半导体技术吗?
中软国际携手用友共赢企业服务新生态
TTS和ASR的概念区别!TTS的评判标准
BYD刀片及新品圆柱电池助力全球储能市场
ad如何生成gerber文件?操作方法解析
SPI RTC与摩托罗拉DSP接口
限制分脉冲放大(DPA)技术的多种因素分析
三星合并三家子公司 重组OLED面板生产
进程间与线程间的通信方式
2045年后你愿意跟机器人结婚吗
蒸馏也能Step-by-Step:新方法让小模型也能媲美2000倍体量大模型
StratoVirt中vCPU管理模块的组成及位置
百度DeepWay技术研发中心具备高速公路自动驾驶的各项功能
丰田牵手比亚迪和宁德时代 加速纯电动汽车研发
加速AI走深向实 携手昇腾共推产业新发展
iphone15是Type-C吗
丰田在锂电池领域的“重大突破”到底是什么?
科创板容百科技独立董事姜慧介绍、履历信息
一文带你了解400G QSFP-DD DR4光模块及连接方案
快速提升Wi-Fi网络体验的小技巧