OMAPL多核异构通信驱动AD9833-Notify组件demo OMAPL多核通信有三个主要机制,Notify,MessageQ,RegionShare;这里主要利用了Notify机制进行通信控制. 要做一个什么实验? 简单的说,ARM跑一个界面上面有一些按钮,DSP负责驱动AD9833产生正弦.方波和三角波,写入频率信息.这个实验结构是一个经典的单向的传输结构,由用户触发ARM跑的界面上的按钮,发出消息通知DSP,DSP控制AD9833产生波形,写入频率字等信息. 那么ARM的Linux端首…
基于OMAPL138的Linux字符驱动_GPIO驱动AD9833(一)之miscdevice和ioctl 0. 导语 在嵌入式的道路上寻寻觅觅很久,进入嵌入式这个行业也有几年的时间了,从2011年后半年开始,我清楚的记得当时拿着C51的板子闪烁了LED灯,从那时候开始,就进入到了嵌入式的大门里面.嵌入式的学习从来没有停止过,中间也有无数的插曲和机缘巧合学会C++和Java,做一些好玩的应用.无论是嵌入式DSP也好,还是如今的嵌入式ARM,7年之久从来没有停止过.技术最大的好处就是,无论发展到什…
DSP+ARM多核异构开发环境搭建OMAPL138 注意: 环境为Ubuntu 12.04 只能是这个环境.我甚至在Ubuntu16.04上面安装了VMware,然后,在装了一个Ubuntu 12.04 x86版本. 导语与感想 OMAPL138属于多核异构平台(DSP+ARM),多核通信是多核异构平台的精髓部分,目前市面上流行的还有ZYNQ平台(FPGA+ARM),同样通信机理复杂.德州仪器OMAPL138和Davinci使用一样的多核通信机理. 这个机制相当复杂,又要懂Linux,又要会调试…
DAC是STM32系列的一个基本外设,可以将数字信号转化成模拟信号,这次我将使用DAC来输出一个特定波形. 首先确定工作方法,由于我目前在做的简易示波器在输出波形的同时还需要显示输入信号,所以不能占用太多CPU时间,于是就选用了基于DMA的ADC. 使用DMA只需告诉DMA外设它要怎么搬移数据就可以处理其他事. 首先定义一下 #define DAC_DHR12R1    (u32)&(DAC->DHR12R1)   //DAC DATA buff 作为DMA的外设数据地址 首先是初始化输出管…
基于OMAPL138的字符驱动_GPIO驱动AD9833(三)之中断申请IRQ 0. 导语 学习进入到了下一个阶段,还是以AD9833为例,这次学习是向设备申请中断,实现触发,在未来很多场景,比如做用户级的SPI传输完毕数据之后,怎么知道从设备要发数据呢,则需要一个IO信号通知主设备来读从设备的数据,那么就需要一个外部的IO中断信号,所以呢,对于中断的处理十分重要,本demo实现这样的一个功能增加一个GPIO口,这个GPIO口接的是一个按键,通过触发信号,进入中断服务函数,在中断服务函数内改变A…
基于OMAPL138的Linux字符驱动_GPIO驱动AD9833(二)之cdev与read.write 0. 导语 在上一篇博客里面,基于OMAPL138的字符驱动_GPIO驱动AD9833(一)之ioctl 中使用#include <linux/miscdevice.h>中的miscdevice机制,在呢篇博客中使用宋宝华的Linux驱动设备中提供的cdev机制完成注册, 根据参考文献[1]中所说: misc设备其实也是字符设备,主不过misc设备驱动在字符设备的基础上又进行了一次封装,使…
一.简介       DDS技术最初是作为频率合成技术提出的,由于其易于控制,相位连续,输出频率稳定度高,分辨率高, 频率转换速度快等优点,现在被广泛应用于任意波形发生器(AWG).基于DDS技术的任意波形发生器用高速存储器作为查找表,通过高速D/A转换器来合成出存储在存储器内的波形.所以它不仅能产生正弦.余弦.方波.三角波和锯齿波等常见波形,而且还可以利用各种编辑手段,产生传统函数发生器所不能产生的真正意义上的任意波形. 二.原理     根据傅立叶变换定理可知,任何周期信号都可以分解为一系列…
撰文 |懂懂 编辑 | 秦言 来源:懂懂笔记 "华为不会让消费者失望."华为消费者业务CEO余承东在P50系列发布会上如是说. 今年4月美国对华为第四轮制裁以来,华为终端产品无缘5G,即使是在这样的重压之下,华为还是倔强地交出一份旗舰手机的高分答卷--P50 系列.分别采用麒麟9000和高通888,都是当前最高级别的芯片,辨识度极强的万象双环设计,影像全新升级包括首次提出原色双影像单元概念以及全新的XD Optics计算光学系统,出厂预装以全场景体验设计为核心HarmonyOS 2 -…
(DDS)正弦波形发生器--幅值.频率.相位可调(二) 主要关于调相方面 一.项目任务: 设计一个幅值.频率.相位均可调的正弦波发生器. 频率每次增加10kHz 相位每次增加 PI/2 幅值每次增加两倍 ROM的深度为1024.宽度为8 二.文章内容: 完成调相模块并验证功能 完成调幅模块 按结构图来连接各个模块并仿真验证 1.调相 从图像上来理解调整相位就是原函数在X轴上进行水平移动. 在本项目中函数的波形图按照顺序存在ROM中,我们只要按照比例调整读取ROM的地址,即可调相. 前文中我们使用…
(DDS)正弦波形发生器--幅值.频率.相位可调 一.项目任务: 设计一个幅值.频率.相位均可调的正弦波发生器. 频率每次增加1kHz. 相位每次增加 2*PI/256 幅值每次增加两倍 二.文章内容: DDS的核心原理. 分别使用两种方式完成频率可调(a.b),并且进行对比(c),最后对b进行优化(d). 完成赋值.频率.相位可调的正弦波形发生器.(文章二) 1.DDS核心原理: 读取ROM中存储的波形数据获得一个基础波形(基频),之后不断进行循环读取. 幅值--ROM中取得数据使用乘法进行放…