精华内容
下载资源
问答
  • stm32最小系统

    2019-04-05 11:42:25
    stm32最小系统
  • STM32最小系统分析;STM32最小系统分析;STM32最小系统分析;STM32最小系统分析;STM32最小系统分析;STM32最小系统分析;STM32最小系统分析;STM32最小系统分析;STM32最小系统分析;STM32最小系统分析;STM32最小系统分析
  • STM32最小系统

    千次阅读 2014-11-16 14:32:17
    stm32最小系统

              学习了有一段时间了,作为一名计算机系的学生,不得不说硬件还是很难,自己因此也要多下工夫。前几天刚画了快stm32最小系统的板子。感觉还行。就是有一点小毛病,不过凑合好嫩用。今天写出来随时留个纪念,许多年后自己看到后会是一种怎样的感慨!!呵呵

            先亮下自己花的板子PCB图吧。

        从厂子回来后的板子(未焊元器件之前的)正面


    背面    


    总结下经验,自我感觉花的还行。在画的过程中,遇到了困难,自己也有放弃画的念头,想了下,自己是计算机系的,没有掌握就算了吧无所谓,但这个念头仅仅是一闪而过,我就再也没有想过。就是因为自己是计算机系的,所以应该学习了,不学的花自己和别人就没有啥差别了,没有点优势怎么行,我又不是出身富豪,又没在985和211,凭什么对自己减轻要求,我知道,我不能。

          自己也是第一次用AD软件画板子,好多都还不懂,以后需要多加练习。


    展开全文
  • STM32 最小系统

    千次阅读 多人点赞 2021-03-23 08:57:39
    单片机最小系统是指用最少的电路组成单片机可以工作的系统,通常最小系统包含:电源电路、时钟电路、复位电路、调试/下载电路,对于STM32还需要启动选择电路。 电源电路 不同的MCU的工作电压可能是不一样的,比如51...

    在这里插入图片描述

    单片机最小系统是指用最少的电路组成单片机可以工作的系统,通常最小系统包含:电源电路、时钟电路、复位电路、调试/下载电路,对于STM32还需要启动选择电路。

    电源电路

    不同的MCU的工作电压可能是不一样的,比如51单片机通常为5V,而STM32单片机通常为3.3V。因此,通常需要查阅该MCU的数据手册才能确定工作电压和规范。

    打开“2_官方资料”的《1_STM32F103xE数据手册【重要】.pdf》(后简称,《数据手册》),找到“5.1.6Power supply scheme”电源方案小结,可以看到如图 5.2.1 框图。
    在这里插入图片描述
    结合《数据手册》“5.3.1 General operating conditions”的表 5.2.1 ,可得知上图中的各电压值大小。
    在这里插入图片描述

    1. VDD-VSS:标准工作电压;电压范围:2V~3.6V;从VDD1 ~ VDD11,VSS1 ~VSS11共有11组;需要11个100nF 和1个4.7uF去耦电容;经过MCU内部Regulator电源管理,为CPU、存储器等供电;
    2. VDDA-VSSA:模拟工作电压;电压范围:2V~3.6V(未使用ADC) 2.4V~3.6V(使用ADC);需要1个10nF和1个1uF去耦电容;由VDDA输入,为ADC、DAC等供电;
    3. VREF±VREF-:基准参考电压;电压范围:2.4V~ VDDA;可以使用独立参考电压VREF(需10nF+1uF高频滤波电容),也可使用VDDA输入,为ADC、DAC等作基准参考电压;
    4. VBAT:RTC备用电源;电压范围:1.8V~ 3.6V;通常使用纽扣电池外部供电,当主电源VDD掉电后,VBAT为实时时钟(Real-Time Clock,RTC)和备份寄存器供电(此时功耗超低);

    从数据手册了解到以上知识后,再来看看原理图第三页的MCU电源部分。左边的U1B(U1A和U1B共同组成U1,即MCU)是MCU所有电源相关引脚,可以看到VDDA 、VDD1 ~ VDD11、 VREF+都直接接在了VDD_3V3上(3.3V),VSSA 、VSS1 ~ VSS11、 VREF-都接在了GND上,VBAT接在了VDD_BAT上。右边是一系列退耦电容,这些电容在Layout(PCB布局走线)时,需要均匀分布在每组电源引脚附近。此时,MCU电源部分符合数据手册的要求。
    在这里插入图片描述
    前面VDD_3V3需要外部提供给MCU,也就是通过电源适配器提供,而一般的电源适配器通常为5V或 12V,因此还需要电源转换电路,将外部输入的12V或5V转换为3.3V。下图 5.2.3、图 5.2.4、图 5.2.5分别为12V电源输入电路、12V转5V电路、5V转3.3V电路,在5V转3.3V电路中有一个红色LED灯,用于提示用户整个系统电源正常工作,该部分电路读者仅作了解即可。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    最后再看看RTC电源电路,在外部12V输入时,VDD_3V3为3.3V,而J5的纽扣电池约为3V,D5为肖特基二极管,此时VDD_3V3大于纽扣电池电压,因此由VDD_3V3供电。当外部12V无输入时,VDD_3V3为0V, 而J5的纽扣电池约为3V,此时VDD_3V3小于纽扣电池电压,由纽扣电池供电,保证RTC继续运行,电路如图 5.2.6 所示。
    在这里插入图片描述

    时钟电路

    MCU是一个集成芯片,由非常复杂的数字电路和其它电路组成,需要稳定的时钟脉冲信号才能保证正常工作。时钟如同人体内部的心脏一样,心脏跳动一下,推动血液流动一下。时钟产生一次,就推动处理器执行一下指令。除了CPU,芯片上所有的外设(GPIO、I2C、SPI等)都需要时钟,由此可见时钟的重要性。

    芯片运行的时钟频率越高,芯片处理的速度越快,但同时功耗也越高。为了功耗和性能兼顾,微处理器一般有多个时钟源,同时还将时钟分频为多个大小,适配不同需求的外设。

    由《数据手册》可得到如图 5.2.7 所示的时钟树,这里只关心时钟源,时钟的分配使用放在后面讲解。
    在这里插入图片描述
    可以看到一共有四个时钟源:
    ①HSI(High Speed Internal clock signal):
    HSI是内部的高速时钟信号,频率8MHz。因为是内部提供,可以降低成本,缺点是精度较差。
    ②HSE(High Speed External clock signal):
    HSE是外部的高速时钟信号,需要外部电路晶振,输入频率范围要求为4-16MHz。因为需要外部电路提
    供,成本会增加,但精度较好。
    ③LSE(Low Speed External clock signal):
    LSE是外部的低速时钟信号,需要外部电路晶振,输入频率范围要求为32.768KHz。一般用于RTC实时
    时钟。
    ④LSI(Low Speed Internal clock signal):
    LSI是内部的低速RC振荡器,频率40KHz。一般用于看门狗、RTC实时时钟等。

    对于STM32F103系列的MCU,都需要一个高速时钟和一个低速时钟,而这两个时钟可以选择使用内部时钟源节约成本,也可以选择外部时钟源输入提高精度。如果使用内部时钟源,则无需设计外部电路,反之,则需要时钟电路。

    继续查看《数据手册》,可以看到如图 5.2.8 和图 5.2.9 所示的外部时钟输入参考电路。手册上提到对于HSE,当晶振为8MHz时,CL1和CL2的容值范围为5pF~25pF。REXT用于产生负反馈,保证放大器工作在高增益的线性区,同时也起到限流作用,通常在兆欧级,具体由晶振决定。
    在这里插入图片描述
    对于LSE,当晶振为32.768KHz时,CL1和CL2的容值范围为5pF~15pF。之所以选择32.768KHz,是因为32768=215,分频设置寄存器通常为2n的形式,这样经过15次分频就很容易得到1Hz的频率。
    在这里插入图片描述
    从数据手册了解到以上知识后,再来看看原理图第三页的时钟电路部分,如图 5.2.10 所示。高速时钟和低速时钟都可由外部提供,且电路设计与数据手册一致。

    晶振旁的负载电容,应选择高质量陶瓷电容(NPO),以满足高频率场合。在Layout(PCB布局走线)时,晶振和负载电容,应尽可能的靠近MCU,以减少输出失真和启动时的稳定时间,保证振荡器可靠工作。
    在这里插入图片描述

    复位电路

    嵌入式系统中,由于外界环境干扰,难免出现程序跑飞或死机,这时就需要复位让MCU重新运行。查看《参考手册》,可见如图 5.2.11 所示复位电路。该电路将一个按键接在了NRST引脚,一旦按键按下,NRST就会接地,拉低NRST,实现复位。
    在这里插入图片描述
    再来看看原理图上的复位电路,如图 5.2.12 所示。当开发板正常工作时,VDD_3V3上拉NRST, POWER_EN为前面12V转5V电源芯片的使能引脚,此时被电源芯片钳位在6.5V。当SW1被按下,D1为肖特基二极管,NRST和POWER_EN都会导通接地,拉低NRST和POWER_EN,使MCU复位,同时断开系统供电。
    在这里插入图片描述

    调试/下载电路

    不同的MCU,调试/下载的方式可能不一样。比如51系列单片机,使用串口下载程序,同时也使用仿真调试。对于STM32,可以使用串口下载程序,也能使用串口打印进行简单调试,但STM32支持更高效的JTAG(Joint Test Action Group)调试接口和SWD(Serial Wire Debug)调试接口。

    该电路比较简单,所涉及的引脚参考表 3.4.1,原理图如图 5.2.13 所示。
    在这里插入图片描述

    启动选择电路

    不同的MCU,启动的方式的种类可能不一样。比如51系列单片机,只能从内置存储器读取数据启动,因此没有启动选择的必要。对于STM32,可以从内置存储器启动(默认),可以从系统存储器(用于从USART1下载程序),可以从内部SRAM启动(调电消失,可用于调试),出现多个启动方式,就需要启动选择。

    STM32通过BOOT1和BOOT2引脚的电平组合进行启动选择,组合方式和电路设计如图 5.2.14 所示。
    在这里插入图片描述
    当J1拨码开关的1、4脚断开(对应开发板红色拨码开关的1号拨码朝下),2、3脚任意(对应开发板红色拨码开关的2号拨码任意)。此时BOO1为0,BOOT1任意,开发板上电,MCU将从内部主存储器读取数据启动,是最常用的启动方式。

    当J1拨码开关的1、4脚连接(对应开发板红色拨码开关的1号拨码朝上),2、3脚断开(对应开发板红色拨码开关的2号拨码朝下)。此时BOO1为1,BOOT1为0,开发板上电,MCU将从系统存储器读取数据启动,在系统存储器里面厂家烧写的串口下载程序,此时可以通过USART1烧写新程序到主存储器。

    当J1拨码开关的1、4脚连接(对应开发板红色拨码开关的1号拨码朝上),2、3脚连接(对应开发板红色拨码开关的2号拨码朝上)。此时BOO1为1,BOOT1为1,开发板上电,MCU将直接从内部SRAM启动,SRAM的烧写次数寿命比Flash更多,可用于调试。

    各启动模式的启动示意图如图 5.2.15 所示。通常,我们只使用主存储器启动即可。从系统存储器启动,实现从串口下载程序也逐渐被淘汰,STM32的高端MCU已经不支持该方式下载。从SRAM启动也没什么必要,目前Flash的烧写寿命次数也远远超过用户实际烧写次数。
    在这里插入图片描述

    【总结】

    本小结带领读者学习了如何读原理图,也对STM32的最小系统有了一些了解。后面的电路众多,在分析某个电路时,结合相关手册的参考电路和说明, 加上不断积累,相信读者也能灵活分析原理图。

    百问网技术论坛:
    http://bbs.100ask.net/

    百问网嵌入式视频官网:
    https://www.100ask.net/index

    百问网开发板:
    淘宝:https://100ask.taobao.com/
    天猫:https://weidongshan.tmall.com/

    技术交流群(鸿蒙开发/Linux/嵌入式/驱动/资料下载)
    QQ群:869222007

    单片机-嵌入式Linux交流群:
    QQ群:536785813

    展开全文
  • stm32 最小系统

    2021-01-12 23:19:21
    说到底stm32最小系统也不难,一个最最基础的东西吧。 嵌入式是分硬件工程师和软件工程师的,软件工程师相对只需要能看懂原理图就行了,但是懂点硬件总归还是有好处的。 自己画一个stm32的板子对stm32的理解也是不...

    stm32 最小系统

    关键词: STM32C8 最小系统 AD PCB

    犹记得大四实习,第一天去上班,老板就让我画PCB,奈何我压根没接触过。然后老板说,给你两天学,然后画个最小系统给我,不行就走人。
    我天,当时人都木了,啥都不会呀。不过所幸,在大一届的学长的指导下,还是交了作业。

    说到底stm32的最小系统也不难,一个最最基础的东西吧。

    嵌入式是分硬件工程师和软件工程师的,软件工程师相对只需要能看懂原理图就行了,但是懂点硬件总归还是有好处的。
    自己画一个stm32的板子对stm32的理解也是不一样的。

    主要内容:

    • 最小系统,晶振电路、复位电路、电源电路、下载电路。
    • STM32C8 PCB工程。
    • 工程输出。
    • 打板,制作PCB
    • 问题记录。

    文档参考:

    最新地址: https://taotaodiy.readthedocs.io/en/latest/stm32/pcb.html

    stm32c8核心板{.align-center}

    最小系统

    Stm32芯片要正常工作起来,必须为芯片加相应的外围电路,使其构成最小系统。
    最小系统最基本的电路包括:晶振电路,复位电路,电源电路,下载电路。

    如果将Stm32比作人类的大脑,那么电源可以理解为人类的消化系统,将外部输入能量稳定供给单片机;晶振则类似心脏,提供时序(脉搏)保障芯片内部工作正常;复位可以说是单片机的免疫系统,单片机工作时,有时候会因为程序bug或者硬件原因而工作混乱,复位可以让单片机系统一切归零,重新开始工作。

    晶振电路

    stm32工作时序,可以由HSE、LSE、HSI、LSI、PLL五个时钟源产生,其中高速外部时钟(HSE)可以使用一个4~16MHz的晶振构成的振荡器产生。
    低速外部时钟(LSE)可以使用一个32.768kHz的晶体/陶瓷谐振器构成的振荡器产生。

    时钟源,系统时钟参考:stm32 滴答定时器与数码管

    如下图所示,选取8M晶振作为高速外部时钟,32.768K晶振作为低速外部时钟。C6-C9为晶振起振电容。

    晶振电路原理{.align-center}

    在应用中,谐振器和负载电容必须尽可能地靠近振荡器的引脚,以减小输出失真和启动时的稳定时间。

    对于CL1和CL2,建议使用高质量的、为高频应用而设计的(典型值为)5pF~25pF之间的瓷介电容器,并挑选符合要求的晶体或谐振器。通常CL1和CL2具有相同参数。晶体制造商通常以CL1和CL2的串行组合给出负载电容的参数。在选择CL1和CL2时,PCB和MCU引脚的容抗应该考虑在内(可以粗略地把引脚与PCB板的电容按10pF估计)。

    对于CL1和CL2,建议使用高质量的5pF~15pF之间的瓷介电容器,并挑选符合要求的晶体或谐振器。通常CL1和CL2具有相同参数。晶体制造商通常以CL1和CL2的串行组合给出负载电容的参数。负载电容CL由下式计算: CL = CL1 x CL2 / (CL1 + CL2) + Cstray,其中Cstray是引脚的电容和PCB板或PCB相关的电容,它的典型值是介于2pF至7pF之间。

    复位

    复位电路的作用是为了使系统恢复到初始状态。STM32F10xxx支持三种复位形式,分别为系统复位、电源复位和备份区域复位。

    系统复位

    除了时钟控制器的RCC_CSR寄存器中的复位标志位和备份区域中的寄存器以外,系统复位将复位所有寄存器至它们的复位状态。
    当发生以下任一事件时,产生一个系统复位:

      1. NRST引脚上的低电平(外部复位)
      1. 窗口看门狗计数终止(WWDG复位)
      1. 独立看门狗计数终止(IWDG复位)
      1. 软件复位(SW复位)
      1. 低功耗管理复位

    可通过查看RCC_CSR控制状态寄存器中的复位状态标志位识别复位事件来源。

    软件复位

    通过将Cortex™-M3中断应用和复位控制寄存器中的SYSRESETREQ位置’1’。

    低功耗管理复位

    在以下两种情况下可产生低功耗管理复位:

      1. 在进入待机模式时产生低功耗管理复位:通过将用户选择字节中的nRST_STDBY位置’1’将使能该复位。这时,即使执行了进入待机模式的过程,系统将被复位而不是进入待机模式。
      1. 在进入停止模式时产生低功耗管理复位:通过将用户选择字节中的nRST_STOP位置’1’将使能该复位。这时,即使执行了进入停机模式的过程,系统将被复位而不是进入停机模式。

    电源复位

    当以下事件中之一发生时,产生电源复位:

      1. 上电/掉电复位(POR/PDR复位)
      1. 从待机模式中返回

    电源复位将复位除了备份区域外的所有寄存器。复位源将最终作用于RESET引脚,并在复位过程中保持低电平。复位入口矢量被固定在地址0x0000_0004。
    芯片内部的复位信号会在NRST引脚上输出,脉冲发生器保证每一个(外部或内部)复位源都能有至少20μs的脉冲延时;当NRST引脚被拉低产生外部复位时,它将产生复位脉冲。

    外部复位电路{.align-center}

    在C8最小系统中,就是通过按下按键,是NRST引脚产生低电平从而复位单片机系统。

    备份域复位

    备份区域拥有两个专门的复位,它们只影响备份区域。当以下事件中之一发生时,产生备份区域复位。

      1. 软件复位,备份区域复位可由设置备份域控制寄存器(RCC_BDCR)(见6.3.9节)中的BDRST位产生。
      1. 在VDD和VBAT两者掉电的前提下, VDD或VBAT上电将引发备份区域复位。

    电源电路

    • VDD = 2.0~3.6V: VDD引脚为I/O引脚和内部调压器供电。
    • VSSA、VDDA = 2.0~3.6V:为ADC、复位模块、RC振荡器和PLL的模拟部分提供供电。使用ADC时, VDDA不得小于2.4V。VDDA和VSSA必须分别连接到VDD和VSS。
    • VBAT = 1.8~3.6V:当关闭VDD时,(通过内部电源切换器)为RTC、外部32kHz振荡器和后备寄存器供电

    供电方案{.align-center}

    在我们的电路中预留了一个TTL转USB模块的接口和一个SWD下载程序的接口。TTL模块可以直接给C8最小系统提供5V电压,在经过AMS1117-3.3电源芯片转成3.3V,SWD则可以直接提供3.3V。

    C8最小系统供电{.align-center}

    下载电路

    在了解下载方式之前我们先看看数据手册中32的启动模式。

    启动模式

    在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种不同启动模式

    启动方式{.align-center}

    在系统复位后, SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。
    在从待机模式退出时,BOOT引脚的值将被被重新锁存;因此,在待机模式下BOOT引脚应保持为需要的启动配置。

    在启动延迟之后, CPU从地址0x0000 0000获取堆栈顶的地址,并从启动存储器的0x0000 0004指示的地址开始执行代码。因为固定的存储器映像,代码区始终从地址0x0000 0000开始(通过ICode和DCode总线访问),而数据区(SRAM)始终从地址0x2000 0000开始(通过系统总线访问)。

    Cortex-M3的CPU始终从ICode总线获取复位向量,即启动仅适合于从代码区开始(典型地从Flash启动)。
    STM32F10xxx微控制器实现了一个特殊的机制,系统可以不仅仅从Flash存储器或系统存储器启动,还可以从内置SRAM启动。

    根据选定的启动模式,主闪存存储器、系统存储器或SRAM可以按照以下方式访问:

    • 从主闪存存储器启动:主闪存存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(0x0800
      0000)访问它,即闪存存储器的内容可以在两个地址区域访问,0x0000 0000或0x0800 0000。
    • 从系统存储器启动:系统存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址访问它。
    • 从内置SRAM启动:只能在0x2000 0000开始的地址区访问SRAM。

    所以我们也应该明白Keil中设置的某些莫名的值。

    Keil中地址设置{.align-cente}

    那么现在再来看stm32单片机的两种下载方式,一种是串口下载,一种是仿真器下载。

    串口下载

    stm32内嵌了自举程序,存放在系统存储区,由ST在生产线上写入,用于通过可用的串行接口对闪存存储器进行重新编程,即串口下载程序。

    下面是使用CH340芯片组成的一键下载电路。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-edR7SfPb-1610464694788)(https://taotaodiy.readthedocs.io/en/latest/_images/principle007.png)]{.align-cente}

    从电路图可以看出,BOOT0和RESET分别由CH340G芯片的RST和DTR控制,而这两个引脚可以通过与下载程序的上位机通信来改变电平的高低,从而控制启动方式进行程序下载。

    仿真器下载

    stm32支持JLINK、JTAG、ULINK和STLINK等,如原理图所示,我们在这里留的SWD调试接口。

    • GND:公共地信号;
    • SWDIO:串行数据输入信号,作为仿真信号的双向数据信号线,建议上拉;
    • SWCLK:串行时钟输入,作为仿真信号的时钟信号线,建议下拉;
    • VCC:3.3V

    使用jlink或者stlink连接即可下载程序。参考 stm32 调试下载

    STM32C8最小系统

    了解了stm32c8t6的特性和最小系统的组成,下面使用AD软件画一个c8最小系统。

    stm32c8t6芯片实物图如下,我们所做的一切工作都是为了让这个小小的芯片工作起来,运行我们的程序。

    stm32c8t6芯片{.align-center}

    首先新建项目,软件安装、工程创建参考 AD20 安装

    第一步添加、绘制原理图库,如下是stm32c8t6的原理图,是方便后续工作对芯片的抽象。
    同样,原理图库也应该包括电阻电容等等我们在实际电路中需要用到的元器件。

    c8原理图库{.align-center}

    接下来就是电路设计了,按照一定的规则,设计出符合要求能够实现我们预定功能的电路系统。

    例如在降压模块中,D2为为电源指示灯上电即亮;C5为输入电容,电容主要作用是对整个电路进行保护,防止电压倒置损坏器件;C3、C4为输出滤波电容,作用是抑制自激振荡和稳定输出电压;R1起限流作用。

    封装管理器{.align-center}

    将所有电路设计完毕之后,加上一些标注;管脚与管脚之间使用网络标签;最后用原理图标注,统一管理元器件的编号。

    原理图标注{.align-center}

    我们最终需要的是,能够焊接的元器件的电路板,那怎么把原理图和实际的PCB联系起来呢?
    这个时候就需要我们确定封装,也就是我们实际使用到的元器件的外形、尺寸,通过软件绘制成封装库。

    下图为ASM1117电源芯片的封装,SOT-233。

    SOT-233{.align-center}

    下图为stm32c8t6的封装,SQFP-48。我们可以直接使用IPC Compliant Footprint
    Wizard生成对应封装的芯片。

    stm32c8t6封装{.align-center}

    电阻、电容、二极管等器件,我们使用的封装统一为0805。

    这样我们使用到的每一个元器件都有一个与之大小尺寸一样的封装库了,通过封装管理器将原理图的每个器件与其封装关联起来。

    然后尝试进行编译,让软件帮我们检查原理图是否存在错误,点击工程–>compile PCB project。

    封装管理器{.align-center}

    编译出错时,会弹出消息,帮我们指出错误的地方,根据提示消息对应修改即可。
    编译无误之后,则将原理图导成PCB,设计 --> update PCB 。Add ROOMS取消勾选。

    导入PCB{.align-center}

    导出PCB如下图所示,在空白区域添加板子形状,如图为25*55(mm)左右的PCB。

    添加板子时,先绘制一个封闭的形状,选中闭合形状,点击菜单设计–>板子形状–>按照选择对象定义。

    定义板子形状{.align-center}

    然后就是进行元器件的布局。先布局单元电路以及核心器件,再按照连线尽可能短,强弱电、强弱信号分离,模数分离,高低频分离,高频元器件的充分间隔等原则对整体进行拼接。除此以外,板子尽量做到均匀分布,重心平衡,版面美观。

    布局效果如下:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ibkTjBCq-1610464694803)(https://taotaodiy.readthedocs.io/en/latest/_images/stm32f103011.png)]{.align-center}

    从图中可以看到元器件与元器件之间已经被丝线连接起来了,我们只需根据丝线再用信号线或电源线将两者连起来。这一步叫走线(布线)。

    走线也需要遵循一定的规则,比如线宽由流过的电流大小决定,模拟信号和数字信号应尽量分块布线;走线顺序优先走模拟信号、高速信号、高频信号、时钟信号,其次再走数字信号;避免直角走线、锐角走线,地线回路环路保持最小等等。

    我这里电源线使用25mil,信号线10mil,过孔分为20mil和50mil。

    在开始走线之前,我们先添加一个电源类,然后分别设置线的规则,当然电气规则、丝印规则也是必不可少的,先设置好避免走线后提示错误。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FbtJyZav-1610464694806)(https://taotaodiy.readthedocs.io/en/latest/_images/stm32f103012.png)]{.align-center}

    AD可以进行自动布线,不过作为初学者建议手动走线,至少核心模块手动走线。

    布局和走线这两步的操作很自由,很多时候是由经验决定的,这得多画多调,多看别人的板子,才能积累出自己的东西。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x5Y4T7Jx-1610464694811)(https://taotaodiy.readthedocs.io/en/latest/_images/stm32f103013.png)]{.align-center}

    为了方便板子的调试,对丝印进行添加和调整。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R4V5HsNE-1610464694812)(https://taotaodiy.readthedocs.io/en/latest/_images/stm32f103014.png)]{.align-center}

    前面走线的时候,我留了地线没有连,直接覆铜。
    覆铜的意义在于:减小地线阻抗,提高抗干扰能力;降低压降,提高电源效率;与地线相连,减小环路面积。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3s5R6F1a-1610464694816)(https://taotaodiy.readthedocs.io/en/latest/_images/stm32f103015.png)]{.align-center}

    接着添加过孔阵列到网络,将两边的铜皮连接。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0jG72U0c-1610464694820)(https://taotaodiy.readthedocs.io/en/latest/_images/stm32f103016.png)]{.align-center}

    最后,工具–>设计规则检查–>运行DRC,最终效果就是下面这样的了。
    如果出现错误,提示框点击可以直接跳转到出错位置,修改即可。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I5xOL5cI-1610464694822)(https://taotaodiy.readthedocs.io/en/latest/_images/stm32f103017.png)]{.align-center}

    工程输出

    进行到这里,我们的工程大致就完成了,接下来就需要将我们的板子送到加工厂生产。

    这个时候我们就需要Gerber文件了,Gerber文件是一款计算机软件,是线路板行业软件描述线路板(线路层、阻焊层、字符层等)图像及钻、铣数据的文档格式集合,是线路板行业图像转换的标准格式。

    Gerber文件输出

    点到画好的PCB

    文件–>制造输出–>Gerber files

    通用–>单位默认英寸–>格式2:4

    层–>绘制层–>选择使用的–>镜像层–>全部去掉

    钻孔图层–>钻孔图–>输出所有使用的钻孔对–>钻孔向导图–>输出所有使用的钻孔对

    确定,输出的图挺漂亮的。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k8Wuop20-1610464694823)(https://taotaodiy.readthedocs.io/en/latest/_images/projectout001.png)]{.align-center}

    NCDrill 文件

    点到画好的PCB

    文件–>制造输出–>NCDrill files

    单位默认英寸–>格式2:4

    确定

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ve3c8uf0-1610464694824)(https://taotaodiy.readthedocs.io/en/latest/_images/projectout002.png)]{.align-center}

    Test Point report

    点到画好的PCB

    文件–>制造输出–>Test Point report

    确定,再确定

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GX5l7GTs-1610464694827)(https://taotaodiy.readthedocs.io/en/latest/_images/projectout003.png)]{.align-center}

    Gernerates pick and place file

    点到画好的PCB

    文件–>装配输出–>Gernerates pick and place file

    确定

    PDF文件

    点到画好的PCB

    文件–>智能PDF

    工程输出就到此结束,可能不同的厂家,不同的场景需要做部分调整。

    打板,制作PCB

    工程下面有Project Outputs for xxxx这个目录了,我们直接将这个目录打包发给生产厂家即可。

    PCB厂家良心推荐,嘉立创,5块钱打板一次五块板子,对于初学者来说是非常实惠的。

    首先安装嘉立创订单助手

    提交刚刚打包的文件

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-skToHo1m-1610464694830)(https://taotaodiy.readthedocs.io/en/latest/_images/product001.png)]{.align-center}

    选择相关需求

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PnjotWru-1610464694832)(https://taotaodiy.readthedocs.io/en/latest/_images/product002.png)]{.align-center}

    等嘉立创客服确定之后,付款即可。

    问题总结

    如有问题,欢迎访问这里 https://www.bluseli.site 。

    常见问题也会在这里贴出来,不定时更新。

    资源下载

    这里提供C8最小系统工程和数据手册的下载。

    • C8最小系统工程 点击下载 解压密码:www.blusel.site
    • stm32数据手册 点击下载 解压密码:www.blusel.site
    • C8最小系统测试程序 点击下载 解压密码:www.blusel.site

    其他

    展开全文
  • STM32最小系统硬件组成详解

    万次阅读 多人点赞 2018-07-28 22:33:15
    STM32最小系统硬件组成详解 0组成: 电源 复位 时钟 调试接口 启动 1、电源 : 一般3.3V LDO供电 加多个0.01uf去耦电容 2、复位:有三种复位方式:上电复位、手动复位、程序自动复位 通常低电平复位:(51单片机...

    STM32最小系统硬件组成详解

    0组成: 电源   复位   时钟    调试接口  启动

    1、电源 : 一般3.3V  LDO供电   加多个0.01uf去耦电容  

    2、复位:有三种复位方式:上电复位、手动复位、程序自动复位

    通常低电平复位:(51单片机高电平复位,电容电阻位置调换)

    上电复位,在上电瞬间,电容充电,RESET出现短暂的低电平,该低电平持续时间由电阻和电容共同决定,计算方式如下:t = 1.1RC(固定计算公式)  1.1*10K*0.1uF=1.1ms

    需求的复位信号持续时间约在1ms左右。

    手动复位:按键按下时,RESET和地导通,从而产生一个低电平,实现复位。

    3、时钟 :   晶振+起振电容  +(反馈电阻MΩ级)   

    如使用内部时钟:

    对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。

    2)对于少于100脚的产品,有2种接法:

    iOSC_INOSC_OUT分别通过10K电阻接地。此方法可提高EMC性。

    32.768KHZ:

    可选择只接高速外部时钟8MHZ或 既多接一个32.768MHZ的外部低速时钟。

    32.768KHZ时钟作用:      用于精准计时电路  万年历

    通常会选择32.768KHz的晶振,原因在于32768=2^15,而嵌入式芯片分频设置寄存器通常是2的次幂的形式,这样经过15次分频后,就很容易的1HZ的频率。实现精准定时。用于精准计时电路  万年历 

    晶振:一般选择8MHZ  方便倍频     

    有源:更稳定 成本更高 需要接电源供电  不需要外围电路      3脚单线输出  

    无源:精度基本够 方便灵活 便宜          最大区别:是否需要单独供电         无源晶振需要外接起振电容:晶振的两侧有两个电容

    OSC——OUT不接,悬空

                                                                                      有源晶振

    作用:

    1、使晶振两端的等效电容等于或接近于负载电容;

    2、起到一定的滤波的作用,滤除晶振波形中的高频杂波;

    该起振电容的大小一般选择10~40pF,当然根据不同的单片机使用手册可以具体查阅,如果手册上没有说明,一般选择20pF、30pF即可,这是个经验值。

    调整电容可微调振荡频率:

    一般情况下,增大电容会使振荡频率下降,而减小电容会使振荡频率升高,

    反馈电阻:   1M    负反馈    同时也是限流

    1、连接晶振的芯片端内部是一个线性运算放大器,将输入进行反向180度输出,晶振处的负载电容电阻组成的网络提供另外180度的相移; 整个环路的相移360度,满足振荡的相位条件,

    2、 晶振输入输出连接的电阻作用是产生负反馈,保证放大器工作在高增益的线性区,一般在M欧级;

    3、 限流的作用,防止反向器输出对晶振过驱动,损坏晶振,有的晶振不需要是因为把这个电阻已经集成到了晶振里面。             

     

    4、启动:  用户使用通常都设置成Boot0  Boot1均为0即均为低电平  

    M3核的器件有3种启动方式,M4的有4种。通过BOOT0,BOOT1的电平进行选择。

           STM32三种启动模式对应的存储介质均是芯片内置的,它们是:

    1)用户闪存 = 芯片内置的Flash。

    2)SRAM = 芯片内置的RAM区,就是内存啦。

    3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区,它是使用USART1作为通信口。

           M4在上述基础上又增加了可在FSMC的BANK1区域启动。

    5、调试接口:STM32有两种调试接口,JTAG为5针,  SWD为2线串行(一共四线)

    此外还有采用USB进行程序烧写数据输出:和电脑USB口连接也可以进行小负载驱动供电。

    通常采用CH340G的芯片:实现USB转串口。

    需要单独的振荡电路 12MHZ 

    使用该芯片将电脑的USB映射为串口使用,  注意电脑上应安装串口驱动程序,否则不能正常识别。

    当烧写程序时,我们希望BOOT0=1,BOOT1=0。当烧写完成后我们希望BOOT0=0,BOOT1=0(这个模式BOOT1可以是0可以是1,这里我们让BOOT1拉低,即整个过程BOOT1都为L接地,简化电路设计)。

     

     

     

     

     

    展开全文
  • 嵌入式应用-stm32最小系统,什么是最小系统? STM32最小系统包括那几个部分?(以STM32F103RBT6为例) 哪几个部分最关键?
  • STM32最小系统原理图

    2019-01-28 12:12:57
    STM32最小系统原理图
  • stm32最小系统板.zip

    2021-01-29 11:26:21
    stm32最小系统板ad工程
  • YL-16_STM32最小系统资料YL-16_STM32最小系统资料YL-16_STM32最小系统资料YL-16_STM32最小系统资料
  • STM32最小系统.zip

    2020-08-14 06:32:59
    STM32最小系统PCB板以及原理图,自己绘制,可供学习下载。内含STM32原理图常用元件库.....
  • stm32最小系统

    2018-11-27 15:48:39
    AD16,完整的stm32最小系统板工程文件,包含原理图、pcb、器件库
  • stm32最小系统.rar

    2020-03-18 17:29:51
    该压缩包里面有两个STM32最小系统的资源,一个是STM32F103C8T6的另一个是STM32F103ZET6的,可以根据自己的需求改一下就能够使用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,852
精华内容 740
关键字:

stm32最小系统