
DSC/PSD/MCU
量子力学和生命科学
当代的电子科学技术都是建立在电磁场理论上的,已经用的差不多了。土木工程、机械,电子技术,互联网,越来越卷,因为没有新的理论突破,只是旧理论的工程实现。上几个时代的灵魂人物 牛顿、爱因斯坦、杨振宁等,在新的时代会再次出现吗?什么时候能出现?会在什么领域出现? 对此,我只能感觉到可能出现的领域:量子力学和生命科学。
活在当下,把电磁场理论用在某个领域,去赚取基本生活所必须的,然后总得有所追求,追求什么呢?自然是学习量子力学和生命科学,万一这两个领域在有生之年能被人类突破,那么我能及时的识别出来,那也就不枉此生了。
展开
-
ccs无法定位全局变量Could not find symbol XXX index
办法是删除该工程,重新导入。原创 2022-11-18 17:48:53 · 937 阅读 · 0 评论 -
line 49: error #135: expected a field name
line 56: error #135: expected a field name,这是说,上面这个结构体变量缺少域名。因为这个xx.c文件上面包含了一个头文件,该头文件中有个宏定义:#define ENABLE 0x1。所以在编译的时候 XIntruptRegs.XINT2CR.bit.ENABLE = 0;原因是ENABLE,被宏定义替代了。0这个位于没有被定义,所以报这个错。这说的是个啥意思呢?原创 2022-11-03 18:55:00 · 1912 阅读 · 0 评论 -
二次bootloader关于boot28.asm应用的注意事项,28035的
做BL的时候,主函数被改成了BLmian()boot28.asm中 LCR _SBLmain,如此带返回调用主函数,这句话运行结束后,SBLmain函数的返回值是个APP的入口地址放在ACC中,通过 LCR _exit 调用,最终将ACC中的主函数入口地址加载到PC中因此, _exit函数的内容要加到boot28.asm中,不然引用的_exit是库中的,没有上面这个过程,就无法完成跳转添加到boot28.asm中的代码如下:_exit:;-----------------------------------原创 2022-06-09 22:06:12 · 903 阅读 · 1 评论 -
GPIO内部上拉电阻有的默认上拉,有的默认不是上拉的
原创 2022-05-10 16:35:05 · 535 阅读 · 0 评论 -
F28035的CLA汇编指令算乘法的精度问题
两个数相乘,有下面两种实现办法: 实现1: MMOVF32 MR0, #200.001 MMPYF32 MR1, MR0, #15000.0 MMOV32 @_f32ClaTest1, MR1实现2: MMOVF32 MR2, #15000.0 ...原创 2022-04-07 18:08:59 · 1289 阅读 · 0 评论 -
电力电子技术基础(fundamentals of power electronics Robert W)第21章 PWM整流器,摘要部分
To obtain low ac line current THD, the passive techniques described in the previous chapterrely on low-frequency transformers and/or reactive elements. The large size and weight of theseelements are objectionable in many applications. This chapter covers原创 2022-04-06 08:02:39 · 1462 阅读 · 0 评论 -
定点DSP的浮点数操作耗时实验
以经典的F28035为例,对于习惯了浮点DSP的朋友来说,用定点DSP,刚开会感觉很烦人,算个数特别麻烦。特别是经常要计算小数,也就是浮点数,例如3.14*3.22,这样的计算在浮点DSP里面不是事儿,很快,但是在定点dsp里面,仅仅这个简单的乘法,就好消耗2us的时间,这样想完成一定功能的计算,那时间消耗多得让控制功能无法实现。但是如果在定点DSP里面进行浮点数的读取和赋值呢?这个会不会消耗很多时间呢?下面对一些列的情况做实验来具体看看,以加深印象。volatile float .原创 2022-03-31 11:21:06 · 2493 阅读 · 1 评论 -
滞后一秒钟的一阶低通滤波器
用于应对输入跳变到5.5V,让电源工作1s钟然后停机。原创 2022-03-11 18:10:00 · 1071 阅读 · 0 评论 -
TIC2000系列DSP在下载程序开始仿真的时候出现两个main.c文件
这是由于在下载程序选择.out文件的时候,选择的不是当前工程的out文件,而是另一个工程的。容易出现这种错误的原因是,由于版本原因,时常新建新的工程。每个工程的workspace不一样。原创 2022-03-03 18:09:55 · 453 阅读 · 0 评论 -
F28035的CLA任务执行时间测量
F28035的CLA无法操控IO口,但是可以操控PWM外设。我们常用IO口置位和清零的办法在CPU的中断函数中测试中断函数的运行时间。但是这个办法在CLA任务重不可行。同样思路,我们改成强制置位PWM输出的电平高低来实现CLA任务的执行时间测量。例如,配置函PWM5。然后再CLA任务开始的地方: MMOVF32 MR2, #1.0 ;把1给MR2 MF32TOI32 MR2, ...原创 2022-01-28 16:55:13 · 1903 阅读 · 1 评论 -
永磁同步电机的电流前馈道理
上图是永磁同步电机的dq坐标下的电路模型数学表达形式。1、2式右边的电压ud,uq是指加载电机UVW线上的电压对应的dq坐标轴电压。对于某一个时刻的指令电流iq*,id*,他们的的意思是,通过控制加在电机两端的ud,uq,要让1、2式的右边的电流iq和id(也就是电机实际电流在dq坐标上的值)等于iq*,id*。电机中的实际电流iq和id,是加在电机UVW线上的电压激发出来的。那么对于指令电流iq*,id*,需要多大的UVW线上的电压,才能激发出来呢?其实这是可以通过1、2式计算出来的。我们..原创 2021-11-25 20:27:18 · 4364 阅读 · 3 评论 -
C2000dsp库新的寄存器控制方式
//*****************************************************************************static inline voidSysCtl_enablePeripheral(SysCtl_PeripheralPCLOCKCR peripheral){ uint16_t regIndex; uint16_t bitIndex; //peripheral =0x1200 //SYSCTL_PERIPH_.原创 2021-11-24 17:28:57 · 597 阅读 · 0 评论 -
湖南进芯电子替代TIC2000的可能性
TI的28335和28035,等,是在没法办,能试试这家国产的吗?好歹是有苗头了。进芯片电子,现在种下的意尔康种子,将来也许能成事。原创 2021-11-08 09:51:10 · 1145 阅读 · 1 评论 -
F280049库函数API编程、直接寄存器控制编程和混合编程方法
TI最近两年出的C2000系列芯片,TI开始普遍采用driver lib 提供API的方式来操作处理器了。怎么适应TIC2000的API呢?其实看两篇TI的文档,就能很容易把习惯转变过来了。第一篇:F28004x_FRM_EX_UG.pdf位于C2000Ware_3_04_00_00\device_support\f28004x\docs中。大家需要转c2000ware。该文档一步一步教大家库函数API编程、直接寄存器控制编程和混合编程方法的工程建立方法。第二篇:F28004x Pe原创 2021-09-28 21:45:57 · 1474 阅读 · 2 评论 -
C2000在线升级主程序下载kernel完成后跳转到kernel运行的过程记录
在主程序下载kernel后,并且校验和对比无误,就跳入函数 boot_ram_loader();该函数运行结束后,程序就完成了从应用程序向kernel程序的跳转。跳转的机理是什么呢,此时要让PC装载kernel程序的入口地址,但是有不能直接装载。结束主程序的之前需要做一些准备工作,具体准备什么,我也不知道,进入kernel之前也要做一些准备工作,具体准备什么我也不知道。完了才能去触发kernel程序的入口地址装载到kernel。具体过程:boot_ram_loader();函数定义在如下原创 2021-09-08 11:16:08 · 717 阅读 · 0 评论 -
TI的片上固化好的boot ROM(上电引导加载程序)退出后的去向
TI对应的器件文档说的很清楚,如上文所示:对于每一个被选定的boot ROM程序,运行结束跳转的时候,一定是跳转到0x00,或者0x80000这两个位置。通常,我们的程序就放在FLASH,bootROM跳转到0x80000后,这个位置要有个跳转指令,做应用程序和boot ROM退出后的衔接处理。对应的就是F2837xD_CodeStartBranch.asm文件中的跳转函数:code_start: .if WD_DISABLE == 1 LB wd_disable ...原创 2021-08-31 12:26:09 · 953 阅读 · 0 评论 -
TIC2000调用API函数Flash擦除片上FLASH失败
最近遇到这个问题了,记录解决过程,https://bbs.elecfans.com/jishu_1937866_1_1.html待续原创 2021-08-04 14:35:34 · 955 阅读 · 0 评论 -
Fapi_StatusType Fapi_issueProgrammingCommand使用注意事项
extern Fapi_StatusType Fapi_issueProgrammingCommand( uint32 *pu32StartAddress, uint16 *pu16DataBuffer, uint16 u16DataBuffer...原创 2021-07-30 17:57:08 · 1507 阅读 · 0 评论 -
结构体变量的首地址获取注意事项
1.结构体变量的地址就是结构体的首地址2.结构体第一个成员的地址就是结构体的首地址要获取结构体变量的首地址,就是要获取结构体变量第一个元素的地址。例如:typedef struct { uint16 Kp; uint16 Ki; uint16 Kd;} spidPID; //定义一个结构体类型spidPID VarPID={1,2,3}; ...原创 2021-07-30 14:26:37 · 3070 阅读 · 1 评论 -
CCS编译 报警#190-D enumerated type mixed with another type
引用函数extern Fapi_StatusType Fapi_doMarginRead( uint32 *pu32StartAddress, uint32 *pu32ReadBuffer, uint32 u32Length, ...原创 2021-07-30 13:51:56 · 2963 阅读 · 0 评论 -
函数指针在坐标变换中的应用
坐标变换所需要的变量,坐标变换函数是强耦合的,在C语言中,为了模块化,和使用面向对象的思想。用结构体和函数指针来模拟类似C++的类和对象。C语言的结构体中,不会能有函数,但是可以有函数指针啊,他仍旧是个变量。但是可以用来调用函数,这样就让结构体也能调用函数了,多么像类和对象啊。坐标变换有四个函数,正着边有两个,反着变有两个,在此以Clarke坐标变换为例。首先坐标变换肯定属于软件工程文件里面的基本算法模块,那么模块化,就要定义个头文件和对应源文件装算法需要的所有数据和算数逻辑运算,定义algor原创 2021-07-21 11:00:38 · 326 阅读 · 0 评论 -
FALSH API在被调用执行的时候是可以被中断打断的
原创 2021-07-16 17:29:53 · 319 阅读 · 0 评论 -
使用F021_API_F2837xD_FPU32.lib 库函数遇到的问题 warning #10068-D: no matching section
例程用的挺好的,往自己的工程里面做flash参数读写的时候,在处理CMD文件过程中就出现问题了:编译后出现上述警告。对应的memory map 里面确实没有引入这个elib的二级制文件。"../cmd/2837xD_FLASH_CLA_lnk_cpu1.cmd", line 118: warning #10068-D: no matching section后来发现原因是:这个lib在cmd里面配置好了之后,除了基本的在工程配置里面需要有这个lib的链接配置外,还需要在工..原创 2021-07-16 09:25:30 · 2943 阅读 · 4 评论 -
28379D第四章的ROM Code and Peripheral Booting
本章讲解boot ROM 代码中的功能原创 2021-07-15 22:56:24 · 550 阅读 · 0 评论 -
TIC2000的CMD空间不够用error #10099-D
"../cmd/2837xD_FLASH_CLA_lnk_cpu1.cmd", line 79: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. placement with alignment/blocking fails fo原创 2021-06-02 15:08:48 · 1853 阅读 · 1 评论 -
如何提取复杂多引脚芯片的引脚编号及引脚名称
硬件设计对应有个引脚使用情况的使用表格,方便后面的硬件调试和编程以及交流使用。以TMS320F28379d为了。工具AD14首先得有TMS320F28379d的愿,原理图库元件。如下图所示:上面这个图的引脚号和名字导入到表格,要是手写,那极容易出错又浪费时间。打开原理图库,找到该元件点击编辑,如下图所示:点击菜单栏的reports-》components出现下图所示的报告文档:按住ctrl和alt,选择第一竖行,复制,就可以把283790d的所有引脚名称一次性复制原创 2021-04-08 10:37:45 · 1521 阅读 · 0 评论 -
模数转换芯片输出的补码数据在FPGA,dsp,MCU等中的处理
模数转换芯片,输出的数据,通常用SPI通信送到处理器当中。这些数据通常是一定位数的补码,转换芯片你是几位的,数据就是几位,通常用12位,14位,16位,18位,20位,22位,24位等。这些数据怎么在处理其中怎么用,还真是个问题。以24位的AD芯片输出的24位补码为例,一个24位的补码通过SPI到dsp中之后,我改用什么数据类型去结束存储他呢,我们知道这个数肯定是整数,只是可能是整数也可能是负数,且不管是整数还是负数,都不是原码,而是补码,首先如果dsp的整形数据是16位,那么这个24位的数据至原创 2021-01-21 17:48:10 · 859 阅读 · 0 评论 -
GPA遇到比较寄存器值在死区计数值附近时候的中断不产生情况
发现此时计数器TBCTR到死区计数器值就清零了,重新计数,永远到不了PRD寄存器的值,所以中断条件一直到不了。寻找原因中https://blog.youkuaiyun.com/zengxy3407/article/details/52606496?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_utm_term-2&spm=1001.2101.3001.4242C2000中ePWM模块间同步延时的问题...原创 2021-01-08 17:42:47 · 279 阅读 · 0 评论 -
EPWM12的使用遇到的坑
LTC2380IDE-24#PBF的CNV触发想用PWM12A,L两天没把这个PWM配置出来,很奇怪。发现忘了最基本的寄存器配置,另外GPIO22,配置成PWM12A后,在后面又有对它修改的语句应该注释掉的,却没有注释掉。强调一下两个寄存器的使用:GPyGMUX,GPyMUX一个是配置先后,一个是配置成那个外设要参考下表的内容:所以要使用EPWM12A,应该有: GpioCtrlRegs.GPAGMUX2.bit.GPIO22 = 1; // Configure as EP...原创 2021-01-13 09:23:31 · 957 阅读 · 2 评论 -
28777D/28379D双核flash在线离线运行问题
在线运行不能有IPCBootCPU2(0x0000000B);离线运行需要加上IPCBootCPU2(0x0000000B); // Send boot command to allow the CPU2 application to begin execution //if online operation,this function should be cancellation //if offline operation,this function should be E...原创 2020-12-11 10:52:02 · 950 阅读 · 0 评论 -
TMS320F28379d双核使用记录
C:\ti\controlSUITE\device_support\F2837xD\v210\F2837xD_examples_Dual\adc_epwm这个例程,设置生成flash编译,下载,不断电,直接运行,可以。但是断电重新上电运行就不可以。怀疑是CPU1的工程中没有对CPU2的启动代码,需要加入...原创 2020-12-10 12:23:41 · 2136 阅读 · 0 评论 -
C2000的CMD文件指定重复导致报错问题
28379d的CPU2工程建立过程中,遇到cmd文件中的内容重复指定问题。我的新建工程方法是,把需要的CMD,source,include文件都包含到原创 2020-12-08 15:31:45 · 392 阅读 · 0 评论 -
DELAY_US(1000*200)以及28379D双CPU运行GPIO配置问题
DELAY_US(1000*200);要在ram中运行,如果CMD是flash,那么就不能运行,需要放开flash copy 头RAM那段代码,这个在七年前遇到过,时间长了给忘了。现在又遇到了。 28379D双CPU运行时,GPIO 外设的配置是放在CPU1中的,因为GPIO外设寄存器的配置无需每个CPU都有控制权,如果CPU也要用GIPO作为输出输入口,那么让CPU1一下就行。 像这样的函数: GPIO_SetupPinMux(34,...原创 2020-12-08 14:07:00 · 711 阅读 · 0 评论 -
28379d双核使用索引
F2837xD Firmware Development Package这篇文档有将如何把双核用起来,可在ccs的view-》resource explorer找到也可用名字咋官网上搜索。原创 2020-12-07 11:03:08 · 450 阅读 · 0 评论 -
28379D等双核处理器的GPIO没有有注意到的地方
下面说明,GPIO被谁控制,需要通过GPIO外设的相关寄存器配置来实现,这个如果没有双核运行需求是不容易注意到的。原创 2020-12-04 17:57:26 · 576 阅读 · 0 评论 -
多个PWM模块同步问题
需要用到8个PWM模块,,配置出来后,发现发波不同步。下图是原因之一:在void InitPeripheralClocks(void)函数中, CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 0;这句话要置零,等待模块配置好了之后再置一。应该还有synchronization input (SYNCI)需要解决。...原创 2020-11-30 14:15:32 · 2174 阅读 · 0 评论