1、简单易用,可快速上手
2、流畅支持300个器件或1000个焊盘以下的设计规模
3、支持简单的电路仿真
4、面向学生、老师、创客
1、全新的交互和界面
2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计
3、更严谨的设计约束,更规范的流程
4、面向企业、更专业的用户
标准版 #第七届立创电赛#基于状态空间的平衡单车
简介:本项目基于状态空间的智能车控制算法,使用Infineon旗下TC264及Nations旗下N32G430C8L7作为主控芯片,实现给定的状态评价函数最优解求算。
开源协议: GPL 3.0
本文的题目叫做“基于状态空间的平衡单车”,不知道大家了不了解智能车,由于参加过两届智能车的原因,所以给自己留下来很多那么难忘的回忆,还记得学长说过的一句话“做比赛的目的不是为了拿奖,而是为了学习更多的东西”,大一的时候是实话确实没有感觉到什么,但是现在确实有深深的感触,时间过得太快了,哎,有点感慨了,怎么说,希望看到这篇文章的人,继续加油。(希望官方不要生气哈,提了一嘴其他的比赛,其实立创电赛挺好的,嗯 ,对于我们这种搞硬件的,真的是一个很不错的机会,起码给了我这一次写这篇文档的机会嘛)
本项目使用TC264及N32G430C8L7,自我感觉其实TC264绝对够用,但是吧,由于参加训练营的原因,所以了解到了N32G430这款芯片,而且还是国产的,那不得走一波,于是第三套板子就出来了,TC264+N32G430,一些简单的让N32G430跑,一些复杂的让TC264跑,一主一副完美搭佩,而且串口通信不也来了。
总体设计框图:
(1)主控芯片选择
TC264:
☆ 处理器:TC264,最高主频200MHz,双核TriCore™架构;
☆ TriCore™内置的DSP功能;
☆ 程序存储器:容量高至2.5MB、带ECC(纠错编码)保护的闪存;
☆ 数据存储器:容量高至752KB、带ECC(纠错编码)保护的RAM,用于存储雷达信息和摄像头的图像信息;
☆ 96KB EEProm,支持125k个读写周期;
☆ 4个12位SAR ADC转换器;
☆ 支持100Mbit以太网;
☆ 支持FlexRay、CAN、CAN FD、LIN和SPI;
☆ 定时器模块(GTM、CCU6、GPT12);
☆ 用于实现处理器间通讯的高速串行接口;
☆ 用于实时视觉和雷达数据跟踪的2.5 GHz高速轨迹端口;
☆ 板上集成DAP电路,通过Mini USB连接电脑进行仿真调试
☆ DAP仿真调试接口
☆ DC-DC电源芯片TLE42744G V33
☆ 30x2,32x1,20x1路扩展口
N32G430C8L7:
☆ 32 位 ARM Cortex-M4 内核+ FPU,支持 DSP 指令和 MPU
☆ 内置 1KB 指令 Cache 缓存,支持 Flash 加速单元执行程序 0 等待
☆ 最高主频 128MHz,160DMIPS
☆ 高达 64KByte 片内 Flash,支持加密存储、分区管理及数据保护,1 万次擦写次数,10 年数据保持
☆ 高达 16KByte 片内 SRAM, Stop2 模式保持,Standby 模式可配置为保持
☆ 支持 Run、Sleep、Stop0、Stop2、Standby 模式
☆ 1 个 12bit 4.7Msps ADC,12/10/8/6bits 可配置,多达 16 路外部单端输入通道, 3 个内部单端输入通道,支持差分模式
☆ 3 个高速比较器,内置 64 级可调比较基准
☆ HSE: 4MHz~32MHz 外部高速晶体
☆ LSE: 32.768KHz 外部低速晶体
☆ HSI: 内部高速 RC 8MHz
☆ LSI: 内部低速 RC 40KHz
☆ MCO: 支持 2 路时钟输出,可配置 SYSCLK、HSI、HSE、LSI、LSE、可分频的 PLL 时钟输出
☆ 支持上电/掉电/外部引脚复位
☆ 支持看门狗复位、软件复位
☆ 支持可编程的电压检测
☆ 4 个 U(S)ART 接口,其中 2 个 USART 接口(支持 ISO7816, IrDA,LIN),2 个 UART 接口
☆ 2 个 SPI 接口,主模式速率高达 18 Mbps,从模式速率高达 32 Mbps,支持 I
☆ 2 个 I2C 接口,速率高达 1 MHz,主从模式可配,从机模式下支持双地址响应
☆ 1 个 CAN 2.0A/B 总线接口,速率高达 1Mbps
(2)电源模块
流程图如下图:
①稳5V电源模块
在5V电源模块设计中,我们采用的是DC-DC电源方案,使用的是TI公司开关电源芯片TPS7350产生5V电压为传感器供电,电路中陶瓷旁路电容器可以改善负载的瞬态响应和噪声抑制。
②稳3.3V电源模块
此部分电路采用3.3V稳压芯片RT9013供电,其中核心板也是此芯片供电,其输入和输出端采用无极性电容进行滤波。
③电机驱动模块
电机驱动器采用mos管搭建H桥电路,使用全桥驱动器HIP4082驱动,HIP4082是英特矽尔公司的驱动芯片,它最大输出电压可达80V,输出电流达到1.3A,输入PWM频率最高可达 200Khz,一块HIP4082配合外围电路组成H桥即可驱动一路电机,具有输出电流大,设计方便的特点,完全满足带载电机的需求。
其工作原理如下,打开Q1、Q4,关断Q2、Q3,此时电流可经过Q1、电机M、Q4即可完成电机的正转。如图5.2所示。打开Q2、Q3,关断Q1、Q4,此时电流可经过Q2、电机M、Q3即可完成电机的反转。
以下程序为模块测试程序
#include "headfile.h"
#pragma section all "cpu0_dsram"
//将本语句与#pragma section all restore语句之间的全局变量都放在CPU0的RAM中
uint16 duty;//定义舵机占空比控制变量
uint16 speed1,count;//定义电机占空比控制变量及编码器计数变量
//工程导入到软件之后,应该选中工程然后点击refresh刷新一下之后再编译
//工程默认设置为关闭优化,可以自己右击工程选择properties->C/C++ Build->Setting
//然后在右侧的窗口中找到C/C++ Compiler->Optimization->Optimization level处设置优化等级
//一般默认新建立的工程都会默认开2级优化,因此大家也可以设置为2级优化
//对于TC系列默认是不支持中断嵌套的,希望支持中断嵌套需要在中断内使用enableInterrupts();来开启中断嵌套
//简单点说实际上进入中断后TC系列的硬件自动调用了disableInterrupts();来拒绝响应任何的中断,因此需要我们自己手动调用enableInterrupts();来开启中断的响应。
int core0_main(void)
{
get_clk();//获取时钟频率 务必保留
//用户在此处调用各种初始化函数等
//duty = 750;
count = 2000;
gtm_pwm_init(ATOM1_CH1_P33_9,50,duty);//舵机PWM接口初始化
ips114_init();//ips1.14寸屏幕初始化
//mt9v03x_init();//
gpt12_init(GPT12_T2,GPT12_T2INB_P33_7,GPT12_T2EUDB_P33_6);//编码器初始化
gtm_pwm_init(ATOM0_CH6_P02_6,17*1000,count);//电机PWM接口初始化
//等待所有核心初始化完毕
IfxCpu_emitEvent(&g_cpuSyncEvent);
IfxCpu_waitEvent(&g_cpuSyncEvent, 0xFFFF);
enableInterrupts();
//注意 从V1.1.6版本之后 printf打印的信息从串口输出具体可以学习库例程Printf_Demo
//注意 从V1.1.6版本之后 printf打印的信息从串口输出具体可以学习库例程Printf_Demo
//注意 从V1.1.6版本之后 printf打印的信息从串口输出具体可以学习库例程Printf_Demo
while (TRUE)
{
//用户在此处编写任务代码
pwm_duty(ATOM1_CH1_P33_9,duty);
pwm_duty(ATOM0_CH4_P02_4,count);
//if(mt9v03x_finish_flag)
//{
//ips114_displayimage032(mt9v03x_image[0],MT9V03X_W,MT9V03X_H);
//mt9v03x_finish_flag = 0;
//}
speed1=gpt12_get(GPT12_T2);
gpt12_clear(GPT12_T2);
ips114_showuint16(0,0,speed1);
}
}
#pragma section all restore
其实自己做了好多好多版本,主要是想试一下,对,有想法的话,不去试一下怎么可以呢,不说了,上图
看
看
再看
再看
再看
你以为这样就结束了,不
……
最终:
视频源文件发在了网盘里面,想要的可以下,链接如下:
ID | Name | Designator | Footprint | Quantity | BOM_Supplier | BOM_Manufacturer Part | BOM_Manufacturer | BOM_Supplier Part |
---|---|---|---|---|---|---|---|---|
1 | 100nF | C1,C2 | C0805 | 2 | LCSC | CC0805KRX7R9BB104 | YAGEO | C49678 |
2 | 10uF | C3,C4 | C0805 | 2 | LCSC | CL21A106KOQNNNE | SAMSUNG | C1713 |
3 | 22uF | C5 | CAP-TH_BD6.3-P2.50-D0.6-FD-1 | 1 | LCSC | SPZ1HM220E07O00RAXXX | AISHI(艾华集团) | C2691855 |
4 | 10uF | C6 | CAP-SMD_L3.2-W1.6-RD | 1 | LCSC | TAJA106K010RNJ | AVX | C7177 |
5 | 4.7uf | C57,C58 | C0603 | 2 | LCSC | C0603X5R475K160NT | SANYEAR(叁叶源) | C466777 |
6 | 0.1uf | C59 | C0603 | 1 | LCSC | C0603X5R475K160NT | SANYEAR(叁叶源) | C466777 |
7 | 100nf | C60 | C0603 | 1 | LCSC | C0603X5R475K160NT | SANYEAR(叁叶源) | C466777 |
8 | HC-1.25-3PWT | CN1 | CONN-SMD_HC-1.25-3PWT | 1 | LCSC | HC-1.25-3PWT | HCTL(华灿天禄) | C2845380 |
9 | IN5819 | D2,D4 | SOD-123_L2.7-W1.6-LS3.7-RD-3 | 2 | LCSC | 1N5819G-CA2-R | UTC | C89634 |
10 | WJ500V-5.08-2P-14-00A | P1,P2 | CONN-TH_2P-P5.00_WJ500V-5.08-2P | 2 | LCSC | WJ500V-5.08-2P-14-00A | ReliaPro | C8465 |
11 | LR7843 | Q6,Q7,Q8,Q9 | TO-252-2_L6.6-W6.1-P4.57-LS9.9-TL-CW | 4 | LCSC | NTD4858NT4G | ON | C15955 |
12 | 10R | R42,R43,R44,R45 | R0603 | 4 | LCSC | TNPW0603220RBEEA | VISHAY(威世) | C2078993 |
13 | 10K | R46 | R0603 | 1 | LCSC | TNPW0603220RBEEA | VISHAY(威世) | C2078993 |
14 | 1K | R49,R50 | R0603 | 2 | LCSC | TNPW0603220RBEEA | VISHAY(威世) | C2078993 |
15 | XKB5858-Z | SW1 | SW-TH_6P-L5.8-W5.8-P2.00-LS4.5-BL | 1 | LCSC | XKB5858-Z | XKB Enterprise | C318868 |
16 | L78M05ABDT-TR | U1 | TO-252-2_L6.5-W6.1-P4.58-LS10.0-TL | 1 | LCSC | L78M05ABDT-TR | STMicroelectronics | C58069 |
17 | B0512S-1WR3 | U17 | PWRM-TH_BXXXXS-1W | 1 | LCSC | B0512S-1WR3 | MORNSUN | C133158 |
18 | HIP4082IBZT | U18 | SOIC-16_L9.9-W3.9-P1.27-LS6.0-BL | 1 | LCSC | HIP4082IBZT | Intersil | C50123 |
19 | 74LVC245APW-Q100J | U19 | TSSOP-20_L6.5-W4.4-P0.65-LS6.4-BL | 1 | LCSC | 74LVC245APW-Q100J | Nexperia | C548513 |
展开
加载中...
是否需要添加此工程到专辑?