共2条
1/1 1 跳转至页
msp430f149,At45db041 紧急求救 msp430f149与At45db041怎么连接?!!!!
问
是不是必须加上拉电阻?
我用MSP430f149的usart0(P3.1,P3.2,P3.3)直接连AT45DB041的SI SO SCK三个管脚,单片机总是接收不到任何数据,这是怎么回事?是不是必须接上拉电阻?
另外关于F149的USART有没有例程?读写时序到底是怎么回事?我看了胡大可的书没看明白,能否请刘工给解释解释。
下面是我编的测试程序,请帮我看看错在什么地方,为何不能通信:
#include "MSP430x14x.h"
ORG 200H
TABLE DB 084H,00H,00H,00H,0A1H,0A2H,0A3H,0A4H,0A5H
DB 0A6H,0A7H,0A8H
TABLE1 DB 083H,00H,00H,00H,01H,01H
TABLE2 DB 0D4H,00H,00H,00H,00H,00H,00H,00H,01H
ORG 220H
OUT_TABLE DS 00EH
ORG 0F100H
MAIN MOV #300H,SP
TEST_OF BIC.B #OFIFG,&IFG1
BIT.B #OFIFG,&IFG1
JNZ TEST_OF
BIS.B #(DIVA0+RSEL2+RSEL0),&BCSCTL1
BIC.B #WDTIE,&IE1
BIC.B #WDTIFG,&IFG1
MOV #(WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1),&WDTCTL
RETEST BIT.B #WDTIFG,&IFG1
JNC RETEST
BIC.B #OFIFG,&IFG1
BIS.B #SELM0,&BCSCTL2
BIC.B #XTS,&BCSCTL1
BIC #OSCOFF,SR
MOV #(WDTPW+WDTHOLD),&WDTCTL
BIS.B #0EH,&P3SEL
BIS.B #040H,&ME1
BIS.B #(CHAR+SYNC+MM),&UCTL0
BIS.B #STC+SSEL1, &UTCTL0
MOV.B #040H,&UBR00
MOV.B #0DH,&UBR10
MOV.B #0,&UMCTL0
MOV.B #12,R4
CLR.B R5
TEST1_TX BIT.B #UTXIFG0,&IFG1
JZ TEST1_TX
MOV.B TABLE(R5),&U0TXBUF ;将TABLE的内容写入at45的寄存器1
INC.B R5
DEC.B R4
JNZ TEST1_TX
MOV.B #4H,R4
CLR.B R5
TEST3_TX BIT.B #UTXIFG0,&IFG1
JZ TEST3_TX
MOV.B TABLE2(R5),&U0TXBUF ;将读at45寄存器1的命令发给at45
INC.B R5
DEC.B R4
JNZ TEST3_TX
MOV.B #8,R4
CLR.B R5
TEST4_TX BIT.B #UTXIFG0,&IFG1
JZ TEST4_TX
MOV.B #00,&U0TXBUF
TEST_RX BIT.B #URXIFG0,&IFG1
JZ TEST_RX
MOV.B &U0TXBUF,OUT_TABLE(R5);将接收的at45的数据存入out_table
INC.B R5
DEC.B R4
JNZ TEST4_TX
ORG 0FFFEH
DW MAIN
END 答 1: 我想问:这个串行的东东读写速度有多快啊? 资料说写周期为10MS,太慢了吧! 答 2: 提几点建议:
1、CS端不能直接接地,它的下降沿启动操作,上升沿停止,应加一控制线于此口。
2、430和At45db041的发送都是高位在前,别搞反了。
3、At45db041的数据是在时钟的上升沿移入下降演移出,对于430这变应选择CKPH=CKPL=0.
4、注意WP端。
5、接收是由空发送产生时钟信号,来起动的。SPI每发送一个数都同时收到一个数,注意这里的逻辑关系。 答 3: 用430自带的同步串行口(SPI串行通讯)可以实验这个功能吗? 答 4: 非常感谢刘工,问题已经解决,确实是cs端的问题,我原来直接接地了
我用MSP430f149的usart0(P3.1,P3.2,P3.3)直接连AT45DB041的SI SO SCK三个管脚,单片机总是接收不到任何数据,这是怎么回事?是不是必须接上拉电阻?
另外关于F149的USART有没有例程?读写时序到底是怎么回事?我看了胡大可的书没看明白,能否请刘工给解释解释。
下面是我编的测试程序,请帮我看看错在什么地方,为何不能通信:
#include "MSP430x14x.h"
ORG 200H
TABLE DB 084H,00H,00H,00H,0A1H,0A2H,0A3H,0A4H,0A5H
DB 0A6H,0A7H,0A8H
TABLE1 DB 083H,00H,00H,00H,01H,01H
TABLE2 DB 0D4H,00H,00H,00H,00H,00H,00H,00H,01H
ORG 220H
OUT_TABLE DS 00EH
ORG 0F100H
MAIN MOV #300H,SP
TEST_OF BIC.B #OFIFG,&IFG1
BIT.B #OFIFG,&IFG1
JNZ TEST_OF
BIS.B #(DIVA0+RSEL2+RSEL0),&BCSCTL1
BIC.B #WDTIE,&IE1
BIC.B #WDTIFG,&IFG1
MOV #(WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1),&WDTCTL
RETEST BIT.B #WDTIFG,&IFG1
JNC RETEST
BIC.B #OFIFG,&IFG1
BIS.B #SELM0,&BCSCTL2
BIC.B #XTS,&BCSCTL1
BIC #OSCOFF,SR
MOV #(WDTPW+WDTHOLD),&WDTCTL
BIS.B #0EH,&P3SEL
BIS.B #040H,&ME1
BIS.B #(CHAR+SYNC+MM),&UCTL0
BIS.B #STC+SSEL1, &UTCTL0
MOV.B #040H,&UBR00
MOV.B #0DH,&UBR10
MOV.B #0,&UMCTL0
MOV.B #12,R4
CLR.B R5
TEST1_TX BIT.B #UTXIFG0,&IFG1
JZ TEST1_TX
MOV.B TABLE(R5),&U0TXBUF ;将TABLE的内容写入at45的寄存器1
INC.B R5
DEC.B R4
JNZ TEST1_TX
MOV.B #4H,R4
CLR.B R5
TEST3_TX BIT.B #UTXIFG0,&IFG1
JZ TEST3_TX
MOV.B TABLE2(R5),&U0TXBUF ;将读at45寄存器1的命令发给at45
INC.B R5
DEC.B R4
JNZ TEST3_TX
MOV.B #8,R4
CLR.B R5
TEST4_TX BIT.B #UTXIFG0,&IFG1
JZ TEST4_TX
MOV.B #00,&U0TXBUF
TEST_RX BIT.B #URXIFG0,&IFG1
JZ TEST_RX
MOV.B &U0TXBUF,OUT_TABLE(R5);将接收的at45的数据存入out_table
INC.B R5
DEC.B R4
JNZ TEST4_TX
ORG 0FFFEH
DW MAIN
END 答 1: 我想问:这个串行的东东读写速度有多快啊? 资料说写周期为10MS,太慢了吧! 答 2: 提几点建议:
1、CS端不能直接接地,它的下降沿启动操作,上升沿停止,应加一控制线于此口。
2、430和At45db041的发送都是高位在前,别搞反了。
3、At45db041的数据是在时钟的上升沿移入下降演移出,对于430这变应选择CKPH=CKPL=0.
4、注意WP端。
5、接收是由空发送产生时钟信号,来起动的。SPI每发送一个数都同时收到一个数,注意这里的逻辑关系。 答 3: 用430自带的同步串行口(SPI串行通讯)可以实验这个功能吗? 答 4: 非常感谢刘工,问题已经解决,确实是cs端的问题,我原来直接接地了
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |