搜索
bottom↓
回复: 141

用STM32内置的1MspsADC进行数据采样,并通过ENC28J60以太网接口发送到PC上波形显示,实

[复制链接]

出0入0汤圆

发表于 2007-12-2 19:57:51 | 显示全部楼层 |阅读模式
几周来学习STM32的阶段性成果:用STM32内置的1MspsADC进行数据采样,并通过ENC28J60以太网接口发送到PC上波形显示,实现低频示波器功能,在这里特别感谢下GRANT兄:)

--------------------------------------------

    做一个数字采样示波器一直是我长久以来的愿望,不过毕竟这个目标难度比较大,涉及的方面实在太多,模拟前端电路、高速ADC、单片机、CPLD/FPGA、通讯、上位机程序、数据处理等等,不是一下子就能成的,慢慢一步步来呗,呵呵,好歹有个目标,一直在学习各方面的知识,也有动力:)
   由于高速ADC涉及到采样后的数据存储问题,大量的数据涌入使得单片机无法承受,因此通常需要用外部高速RAM加CPLD配合,或者干脆用大容量的FPGA做数据存储处理等,然后通知单片机将数据发送出去。这部分实在是难度比较大,电路非常复杂,自己是有心无力啊,还得慢慢地技术积累。。。
    正好ST新推出市场的以CORTEX-M3为核心的STM32,内部集成了2个1Msps 12bit的独立ADC,并且内部高达72MHZ的主频,高达1.25DMIPS/MHZ的处理速度,高速的DMA传输功能,灵活强大的4个TIMER等等,这些真是非常有吸引力,何不用它来实现一个低频的数字示波器功能呢,我的目标是暂时只要定量定性地分析20KHZ以下的低频信号就行了,目标不高吧,用STM32可以方便地实现,等有了一定经验之后慢慢再用FPGA和高速ADC搞个100Msps采样的示波器!
    说来也真是幸运,得到了GRANT兄相赠的STM32F103VB以及评估版的电路板,这些日子一直在学习STM32,不断地做实验,也算是稍微有点入门了,真是了解越多越喜欢这个芯片,呵呵。

    想来这个论坛上对数据采样以及数字示波器感兴趣的朋友很多,下面我简单描述下实现方式,发帖也跟大家分享下我的喜悦:)
1、ADC转换:STM32增强型芯片内置的2个独立ADC,可以有16个通道,并且2个通道可以并行的同步采样,触发方式很灵活,可以通过TIMER以及外部电平等方式触发,并行方式下ADC2自动同步于ADC1;ADC在最高速采样的时候需要1.5+12.5个ADC周期,在14M的ADC时钟下达到1Msps的速度,因为我主频是72M所以4分频后稍微高了点,18MHZ的ADC时钟,采样速度应该高于1M了。ADC 采样2路同时采样方式,用TIM2 CC2来生成时钟信号触发ADC来实现指定频率的采样。ADC1/ADC2采样的结果是一个word
2、采样频率控制:由于STM32内部的4个TIMER非常强大,每个TIMER又有4个通道,再加上独立的预分配器,实际上可以实现任意分频,因此用TIM2 CC2来产生指定频率的时钟,用来触发ADC1连续采样。
3、采样数据传输及每次采样深度控制:ADC产生的转换数据通过高速DMA 通道1来传输置指定的内部RAM中,并且将DMA通道一设置成最高优先级,以保证数据准确,并且用DMA每次传输的个数来控制采样的深度,例如我要采集100个点那么就设置DMA传输100个次,每次从32位ADC转换寄存器传输一个word到RAM中,等完成了100次传输后,DMA通道自动停止(实际上ADC是一直按照要求的采样频率连续在后台采样,只是我去取数据而已),下次采集的时候我只要再设置下采样的个数使能DMA CHANNEL1就行了。
4、与上位机通讯:通讯也是个难题,要达到快速地将大量数据发给上位机的目的,传输的速率肯定低不了,开始我想先用串口,不过很快就放弃了,一则即使我用外部USB转串口的芯片最高也只能达到1M的速度,并且数据会丢失; 后来还是采用了网络传输的方式,用SPI 接口的ENC28J60芯片,这个芯片我在MEGA32和AT91SAM7S64上都用过,接口简单挺方便的,速度还可以,在SAM7S64上DMA凡是用UDP协议单向发送的速度可以达到400KB/S以上,这次用了STM32发现速度大增,经过我用STM32的DMA传输后,同样UDP协议单向发速度竟然达到了500KB/S以上,甚至最高可以达到600KB/S,这个真是意外的收获。
5、上位机程序:还是用VS2005,我还是喜欢用C#,主要是微软的C#做得是在太舒服了,编辑器智能化程度真高,我只要刚刚输个开头的字母,马上就感知出来一堆让你选择,连挨个敲字符的功夫都省了,还不用担心拼写出错到时候找原因的麻烦,呵呵,缺点就是程序执行时候CPU利用率要高点,什么时候它的C++编辑器也到这个程度我就换回C++,哈哈。波形显示还是用NI的measurementStudio8来实现,一个是漂亮方便,另外最要紧的就是MeasurementStudio8里面有一大堆数据处理的库,从简单的波形有效值计算,频率计算,到各种各样的函数滤波器功能,还有FFT频域分析,时域分析等等,但凡要用到的仪器相关处理里面都有,另外本来我打算要在模拟前端里面加一个相位锁定的电路,以固定显示的波形起点,后来发现MeasurementStudio8里面有个PeakDetector的类,用这个来实现波形的锁定连这个电路都可以省了。用MeasurementStudio8来实现实在是非常方便,并且准确。只是我没啥资料,还在探索当中

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2007-12-2 20:00:24 | 显示全部楼层
显示的界面及部分照片






    照片上的液晶屏是我的信号发生器的显示,显示信号的真有效值和频率。
    数据采样后输出到PC上显示的图形很精确,包括MAX038产生的正弦波上部的小尖峰也很清楚,STM32的ADC精度很稳定性相当好,对于音频范围的低频信号来说,1Msps的采样也基本够用了。只要采集足够的点送给measurementsudio提供的函数来分析,可以达到非常精确的程度,12BIT的分辨率相当于数字表的3位半的效果,用来测试信号的频率、真有效值、峰值、峰峰值等等非常方便和精确,和我用硬件实现的频率计和真有效值的读数相同(这也说明了我做的信号发生器的硬件是准确的,哈哈,之前跟数字表总对不上,看来是数字表准确度差),实现完全可以当作低频示波器来用,再加上个模拟前端电路,完全可以实用化了

出0入0汤圆

 楼主| 发表于 2007-12-2 20:05:40 | 显示全部楼层
上位机的程序还处在对于measuremenStudio的摸索当中,只是初步了解到了几个函数,用它来实现数据处理实在是方便,look
public void DataReceived_Proc() //UDP数据接收、数据处理、数据显示函数
        {
            
            try
            {
                while (bStates)
                {
                    
                    myudpcomm.Receive(ref CommReceiveBuffer);
                    Received_Command = Bytes2Struct(ref CommReceiveBuffer);
                    //textBox3.Text = Received_Command.SampleRate.ToString() + (acEstimate++).ToString();
                    dADC1_Result = new double[Received_Command.SampleDepth];
                    dADC2_Result = new double[Received_Command.SampleDepth];
                    //数据处理,将通讯接收区中的ADC数据传入绘图用数组中
                    for (int i = 0; i < (int)(Received_Command.SampleDepth); i++)
                    {
                        dADC1_Result = (BitConverter.ToUInt16(CommReceiveBuffer, 40 + 4 * (i + 0))) * (3.3 / 4096.0);
                        dADC2_Result = (BitConverter.ToUInt16(CommReceiveBuffer, 40 + 4 * (i + 0) + 2)) * (3.3 / 4096.0);
                    }

                    str = "通道A(绿色)\r\n";
                    //测试真有效值
                    Measurements.ACDCEstimator(dADC1_Result, out acEstimate, out dcEstimate);//交流(AC方式相当于信号通过一个电容隔直后进行测量)和直流(DC直通方式进行测量)真有效值测量
                    str += "AC方式有效值:" + ((int)(acEstimate * 1000)).ToString() + "mV   " + "DC方式有效值" + ((int)(dcEstimate * 1000)).ToString() + "mV\r\n";
                    //测试信号频率、振幅Vp
                    mySingleToneInformationADC1 = new SingleToneInformation(dADC1_Result, Received_Command.SampleRate);
                    str += "频率:" + ((int)(acEstimate * 1000)==0 ? 0:(int )mySingleToneInformationADC1.Frequency).ToString() + "Hz   " + "振幅Vp:" + ((int )mySingleToneInformationADC1.Amplitude*1000).ToString() + "mV\r\n";

                    str += "\r\n通道B(红色)\r\n";
                    //测试真有效值
                    Measurements.ACDCEstimator(dADC2_Result, out acEstimate, out dcEstimate);//交流(AC方式相当于信号通过一个电容隔直后进行测量)和直流(DC直通方式进行测量)真有效值测量
                    str += "AC方式有效值:" + ((int)(acEstimate * 1000)).ToString() + "mV   " + "DC方式有效值" + ((int)(dcEstimate * 1000)).ToString() + "mV\r\n";
                    //测试信号频率、振幅Vp
                    mySingleToneInformationADC2 = new SingleToneInformation(dADC2_Result, Received_Command.SampleRate);
                    str += "频率:" + ((int)(acEstimate * 1000) == 0 ? 0 : (int)mySingleToneInformationADC1.Frequency).ToString() + "Hz   " + "振幅Vp:" + ((int)mySingleToneInformationADC1.Amplitude * 1000).ToString() + "mV\r\n";
                    textBox3.Text = str;
                    
                    //ThresholdPeakDetector.Analyze用来找出从波谷到波峰上升沿顶点的数组序号
                    //可以用于固定显示波形从上升沿的某固定点开始,相当与硬件的同步触发电路功能
                    //b = ThresholdPeakDetector.Analyze(dADC2_Result, 2, 10);
                    //foreach (int k in b)
                    //{
                    //    textBox3.Text += k.ToString() + " ";
                    //}
                    //for (int i = 0; i < Received_Command.SampleDepth - b[1]; i++)
                    {
                        //dADC1_Result = dADC2_Result[i + b[1]];
                    }
                    //textBox3.Text += b[b.Length - 1].ToString();
                    //bIsUdpDataReceived = true;  //表示接收到了UDP数据,允许进行再次发送
                    bIsDataReadyForPlot = true;
                    myGraphPlotProc();   //绘图输出*/
                    //myD1 = new myMethodDelegate(h);
                    //myD1(1);
                }
            }
            catch (Exception e1)
            {
                timer1.Enabled = false;
                MessageBox.Show(e1.ToString());
            }
            finally
            {
                timer1.Enabled = false;
            }
        }

        /************************************************************************************
         * 绘图输出过程函数供,mygGraphPlotThread进程调用
         * 始终循环检测bIsDataReadyForPlot,一旦为真则进行绘图,绘图完成后置标志为false
         * **********************************************************************************/
        public void myGraphPlotProc()   //绘图输出函数
        {
            //while (true )
            {
                if(bIsDataReadyForPlot)
                {
                    waveformPlot1.PlotY(dADC1_Result);
                    waveformPlot2.PlotY(dADC2_Result);
                    bIsDataReadyForPlot = false;
                }
            }
        }

出0入0汤圆

 楼主| 发表于 2007-12-2 20:13:49 | 显示全部楼层
下位机的程序,也还在完善,现在只做到了基本的功能,还不稳定,主要问题还是在传输上的,这次为了一次传输比较多的数据,要将UDP数据包分解,分成多个小于1518字节的帧发送,因此发现当数据发送快的时候很容易导致数据停止发送,以前用MEGA32和SAM7的时候没注意过,当时的处理速度也慢,没暴露出来,想来想去可能是由于连续发送的时候速度太快导致的冲突,ENC28J60出错挂起了,还是ENC28J60没有吃透,对于里面的流控、以太网冲突检测这些还需要进一步研究。

/******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
*STM32F10XXX 双通道ADC数据采集并通过ENC28J60实现UDP通讯传输
*作者:alien2006
*环境:keil for arm mdk 3.15b
*版本:V0.2
*时间:20071202
*说明:V0.2
*一、网络通讯部分
*                        1、先采用STM32 SPI轮询方式进行传输试验,ping 192.168.1.100 -l 1400 -n 10
*                                 在轮询方式下未改进SPI1_SendByte()函数(内部直接用ST提供的函数语句)需 avg=9ms时间
*                                 轮询方式下将SPI1_SendByte()函数中的4条语句修改为直接寄存器存取后avg提高到7ms
*                                 轮询方式下取消SPI1_SendByte()直接代之以函数中四语句avg提高到6ms
*                                 经过上述的逐步修改,传输UDP1400个字符时双向传输(接收1400个字节再发送这1400个字节)间隔4MS可达210KB/S
*                        2、enc28j60.c修改增加STM32 SPI传输DMA和非DMA编译选项,DMA方式下网络最大传输速度测试达到350KB/S
*     3、改进了ZYP_UDP.C实现了当要发送的UDP数据长度超过单帧所能容纳时,将UDP数据
*                                 自动进行分组,并可在编译时自定义每个分组长度;
*                                 改进了ENC28J60.C加入了ENC28J60DMA空闲和网络发送完毕的判断,解决了当发送速度过快时导
*                                 致传输出错问题。测试单向发送速度超过500KB/S;
*二、STM32数据采集部分
*                        1、ADC1/ADC2实现并行同时数据采集,12BIT最高可达1MSPS采样速度并通过STM32的DMA传输放入内存中
*                        2、TIM2 CC2实现对ADC采样的触发,ADC_Sample_Frequency_Set函数实现自定义TIM2 OC2频率输出,
*                        3、采样的频率和采样个数通过接收到的UDP控制命令来指定
*                           采样的频率为20HZ~1MHZ;
*                           采样深度为1~4000个数据(受限于STM32内存20KB容量,一个数据为2个12bitADC通道读数,需一个word)
*                        4、定义了简单的UDP控制命令结构,用于实现与PC通讯和控制采样频率和采样深度
*三、其他
*     1、程序待解决问题:UDP分组发送出错问题未完全解决,有待进一步解决
*                        2、期待增加模拟前端电路,并实现放大倍数程控,通过上位机程序可以设置
*
* V0.1:最初程序,实现简单固定频率和深度的并行ADC采样和UDP通讯,并编制了简单的上位机程序,
*                                可以进行采样波形的显示   
*******************************************************************************/

出0入0汤圆

发表于 2007-12-2 20:17:44 | 显示全部楼层
学习。留意

出0入0汤圆

发表于 2007-12-2 20:21:39 | 显示全部楼层
牛啊!虽然看不懂,呵呵,楼主懂的东西可真多阿,向你学习。

出0入0汤圆

 楼主| 发表于 2007-12-2 20:33:39 | 显示全部楼层
除了程序要继续完善修改外,由于ADC 输入范围是0~3V,还差一个ADC模拟前端电路,对信号进行放大衰减并且将电平提升,初步画了个图,并用multisim10的进行了仿真,由于是处理低频信号因此难度不大,主要是对于放大衰减程控部分还没想好怎么搞好

出50入0汤圆

发表于 2007-12-2 22:09:03 | 显示全部楼层
楼主NB,顶

出0入8汤圆

发表于 2007-12-2 23:56:46 | 显示全部楼层
1、为何不用USB,STM32F103不是自带了USB2.0的接口吗?

2、STM32F103理论上如果快速总线就是APB跑在72MHz的时候,SPI的接口速度是可以接近18MB/s的。EN28J60的SPI速度目前是10MHz,就算除去协议的消耗,这部分还是通讯的一个瓶颈,不过EN28J60的后续版本SPI可以做到20MHz,并且还有EMI接口,如果再配上STM32F103系列256K以上的版本(会有EMI接口,外设功能更多),相信速度可以做到更高。


看来我的STM3210 Evaluation Board没有送错人,不错,感谢你的分享精神,如果可以的话请把帖子内容也发到21icBBS的ST MCU里吧,我在那里叫grant_jx。

作为对你的支持,我会在第一时间再送给你几片256K以上版本的STM32F103(目前还没有公开Release,我拿到了也暂时不能提供,要等ST全球正式发布后,我才能快递给你),一定保证你可以在第一时间玩到最新鲜的东西!

出0入0汤圆

发表于 2007-12-3 00:08:15 | 显示全部楼层
太酷了!!有机会也玩玩M3

出0入50汤圆

发表于 2007-12-3 09:51:38 | 显示全部楼层
^_^,我预定了英蓓特的DEMO板了,再过10天也可以玩STM32的ARM了,

严重同意Grant的观点:强烈建议用USB,充分利用资源,减少外围!


顺便问下Grant:芯片上的那个EMI外设是什么东东?

出0入0汤圆

发表于 2007-12-3 13:05:37 | 显示全部楼层
en
支持usb是王道

出0入0汤圆

发表于 2007-12-3 15:15:07 | 显示全部楼层
STM32F103这个片子怎么买啊!!!
市场上都没有,申请样片又没消息!!!!

出0入8汤圆

发表于 2007-12-3 19:23:40 | 显示全部楼层
To 11楼

EMI是外扩总线接口,你可通过总线来扩充并行器件,目前STM32的EMI还可以支持NAND Flash,同时这些EMI地址和数据总线是可以与IO复用的,这样IO的使用率会更高。不像一些ARM7,如STR710、LPC229x等带EMI接口的。EMI如果不要,浪费了太多IO。


To 13楼
1、你是找那个申请的样品?
2、如果你只是想自己买来玩玩,想购买一两片玩玩,可以找ST的增值服务商啊。他们是提供邮购方式的零售啊?

出50入0汤圆

发表于 2007-12-3 19:50:25 | 显示全部楼层
to Grant,请问带EMI的大概什么时候能上市呢?
对了,给您发的邮件您收到了吗?

出0入8汤圆

发表于 2007-12-3 20:15:41 | 显示全部楼层
刚回复你了邮件。发布的时间和详细的datasheet我答应了人家在没有公开之前不说的,抱歉!

出0入0汤圆

 楼主| 发表于 2007-12-3 20:52:17 | 显示全部楼层
to GRANT大大:)
    用网络传输关键还是现在对USB不了解啊,呵呵,惭愧惭愧啊,前几个月到还想过要在AT91SAM7S64上实验USB功能的,后来找了下资料,乖乖龙滴东o(∩_∩)o...哈哈,发现USB还真是复杂啊,不仅光光协议数百页的英文资料,还涉及到windows的驱动程序要编,对这方面实在是没接触过,后来就只好暂时作罢了。不过USB是肯定要搞的,刚刚我还在网上下载了WINDRIVER V9的软件,据说可以用来很方便地编写WINDOWS 的USB驱动,前些日子也初步看了下ST提供的UM424的USB开发文档和例程,好在文档还是比较详细的,正打算深入学习呢。不过说真的,USB开发的难度不小哦,还得慢慢学习。
    网络传输的这个模块我很早就做出来了,开始是在网上找的AVR的简单例程驱动,后来把它移植到了S64上,并且自己加上了UDP和TCP的简单实现,用来传数据还满爽的。另外我还有个带WIFI的PDA,也可以用它通过无线路由器来连接网络,观察数据,特别方便。所以在USB还没出成果的时候就先用网络传输来代替喽。
    以前用AT91SAM7S64芯片玩ENC28J60的时候还真没留心会不会发送速度过快导致流控出问题的情况,现在STM32的速度比起S64来真不是快了一点啊,而是快翻倍了,所以原先没暴露的问题就出来了,现在还不知道怎么处理呢,看了MICROCHIP的TCP/IP STACK里面也没有关于分组发送的部分,只是简单的说由于MCU内存容量的关系,所以只处理小于1500字节的包,这也太简易了吧,唉。。。
   另外ENC28J60这个片子速度确实比较受SPI的限制,我用的是9M的SPI速度,最高也可达到到500多K的速度,后来试了下放到了18M的SPI 速度,发包的速度一下子就快到600KB/S了,哈哈,正常以太网10M条件下极限速度大约应该是700KB/S左右,600KB/S这个应该是ENC28J60的极限了。
   在STM32的DATASHEET V4里看到有管新产品的信息 Future family enhancements
Further developments of the STM32F103xx performance line will see an expansion of the
current options. Larger packages will soon be available with up to 512 KB Flash, 64 KB
SRAM and with extended features such as flexible static memory controller (FSMC)
support, SDIO, I
2S, DAC and additional timers and USARTS. ,受不了了,呵呵,实在太强大了呀,真是让人期待啊o(∩_∩)o...

出0入8汤圆

发表于 2007-12-3 22:55:34 | 显示全部楼层
我会提供100pin的封装给你,你可以直接卸下我给你的STM3210 Evalation Board上的STM32F103VBT6,把它焊上去就是,Pin to Pin替换,对于多出来的外设,使用的是现有的IO 复用方式,你直接通过板子上面那两排引线引出来使用就可以。


如果你仔细看了STM32的USB Development Kit的话,其实STM32的USB还是比较好开发的,尤其是它Sample里自带的4个Example,有些可以直接拿来改就是,我就是这样干的。

ENC28J60的后续版本也应该快发布了,不过我更看好有集成以太网的PIC32Fxxx,呵呵M的核,72MHz,与CortexM3有得一拼啊,就是不知道目前Microchip得价格策略。ST也说过会有集成以太网的STM32,只是不知要到什么时候才能出现?

遗憾的是,这两条产品线都与我的工作有直接关系,晕死了。

出0入4汤圆

发表于 2007-12-3 23:12:49 | 显示全部楼层
NB啊  楼上的几位都很NB

出0入0汤圆

发表于 2007-12-3 23:45:41 | 显示全部楼层
衰减放大部分可以用R—2R结构的DA,数字电位器,或者便宜的模拟开关(CD4051之类)加运放等等~~~~~关键是频率高了才难搞

出0入0汤圆

发表于 2007-12-10 11:32:33 | 显示全部楼层
U3的同相端应该加1.5v才对吧,而不是Vref0.75v。

出0入0汤圆

发表于 2007-12-10 11:40:57 | 显示全部楼层
牛~

出0入0汤圆

发表于 2008-6-17 13:25:54 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-6-17 14:51:01 | 显示全部楼层
好东西!不得不顶

出0入0汤圆

发表于 2008-6-17 15:42:14 | 显示全部楼层
认真读完了这个帖子,感谢! mark

出0入0汤圆

发表于 2008-6-17 16:30:41 | 显示全部楼层
嗯,楼主动手能力强啊

出0入0汤圆

发表于 2008-6-17 16:37:55 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-6-17 23:01:47 | 显示全部楼层
强呀,高人太多了,学习中!

出0入0汤圆

发表于 2008-6-17 23:05:41 | 显示全部楼层
如果可以改进一下采样速度就更实用了

出0入0汤圆

发表于 2008-6-18 08:29:18 | 显示全部楼层
建议前端的放大不要用反向放大.要不然内阻很下.在实际的测量中可能会影响到工作中的电路.

楼主真NB

出0入93汤圆

发表于 2008-6-18 08:43:48 | 显示全部楼层
记号,肯定用的到

出0入0汤圆

发表于 2008-6-18 09:41:17 | 显示全部楼层
这文章哪见过好象?

出0入0汤圆

发表于 2008-6-18 10:18:09 | 显示全部楼层
牛人,佩服佩服!顶

出0入0汤圆

发表于 2008-6-18 10:24:41 | 显示全部楼层
不会做上位机

出0入0汤圆

发表于 2008-6-19 01:16:39 | 显示全部楼层
高人。。。
一直有这个想法,单模拟的地方把俺难道了。
建议用USB接口

出0入0汤圆

发表于 2008-6-27 07:59:33 | 显示全部楼层
我对STM32 的勘误文档的下边一段英文看不太懂,好象是说这芯片的A/D有什么BUG,因此一直没敢用.看楼主高人,似乎已经对这问题解决了?谈谈经验吧.
另外,谁能把下边一段话译成中文?让我也能看明白到底是怎么回事.
2.1 Voltage glitch on ADC input 0
Description
A low-amplitude voltage glitch may be generated (on ADC input 0) on the PA0 pin, when the
ADC is converting with injection trigger. It is generated by internal coupling and
synchronized to the beginning and the end of the injection sequence, whatever the
channel(s) to be converted.
The glitch amplitude is less than 150 mV with a typical duration of 10 ns (measured with the
I/O configured as high-impedance input and left unconnected). If PA0 is used as a digital
output, this has no influence on the signal. If PA0 is used has a digital input, it will not be
detected as a spurious transition, providing that PA0 is driven with an impedance lower than
5 kΩ. This glitch does not have any influence on the remaining port A pin or on the ADC
conversion injection results, in single ADC configuration.
When using the ADC in dual mode with injection trigger, and in order to avoid any side
effect, it is advised to distribute the analog channels so that Channel 0 is configured as an
injected channel.
Workaround
None.

出0入4汤圆

发表于 2008-6-27 13:37:41 | 显示全部楼层
楼主厉害呀. ENC28J60用18M的SPI, 但是我用6M多就不行了--读不到ID了. 不知道和什么有关, 我的CPU是LPC2103,77M主频.
而且ENC28J60发热烫手---耗电200mA左右, 但是可以工作.

出0入0汤圆

发表于 2008-6-27 14:37:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-6-27 20:14:39 | 显示全部楼层
39楼,我的情况和你的一样,用STM32.
特别是那个ENC28J60(QFP的)发热烫手,真是利害.没看到你的贴子,我都以为芯片坏了!
麻烦楼主说说,你那功耗是不是也很大?

出0入0汤圆

发表于 2008-6-27 20:16:02 | 显示全部楼层
最希望楼主能把ENC28J60这部分程序共享一下!

出0入0汤圆

发表于 2008-6-30 09:13:13 | 显示全部楼层
MARK,学习了!

出0入0汤圆

发表于 2008-6-30 10:12:09 | 显示全部楼层
To 39、41楼,如果ENC28J60到芯片发热请检查你们的硬件电路,不要随便怀疑芯片的问题,我又用的电路就没有你们说得发热烫手的问题,如果有问题,那是你们的硬件有问题,

出0入0汤圆

发表于 2008-6-30 16:16:51 | 显示全部楼层
这芯片的硬件电路很简单的!
后来仔细看一下芯片手册,工作电流是250mA,感觉热也是可能的.

出0入0汤圆

发表于 2008-7-3 08:52:17 | 显示全部楼层
mark..

出0入0汤圆

发表于 2008-7-3 08:59:52 | 显示全部楼层
没看到触发电路啊?

出0入0汤圆

发表于 2008-7-3 23:16:47 | 显示全部楼层
受不了啊,太N了

出0入0汤圆

发表于 2008-7-4 23:04:41 | 显示全部楼层
楼主,问下ENC28J60,好买吗?我有个项目,由于IO太少,想用这个,就是不知市场的货源怎样?

出0入0汤圆

发表于 2008-7-7 11:05:25 | 显示全部楼层
MARK

出0入0汤圆

发表于 2008-7-8 11:47:42 | 显示全部楼层
MARK,学习了!

出0入0汤圆

发表于 2008-7-8 13:18:54 | 显示全部楼层
学习中

出0入0汤圆

发表于 2008-7-8 15:17:12 | 显示全部楼层
继续mark

出0入0汤圆

发表于 2008-7-19 10:01:20 | 显示全部楼层
很棒!

出0入0汤圆

发表于 2008-7-21 22:10:16 | 显示全部楼层
正想搞,芯片刚到.没想到有人到做好了.学习学习.

出0入0汤圆

发表于 2008-7-23 10:44:10 | 显示全部楼层
【44楼】 _yu-ming
俺的ENC28J60也发烫。在电路上要注意哪些?

出0入0汤圆

发表于 2008-7-24 20:38:32 | 显示全部楼层
非常的不错~~~,,mark一下。

出10入95汤圆

发表于 2008-7-24 21:29:08 | 显示全部楼层
楼主牛人!

出0入0汤圆

发表于 2008-7-24 21:41:38 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-8-1 16:42:46 | 显示全部楼层
程序能大家共享下吗大家好学习下嘛

出0入0汤圆

发表于 2008-8-1 19:57:57 | 显示全部楼层
强焊!

出0入0汤圆

发表于 2008-8-1 21:34:25 | 显示全部楼层
好牛,支持,我以前也做过示波器,但是因为ad的速率的原因,一直采不到高频率的信号,要有个1M的ad那就好了
强烈支持楼主!我也想参与,不知自己有没有那个能力?

出0入0汤圆

发表于 2008-8-2 00:14:30 | 显示全部楼层
能共享下程序吗?

出0入0汤圆

发表于 2008-8-10 22:00:03 | 显示全部楼层
以下蓝色文字由版主:bluelucky 于:2008-08-10,22:00:03 加入。
<font color=black>请发贴人注意:
本贴放在这分区不合适,即将移走
原来分区:[1032]ARM技术论坛
即将移去的分区:[3011]Cortex-M3技术讨论区
移动执行时间:自本贴发表0小时后

任何的疑问或咨询,请可随时联系站长。谢谢你的支持!
</font>

出0入0汤圆

发表于 2009-3-15 14:10:53 | 显示全部楼层
对不起  挖下墓,真有点羡慕楼主。

出0入0汤圆

发表于 2009-3-15 19:51:50 | 显示全部楼层
楼主那个PCB板子的元件分布能否说一下呢?
照这个帖子腐蚀了块板子
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=753417&bbs_page_no=1&search_mode=1&search_text=ENC28J60&bbs_id=9999
但是参数不是很清楚
希望楼主能够给一下

出0入0汤圆

发表于 2009-4-1 18:55:32 | 显示全部楼层
顶下这个强贴!

出0入0汤圆

发表于 2009-5-6 09:27:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-5-12 11:17:59 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-6-4 23:35:29 | 显示全部楼层
mark!先收藏了!

出0入0汤圆

发表于 2009-6-5 00:15:03 | 显示全部楼层
恩 相当不错 谢谢分享

出0入0汤圆

发表于 2009-6-29 22:47:57 | 显示全部楼层
学习

出0入0汤圆

发表于 2009-6-29 23:58:25 | 显示全部楼层
顶下这个强贴!

出0入0汤圆

发表于 2009-7-26 19:57:50 | 显示全部楼层
楼主 很好  可否将资料打个包  非常感谢

出0入0汤圆

发表于 2009-7-31 16:52:01 | 显示全部楼层
玛瑞克

出0入0汤圆

发表于 2009-8-1 21:01:11 | 显示全部楼层
关注

出0入4汤圆

发表于 2009-8-11 21:25:01 | 显示全部楼层
记号。

出0入0汤圆

发表于 2009-8-11 21:35:09 | 显示全部楼层
jh

出0入0汤圆

发表于 2009-8-18 13:24:27 | 显示全部楼层
学习!
楼主强!

出0入0汤圆

发表于 2009-8-19 17:49:09 | 显示全部楼层
必须mark

出0入0汤圆

发表于 2009-10-26 20:52:32 | 显示全部楼层
挖挖挖

出0入0汤圆

发表于 2009-11-8 21:30:47 | 显示全部楼层
楼主能不能把源程序提供下呀。。多谢先!

出0入0汤圆

发表于 2009-11-8 21:42:02 | 显示全部楼层
强帖一定要顶

出0入0汤圆

发表于 2009-11-10 22:57:23 | 显示全部楼层
mark,留待学习

出0入0汤圆

发表于 2010-1-2 22:22:03 | 显示全部楼层
关注

出0入0汤圆

发表于 2010-7-2 07:25:02 | 显示全部楼层
没看到资料啊,在哪下载啊

出0入0汤圆

发表于 2010-7-2 10:57:26 | 显示全部楼层
mark!~~

出0入0汤圆

发表于 2010-8-18 13:44:28 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-12-2 10:05:03 | 显示全部楼层
学习了

出0入0汤圆

发表于 2010-12-2 10:22:09 | 显示全部楼层
看看

出0入0汤圆

发表于 2010-12-2 15:25:45 | 显示全部楼层
厉害,学习了

出0入0汤圆

发表于 2011-1-9 22:22:43 | 显示全部楼层
标记

出0入0汤圆

发表于 2011-1-16 16:01:32 | 显示全部楼层
菜鸟我来也!!

出0入0汤圆

发表于 2011-5-3 12:58:01 | 显示全部楼层
回复【楼主位】alien2006
-----------------------------------------------------------------------

能不能提供UDP数据传输的例子了。多谢,我邮箱452920081@qq.com

出0入0汤圆

发表于 2011-5-9 22:19:57 | 显示全部楼层
必须mark一下

出0入0汤圆

发表于 2011-6-8 11:53:48 | 显示全部楼层
很强啊,才接触这方面的,差老远,支持下。

出0入0汤圆

发表于 2011-6-8 12:59:10 | 显示全部楼层
刚看这个帖子,就觉得楼主你较强,没想到的是07年,楼主就已经再玩STM32了,还有那个ENC28J60,真是牛啊!

出0入0汤圆

发表于 2011-7-8 10:02:38 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-7-9 23:14:36 | 显示全部楼层
楼主强人

出0入0汤圆

发表于 2011-7-16 12:41:03 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-8-1 17:24:38 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-1 21:31:19 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 21:51

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表