小菜鸟开始学习TMS320F28335
dsp吧
全部回复
仅看楼主
level 9
C飘落海 楼主
11月12日(Data Manual)
1. 哈佛结构:程序存储区与数据存储区分离,可以同时进行取代码和取数据,有两条总线:地址总线与数据总线,两条总线由程序存储器和数据存储器分时复用。
2. Little-Endian:小脚模式,高位字节存放在高地址,低位字节放在低地址
3. SARAM:是SingleAccess RAM的缩写,即通常所说的RAM。SARAM块译码非常灵活,上电时默认为既可以译码到程序空间,也可以译码到数据空间
4. MSPS--Million Samples per Second:转换速率(ConversionRate)是指完成一次从模拟转换到数字的AD转换所需的时间的倒数。积分型AD的转换时间是毫秒级属低速AD,逐次比较型AD是微秒级属中速AD,全并行/串并行型AD可达到纳秒级。采样时间则是另外一个概念,是指两次转换的间隔。为了保证转换的正确完成,采样速率(SampleRate)必须小于或等于转换速率。因此有人习惯上将转换速率在数值上等同于采样速率也是可以接受的。常用单位是ksps和Msps,表示每秒采样千/百万次(kilo / Million Samples per Second)
5. 芯片封装形式
A).LQFP: LQFP也就是薄型QFP(Low-profile Quad Flat Package)指封装本体厚度为1.4mm的QFP,QFP为四方扁平式封装技术(QuadFlat Package)
B). BGA:全称是Ball Grid Array(球栅阵列结构的PCB)
C). PBGA:封装(Plastic Ball Grid Array Package)
6. Inputsare not 5-V tolerant.
7. 内存映射(总存储空间为8M)
8. Protected意思是指“写跟读”保护。CPU的流水线的读周期在写周期前面,这使得“写跟读”操作的顺序变成了先读后写,容易产生混乱,“保护”使得“写跟读”依然是先写后读的顺序。
2014年11月12日 22点11分 1
level 9
C飘落海 楼主
11月13日
1. IEEE 754: IEEE二进制浮点数算术标准(IEEE 754)是最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。
2. F28335的总线结构:程序读取总线、数据读取总线和数据写入总线。程序读取总线由 22 条地址线路和 32 条数据线路组成。数据读取和写入总线由 32 条地址线路和 32 条数据线路组成。
3. 外设总线:16 条地址线路和 16 条或者32 条数据线路和相关控制信号组成的单总线
4. 从低功耗模式切换到工作模式,需要等待时间使得Flash稳定,从工作模糊切换到低功耗模式可立即切换,无需等待时间。
5. CSM:用户代码可以自由访问安全区域,可以调用存储在安全区域的函数,比如:主函数在非安全区域,中断服务函数放在安全区域。
6. 当代码运行在非安全区域中时,没有匹配安全密码,只有CPU可以取安全区域代码操作,不能读写安全区域数据;当代码已经运行在安全区域中时,没有匹配安全密码,CPU可以访问任何空间,JTAG不能访问安全区域数据;当匹配安全密码或没有加密 (密码全为1)时,CPU和JTAG可以访问任何空间。
7. 即使没有加密,在复位后仍然必须假读密码区域,这样做之后才能访问安全区域。
8. GPIO:可以配置成PWM的引脚,默认不使用上拉电阻。
9. 当两个引脚被配置连接到同一外设时,引脚状态恢复默认值,并且都不与外设连接。
10. 引脚“滤波”模式选择为异步方式(11)时,只能作为与外设相连时使用,当选择为IO时,即使配置成异步,CPU也会处理成与系统时钟同步。
11. 复位(中断)向量一直从BootRom中取。
2014年11月13日 23点11分 2
level 9
C飘落海 楼主
11月14日
1. 数据区地址总线为32位(地址空间为4G),程序区地址总线为22位(地址空间为4M),并且数据宽度为16 bits。
2. 6条总线:PAB程序地址总线(22-bit),DRAB读数据地址总线(32-bit),DWAB写数据地址总线(32-bit),PRDB读程序数据总线(32-bit),DRDB读数据数据总线(32-bit),DWDB写数据数据总线(32-bit)
3. 数据宽度为16-bit,数据总线为32-bit,因此数据在存取时以偶字对其,若是从奇字开始,则向前取偶字。程序区不存在偶字存储的约定。此现象与8086类似,数据总线为16-bit,内存单元的数据宽度为8-bit。
2014年11月15日 00点11分 3
level 11
楼主,有28335的视频教程吗?求一份,小弟在此写过[吐舌]
2014年11月15日 17点11分 4
我认为还是看数据手册比较透彻[酷]
2014年11月16日 22点11分
回复C飘落海:主要编程的思路还是掌握不好,和单片机差别太大了
2014年11月17日 12点11分
回复z朱邪铁勒:多看看例程呗[酷]
2014年11月17日 23点11分
回复C飘落海:就是找不到好的例程!
2014年11月18日 00点11分
level 8
赞一个一起学
2014年11月16日 04点11分 5
OK[酷][酷][酷]
2014年11月16日 22点11分
level 9
C飘落海 楼主
11月15日
1. Flash地址范围 0X30 0000 ~ 0X33 FFFF 共256K×16
OTP Memory地址范围 0X38 0400 ~0X38 0800 共1K×16
2. 从低功耗模式到高功耗模式需要等待时间使得Flash/OTP稳定,从高功耗到低功耗可以立即实现无需等待时间
3. 时钟相关:外设时钟使能到稳定需要两个系统周期
2014年11月17日 11点11分 6
level 9
C飘落海 楼主
11月17日
1. C28X内核构成:CPU,仿真逻辑,内存信号接口,时钟与控制信号接口,复位与中断信号接口,仿真信号。
2. C28XCPU特点:受保护的流水线,独立的寄存器空间,ALU,地址逻辑单元,乘法器,移位寄存器。
3. 20个寄存器:XAR0~7,SP,DP,ST0,ST1,IER,IFR,DBGIER,PC,RPC,ACC,P,XT。
4. SP向上增长型,栈空间最大为64K。32-bit读堆栈中数据时会有偶字校准,写入堆栈时没有偶字校准
2014年11月17日 11点11分 7
level 6
楼楼,自动化专业的,表示下学期开始dsp学习,能分享下资料吗?
2014年11月19日 01点11分 10
我的资料基本都是英文的[酷]
2014年11月19日 14点11分
level 9
C飘落海 楼主
11月19日
1. 指令流水线:
F1:驱动取指令的地址总线PAB
F2:a.读程序数据总线PRDB,获得指令b.并插入指令队列
D1:a.识别队列中指令的边界,b.决定下一条指令的长度,c.检验指令是否合法。
D2:a.如果需要读数据则产生读数据的地址线
b.如果需要写数据则产生写数据的地址线
c.修改SP,ARP,辅助寄存器
d.如果程序产生分支,则转向分支
R1:驱动读数据的地址总线
R2:读数据总线获取数据
E:进行各种运算,运算所需的数据在此阶段开始时从寄存器读入,结果在此阶段结束时写入寄存器
W:将数据写入内存(DWAB,DWDB)
2. 并不是每条指令都要经过这所有8个阶段,可能只经过其中的几个阶段
3. 指令插入指令队列,下一条指令地址才进入FC
2014年11月20日 10点11分 11
level 9
C飘落海 楼主
11月20日
1. 指令的流水线保护仅仅保护读写寄存器和读写数据区的数据,不保护程序区的读写。
2. 特定区域有写后紧跟读保护,使得只有在写数据完成后才能进行读数据。
3. 四种基本寻址方式:直接寻址,间接寻址,堆栈寻址,寄存器寻址
4. 直接寻址只能寻址低4M的空间
5. 寄存器寻址
2014年11月21日 23点11分 12
level 9
C飘落海 楼主
11月24日
1. 精简指令可以在一个机器周期中执行一条指令。
2. DP,SP都是针对数据存储区的操作,DP把数据区低4M区域分为65536个页,每页64 bytes,SP是在数据存储区建立软件堆栈,并且只能在数据存储区的低64K
3. ST0、ST1
15~10 9~7 6 5 4 3 2 1 0
OVC PM V N Z C TC OVM SXM
4. 取指令结构每次都从程序存储区取32位,要么是一条32位指令,要么是两条16位指令。
5. Thus,if the first instruction after a discontinuity is at an odd address and has 32bits, two fetches are required to get the entire instruction.
6. C28x指令
AMODE=0
8-Bit Decode "loc16/loc32"Syntax
直接寻址(DP)
0 0 III III @6bit
堆栈寻址
0 1 III III *?SP[6bit]
1 0 111 101 *SP++
1 0 111 110 *??SP
间接寻址
1 0 000 AAA *XARn++
1 0 001 AAA *??XARn
1 0 010 AAA *+XARn[AR0]
1 0 011 AAA *+XARn[AR1]
1 1 III AAA *+XARn[3bit]
Circular Indirect Addressing Modes(XAR6, XAR1):
1 0 111 111 *AR6%++
寄存器寻址
1 0 100 AAA @XARn
1 0 101 001 @ACC
1 0 101 011 @P
1 0 101 100 @XT
1 0 100 AAA @ARn
1 0 101 000 @AH
1 0 101 001 @AL
1 0 101 010 @PH
1 0 101 011 @PL
1 0 101 100 @TH
1 0 101 101 @SP
2014年11月26日 12点11分 13
level 9
C飘落海 楼主
11月26日
1. C语言编程来改变寄存器的值,51中,通过预编译头文件,然后可以直接使用寄存器名,有两种方式操作28335中的寄存器: a.使用
#define 宏定义 如:#
define GPADAT (volatile Uint32*)0x6FC0此时GPADAT就是地址0x6FC0,如果要改变GPADAT寄存器的值可通过如下语句: *GPADAT = 0x1234;此种方法的优点是简单明了可直接使用寄存器名,缺点是无法直接对寄存器中某个特定位进行修改 b.使用寄存器文件结构和位域定义的方式操作寄存器
2. 寄存器文件结构使得可以直接操作寄存器,位域可以操作独立的位。
3. Use a shadow register andenable the compiler's optimizer使用副本寄存器并且允许代码优化可以在程序可读性和代码长短直接取得平衡。
4. 对同一个寄存器里的不同位进行顺序读写,没有write-followed-read保护
5. 对于寄存器中有写1清零的位,在改变其他无关位时也可能改变此位
2014年11月26日 15点11分 14
level 1
ST0和ST1的功能是什么啊
2015年07月04日 01点07分 15
状态寄存器啊
2015年07月04日 01点07分
level 12
加油
2015年07月06日 00点07分 16
level 8
兄弟,学的如何,怎么入门啊?
2015年07月14日 02点07分 17
level 3
楼主还在吗[呵呵]我想请教一下关于AD转换后怎么输出的问题[乖]
2016年07月18日 02点07分 18
直接读输出寄存器就可以了啊
2016年07月24日 01点07分
level 4
楼主是不是放弃了???
2016年07月18日 06点07分 19
没有,之前控制电机用的是28335,不过现在用570的芯片了
2016年07月24日 01点07分
@C飘落海 你好,我原来没有接触过控制。现在需要用28335来控制直流电机,请问该如何入手呢?现在买了一块板子
2017年09月06日 11点09分
@九羊猎豹 有刷还是无刷啊,你买的板子有电机的驱动电路吗?建议把28335的ADC CAP PWM模块看明白了在开始调
2017年09月11日 01点09分
@C飘落海 有刷电机。没有驱动吧,需要再买驱动模块。现在再看pwm 感觉好乱啊看的,,,,
2017年09月16日 13点09分
level 7
哈哈
2016年07月24日 03点07分 20
level 13
凌霄宝殿,刘备看着玉皇大帝。
玉皇大帝轻抚着雌雄双股剑,感慨道:“当初,我给你这把本命神兵时,根本没指望你能把它们成长多少……毕竟,你当时只是个卖草席的,没有多少钱买材料。
他深深凝视着刘备,发现自己真是看不透他了。
玉皇大帝摇了摇头,“没想到,你竟然能把它练到到了这个地步,甚至已经有了轩辕剑的九成威能!……和轩辕剑相比,只差那一线!”
刘备依旧不言语,只是静静地等玉皇大帝说完。
“厉害!厉害呀!”弃火啧啧赞叹,“要是能再提升,那岂不是又一柄绝世好剑?”
刘备沉默。这些,他都知道。“不过……”玉皇大帝话锋一转,“想要突破这最后一线,难,太难了!……你的剑,融会了你的五条最强之道,所以需要用五种本元神焰炼制几十年,才能成为轩辕剑一样的存在。”
玉皇大帝看向刘备,却发现他的神情没有什么变化。
玉皇大帝忍不住说道,“这五种神焰,分别是水晶焰,混元焰,风落焰,天星焰和西斯焰。……除了第一种我有,剩下四种都极为罕见难得,连你祖宗刘邦都不曾拥有!!……你明白吗?”
刘备冷冷地看着玉皇大帝,缓缓开口道,“后四种,我都有。……只差第一种了。”
玉皇大帝一下呆住了。
怎么可能!?
那四种神焰……他怎么会有!?难道是孔明?
玉皇大帝抬起头,忍不住问道,“你来我这里就是为了水晶焰?”
刘备点点头,说道:“不错,我来就是为了水经验。
2017年09月14日 13点09分 21
1