您尚未登录。

#1 Re: 全志 SOC » 求助v3s使用buildroot 2020.02.1后linux启动超过两分钟 » 2022-08-30 12:23:26

@unturned3
感谢大佬的回复。我linux kernel使用的deconfig是licheepi_zero_defconfig,buildroot是自己menuconfig的。在我使用的内核LicheePi 5.2.0+中没有RANDOM_TRUST_BOOTLOADER的选项(它提示只有x86等支持该选项),不过我找到了另外的解决方法:在buildroot的menuconfig中打开haveged包安装:
Target Packages->Miscellaneous->haveged就可以解决随机熵不足的问题。

总结问题出现的原因和解决机理:系统启动时需要熵信息,且内核在可用熵较少时会阻塞相应的调用,所以系统启动时可能挂起数分钟至数小时,直至随机子系统充分得到初始化( random: crng init done )。而Haveged使用HAVEGE(HArdware Volatile Entropy Gathering and Expansion)来维护一个1M的随机字节池,当/dev/random中的随机位供应低于设备的低水位时(/proc/sys/kernel/random/entropy_avail),这个随机字节池用于填充/dev/random。

#2 全志 SOC » 求助v3s使用buildroot 2020.02.1后linux启动超过两分钟 » 2022-08-30 00:45:14

laozhu
回复: 4

如题所示,之前使用buildroot 2017.08版本的时候不会出现此现象。系统打印信息如下:

U-Boot SPL 2017.01-rc2-00057-g32ab1804cd-dirty (Aug 27 2022 - 08:57:15)
DRAM: 64 MiB
Trying to boot from MMC1

U-Boot 2017.01-rc2-00057-g32ab1804cd-dirty (Aug 27 2022 - 08:57:15 -0700) Allwinner Technology

CPU:   Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM:  64 MiB
MMC:   SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment

Setting up a 800x480 lcd console (overscan 0x0)
dotclock: 33000kHz = 33000kHz: (1 * 3MHz * 66) / 6
In:    serial@01c28000
Out:   serial@01c28000
Err:   serial@01c28000


U-Boot 2017.01-rc2-00057-g32ab1804cd-dirty (Aug 27 2022 - 08:57:15 -0700) Allwinner Technology

CPU:   Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM:  64 MiB
MMC:   SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment

Setting up a 800x480 lcd console (overscan 0x0)
dotclock: 33000kHz = 33000kHz: (1 * 3MHz * 66) / 6
In:    serial@01c28000
Out:   serial@01c28000
Err:   serial@01c28000
Net:   No ethernet found.
starting USB...
No controllers found
Hit any key to stop autoboot:  0
reading zImage
4527656 bytes read in 231 ms (18.7 MiB/s)
reading sun8i-v3s-licheepi-zero-dock.dtb
12589 bytes read in 26 ms (472.7 KiB/s)
## Flattened Device Tree blob at 41800000
   Booting using the fdt blob at 0x41800000
   Loading Device Tree to 42df9000, end 42dff12c ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.2.0-v3s+ (laozhu@ubuntu) (gcc version 7.5.0 (Linaro GCC 7.5-2019.12)) #11 SMP Mon Aug 29 22:45:42 CST 2022
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Lichee Pi Zero with Dock
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 32 MiB at 0x40c00000
[    0.000000] percpu: Embedded 16 pages/cpu s34508 r8192 d22836 u65536
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 15883
[    0.000000] Kernel command line: console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw vt.global_cursor_default=0
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 19680K/64036K available (7168K kernel code, 305K rwdata, 1748K rodata, 1024K init, 254K bss, 11588K reserved, 32768K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] random: get_random_bytes called from start_kernel+0x2f8/0x484 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000006] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000018] Switching to timer-based delay loop, resolution 41ns
[    0.000220] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000455] Console: colour dummy device 80x30
[    0.000511] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.000527] pid_max: default: 32768 minimum: 301
[    0.000688] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.000703] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.001501] CPU: Testing write buffer coherency: ok
[    0.002043] /cpus/cpu@0 missing clock-frequency property
[    0.002070] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.002856] Setting up static identity map for 0x40100000 - 0x40100060
[    0.003076] rcu: Hierarchical SRCU implementation.
[    0.003615] smp: Bringing up secondary CPUs ...
[    0.003635] smp: Brought up 1 node, 1 CPU
[    0.003645] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[    0.003652] CPU: All CPU(s) started in SVC mode.
[    0.004772] devtmpfs: initialized
[    0.008378] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.008684] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.008712] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[    0.010214] pinctrl core: initialized pinctrl subsystem
[    0.011360] NET: Registered protocol family 16
[    0.012549] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.013844] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.013863] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.038408] SCSI subsystem initialized
[    0.038591] usbcore: registered new interface driver usbfs
[    0.038650] usbcore: registered new interface driver hub
[    0.038754] usbcore: registered new device driver usb
[    0.038993] mc: Linux media interface: v0.10
[    0.039038] videodev: Linux video capture interface: v2.00
[    0.039665] ion_parse_dt_heap_common: id 4 type 4 name cma align 1000
[    0.040336] Advanced Linux Sound Architecture Driver Initialized.
[    0.041851] clocksource: Switched to clocksource arch_sys_counter
[    0.053568] NET: Registered protocol family 2
[    0.054402] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.054443] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.054469] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    0.054491] TCP: Hash tables configured (established 1024 bind 1024)
[    0.054642] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.054694] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.055003] NET: Registered protocol family 1
[    0.057543] Initialise system trusted keyrings
[    0.057949] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[    0.097457] Key type asymmetric registered
[    0.097478] Asymmetric key parser 'x509' registered
[    0.097580] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
[    0.097592] io scheduler mq-deadline registered
[    0.097600] io scheduler kyber registered
[    0.098668] sun4i-usb-phy 1c19400.phy: Couldn't request ID GPIO
[    0.102714] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[    0.170051] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    0.172574] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pb not found, using dummy regulator
[    0.173684] printk: console [ttyS0] disabled
[    0.193996] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 37, base_baud = 1500000) is a U6_16550A
[    0.713406] printk: console [ttyS0] enabled
[    0.744056] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.750592] ehci-platform: EHCI generic platform driver
[    0.756184] ehci-platform 1c1a000.usb: EHCI Host Controller
[    0.761851] ehci-platform 1c1a000.usb: new USB bus registered, assigned bus number 1
[    0.769912] ehci-platform 1c1a000.usb: irq 27, io mem 0x01c1a000
[    0.801868] ehci-platform 1c1a000.usb: USB 2.0 started, EHCI 1.00
[    0.809111] hub 1-0:1.0: USB hub found
[    0.813072] hub 1-0:1.0: 1 port detected
[    0.817697] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.824022] ohci-platform: OHCI generic platform driver
[    0.829579] ohci-platform 1c1a400.usb: Generic Platform OHCI controller
[    0.836301] ohci-platform 1c1a400.usb: new USB bus registered, assigned bus number 2
[    0.844409] ohci-platform 1c1a400.usb: irq 28, io mem 0x01c1a400
[    0.916984] hub 2-0:1.0: USB hub found
[    0.920824] hub 2-0:1.0: 1 port detected
[    0.928184] usbcore: registered new interface driver usb-storage
[    0.935520] input: 1c22800.lradc as /devices/platform/soc/1c22800.lradc/input/input0
[    0.944906] sun6i-rtc 1c20400.rtc: registered as rtc0
[    0.949970] sun6i-rtc 1c20400.rtc: RTC enabled
[    0.954716] i2c /dev entries driver
[    0.959643] input: ns2009_ts as /devices/platform/soc/1c2ac00.i2c/i2c-0/0-0048/input/input1
[    0.969484] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[    0.978252] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pf not found, using dummy regulator
[    1.014888] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB
[    1.022187] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pg not found, using dummy regulator
[    1.057235] sunxi-mmc 1c10000.mmc: initialized, max. request size: 16384 KB
[    1.065395] usbcore: registered new interface driver usbhid
[    1.070972] usbhid: USB HID core driver
[    1.075055] sunxi-cedar 1c0e000.video-codec: sunxi cedar version 0.01alpha
[    1.082153] sunxi-cedar 1c0e000.video-codec: cedar-ve the get irq is 22
[    1.091772] sun4i-codec 1c22c00.codec: ASoC: codec-analog@01c23000 not registered
[    1.099402] sun4i-codec 1c22c00.codec: Failed to register our card
[    1.106962] Initializing XFRM netlink socket
[    1.111316] NET: Registered protocol family 17
[    1.116494] Registering SWP/SWPB emulation handler
[    1.122590] Loading compiled-in X.509 certificates
[    1.132951] simple-framebuffer 43e89000.framebuffer: framebuffer at 0x43e89000, 0x177000 bytes, mapped to 0x(ptrval)
[    1.143594] simple-framebuffer 43e89000.framebuffer: format=x8r8g8b8, mode=800x480x32, linelength=3200
[    1.159846] Console: switching to colour frame buffer device 100x30
[    1.172380] simple-framebuffer 43e89000.framebuffer: fb0: simplefb registered!
[    1.181155] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[    1.192720] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[    1.198487] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 3
[    1.208065] hub 3-0:1.0: USB hub found
[    1.212132] hub 3-0:1.0: 1 port detected
[    1.216125] mmc0: host does not support reading read-only switch, assuming write-enable
[    1.226690] debugfs: Directory '1c22c00.codec' with parent 'V3s Audio Codec' already present!
[    1.235424] sun4i-codec 1c22c00.codec: ASoC: Failed to create component debugfs directory: -17
[    1.244895] mmc0: new high speed SDHC card at address aaaa
[    1.252417] sun4i-codec 1c22c00.codec: Codec <-> 1c22c00.codec mapping ok
[    1.261195] mmcblk0: mmc0:aaaa SD32G 29.7 GiB
[    1.267609] sun6i-rtc 1c20400.rtc: setting system clock to 1970-01-01T00:50:21 UTC (3021)
[    1.276087] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    1.286357]  mmcblk0: p1 p2
[    1.293653] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    1.300310] vcc5v0: disabling
[    1.303350] ALSA device list:
[    1.306319]   #0: V3s Audio Codec
[    1.310389] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    1.319085] cfg80211: failed to load regulatory.db
[    1.328632] mmc1: new high speed SDIO card at address 0001
[    1.369631] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.377933] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    1.385011] devtmpfs: mounted
[    1.389334] Freeing unused kernel memory: 1024K
[    1.394212] Run /sbin/init as init process
[    1.402033] random: fast init done
[    1.509792] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Saving random seed: [    1.708599] random: dd: uninitialized urandom read (512 bytes read)
OK
[  112.561950] random: crng init done
ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519
Starting sshd: OK

Welcome to v3s
v3s login:

在语句“Saving random seed: [    1.708599] random: dd: uninitialized urandom read (512 bytes read) OK”后卡了很久,从时间戳上可以看出。我尝试过删除/etc/init.d/S20urandom文件,但问题照旧。

使用的Linux内核版本:LicheePi 5.2.0+
使用的编译工具链:gcc-linaro 7.5 2019.12
buildroot版本:buildroot 2020.02.1

#3 Re: BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2021-10-29 18:40:50

@carbonxie
encoder_zeroing();是用来对齐机械零角和电角零角。
不需要在每次上电后都执行,执行一次之后把偏移量记录下来就行了。
foc_calibrate_phase();是用来校正相序的,一般是先校正相序再对齐零角。

#4 Re: 全志 SOC » 也学习前辈们,画了个全志F1C100 or 全志F1C200S的mini pi! » 2021-09-21 23:57:17

楼主,嘉立创解析导出的gerber时候无法识别,请问这是正常现象吗?
四层板的话需要做阻抗吗,用的是什么层叠结构呢

#5 Re: BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2021-09-20 23:26:24

@liyucai
有Gitee镜像仓,你可以去镜像仓下载:https://gitee.com/zhuyanzhen1/mini-foc
这篇帖子最早给出的那个已经是很老很老的版本了,尽量从Github或者Gitee上拉取最新版的代码和电路。

#7 Re: BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2021-09-14 20:55:45

Gbear 说:

无刷电机作为关节的输出选型的时候需要注意电机的那些参数呀,对于电机的各种参数没什么概念

极对数和KV值,以及最大输出功率

#8 Re: BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2021-09-14 20:55:17

IC爬虫 说:

能做到10w转每分钟吗

不能,这个算力不够

#9 全志 SOC » 提问:V3s或F1C200s通过buildroot构建ROS » 2021-09-10 00:29:33

laozhu
回复: 0

如题所述,想请教一下大佬们有没有通过buildroot来构建ROS元操作系统?
在ROS的官网上主要提供的是基于Debian系的安装方法,他们可以很方便地通过aptitude安装。
但是V3s和F1C200s的根文件系统一般来说都是主线Linux,想跑Debian很困难。
所以不知道有没有什么方法可以把ROS弄上去。

#10 Re: BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2021-09-09 11:49:24

海石生风 说:

@laozhu
在低转速应用上,从整体来看,闭环步进方案的成本肯定比你的三相直流无刷FOC方案低

你就总是想着要鸡蛋里挑骨头。
一开始跟我来说simpleFOC的成本比我这个低,现在比FOC的方案比不了了就跟我来比步进电机了是吧?

另外你所说的的比我成本低的闭环步进方案能实现以下的哪一点:
1. 转矩恒定可闭环且转矩脉动极小
2. 宽范围转速调节,瞬态响应特性好
3. 噪音小,谐波及驻波频率均超过10kHz

你当然可以说我这个不行,但是你得拿出更好的来啊,在Github上面开源你“更好”的东西啊
虽然我可能技术没你好,但是费尽心思来挑我的骨头,对开源社区和广大开发者有什么贡献吗?

#11 RISC-V » RISC-V指令集中文手册 » 2021-09-07 20:25:32

laozhu
回复: 1

发一个从其他论坛搬过来的riscv-spec-v2.1中文版。已经是一个比较老的翻译版了(2016年翻译的),现在最新的文件还是要到RISC-V基金会的官网上面去下载。

考虑到有些开发者没有VPN,下面这两个是从官网上下下来的源文件(2019年修订版):
riscv-spec-20191213.pdf
riscv-privileged-20190608.pdf

这个是中文翻译过来的文档:
riscv-spec-v2.1中文版.pdf

#12 Re: BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2021-09-07 19:44:21

Timaker 说:

问了代理商价格,GD32F130G6U6原装21+,3k整包出,10.5元/PCS

那么贵吗,难道我买的这个是拆机货 hmm ,但是它又写的是全新原装
不过目前我买了30颗还没有碰到有问题的片子,如果和我一样是搞着自己玩的话可以去他们家买:
https://item.taobao.com/item.htm?spm=a230r.1.14.19.499c45d3xfp6bv&id=607243418663&ns=1&abbucket=19#detail
库存还挺多的,可以屯点(毕竟不知道接下来单片机市场会变得怎么样)

#13 Re: BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2021-09-07 13:14:34

david 说:

@laozhu
请问是啥型号的单片机?现在3元的好像已经不多了。

是兆易创新的GD32F130G6U6。Cortex-M3内核,32K Flash,4K RAM。购买截图如下:
3元单片机.png

#14 Re: BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2021-09-06 20:58:00

今日成果:实现FOC自动相序检测和相序矫正。再也不用担心接线相序对不上需要手动调换相序啦。

#15 Re: BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2021-09-06 20:56:49

lizuqing 说:

什么时候出开发板呀。

可能大概率不会出开发板,这个东西自己根据开源的文档就可以做出来啦。文档里面写的非常非常非常详细了已经。

#16 Re: BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2021-09-05 13:22:46

再补充一个FOC力矩环的转动视频:

#17 Re: BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2021-09-04 00:28:04

另外在此展示一下这颗三块钱就能买到的单片机经过优化后每次计算所消耗的时间,大概是在25us,也就是说闭环频率可以随便做到20~30kHz。更加高速的闭环可以提高BLDC的瞬态响应性能。由于电机的限制,不用把闭环频率设得过高,在此项目的示例中,闭环频率被设置成了8kHz。
FluxBB bbcode 测试

#18 Re: BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2021-09-04 00:22:06

海石生风 说:

@laozhu
simpleFOC一样可以用MCU + 磁编码器实现,不知道它的成本高在哪里?闭环步进驱动做成FOC并不奇怪吧,单纯TMC方案又不是闭环控制。

    如果方便的话请大佬发布你所说的的这个方案的github项目供大家一起参考学习,像我这样做一个BOM来对比一下报价。另外对于simpleFOC做步进驱动确实没有什么问题,我们项目目前也支持做直流电机的驱动,后续甚至可以支持做个D类功放和三相逆变。很感谢大佬给我们提供使用开关式霍尔传感器的思路,后续我们会考虑将其加入到开发内容中,这样成本就可以控制在10元左右了。

#19 Re: BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2021-09-03 12:24:30

海石生风 说:

感觉simpleFOC方案也不贵呀,并且还支持步进电机

本项目的优势主要在于成本(使用全新原装的元件)可以做到20元以下。如果你能把simpleFOC的成本(使用全新原装的元件)做到那么低的话,可以发布你的github项目让大家一起学习。另外,我猜测应该不会有人用simpleFOC去做步进电机驱动吧?TMC2209这种高细分的一体式驱动IC不香吗?

#20 Re: BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2021-09-02 10:35:51

达克罗德 说:

牛!感谢开源分享!
请问有没有参考电路和电机选型?我可以做个demo板看看

持续关注github项目,上面开源了全部电路和源码。

#21 Re: BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2021-09-02 10:35:20

xboot 说:

对于总线电机,是can接口通用还是modbus,电机集成驱动器留出总线接口,是趋势。

很有道理。目前没有采用总线接口而是采用UART接口。以后可能会加入一些模块变为RS485 modbus

#22 BLDC电机驱动 » 一款成本极低的开源FOC驱动 » 2021-09-02 00:31:00

laozhu
回复: 74

由于我们比赛所使用的工程机器人采用了机械臂的结构,而RM官方提供的3508、6020、2006电机无法满足某些关节的输出需求。所以我们选择了使用MIT Mini Cheetah的关节电机FOC驱动方案。但是在实际测试环境中,发现该FOC驱动器并不稳定,所以我们重新从头开始研发了一套不同于现有开源方案如simpleFOC、ODrive的FOC驱动方案,具有成本低、体积小等优势,作为技术储备提供给摩擦轮电机、关节电机等场景使用。FOC在控制BLDC (Brushless Direct Current)电机上有诸多的好处,主要有如下几点优势:
   1. FOC则完全没有转速的限制,不论在什么转速下都可以实现精确的控制。
   2. FOC的换向性能极其优秀,最高转速下正反转切换可以非常顺畅。
   3. FOC还可以以能量回收的形式进行刹车控制。
   4. FOC可以实现力矩、速度、位置三个闭环控制。
   5. FOC驱动器的噪音会比电调小很多,效率也比电调高很多。
  但是由于FOC的计算量大、原理复杂,所以需要很高成本的控制器,这也使得FOC在很多场景下都没有得到推广和使用。在经过了半年的研究和迭代之后,本人将FOC涉及大量计算的代码进行了深度优化,也重新根据国内的供应链进行了选型,希望本开源项目能够帮助国内的广大开发者们用上有优秀性能的BLDC电机,为开源社区贡献一份力量。本项目剥离自我们为工程机器人盘式电机研发的FOC_STD项目,对供应链重新进行选型,目前项目还正在移植过程中,请期待九月中旬彻底实现功能移植。

开源项目Github地址: https://github.com/ZhuYanzhen1/miniFOC

或者本站下载: miniFOC_git_20210902.7z

希望大家能多多关注,给一个小星星鼓励一下呀。

#23 Re: Cortex M0/M3/M4/M7 » 同样是HAL库,为什么H7系列的编译这么的慢,而F1F4编译的很快 » 2021-08-13 18:29:21

可以试一试gcc,H7编译实测速度可以在10s内搞定。我觉得编译慢完全是keil的ac工具链的原因。
附gcc下载链接(版本为10-2020-q4-major):
https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-win32.exe

#24 Re: 全志 SOC » [开源项目-记录贴]扔掉你手中的开发板,跟我来自制基于F1C100s/F1C200s的M5Pi吧! » 2021-08-13 17:00:28

楼主太强了,向你学习!这就扔掉手上的开发板来做一个试试:D big_smile

#25 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » CH552实现DAP-Link(基于Arduino IDE) » 2021-08-13 16:54:10

LinjieGuo 说:

楼主大哥,请问能帮我修改一下引脚,然后打包hex吗?
SWCLK->P33
SWDIO->P34

我可以告诉你在哪里修改,你自己去操作编译。
文件路径在 firmware\CMSIS_DAP\src\CMSIS_DAPusb ,需要修改的文件是 DAP.h 和 SW_DP.c 。
DAP.h文件,从204行~207行,是引脚定义的地方。
SW_DP.c文件,从51行~69行,是引脚初始化的函数,要重新配置为你需要的引脚。

#26 DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » CH552实现DAP-Link(基于Arduino IDE) » 2021-08-10 16:13:37

laozhu
回复: 12

在github上看到的用CH552实现的DAP-Link(基于Arduino IDE),本人把它扣下来编译出hex文件供大家下载。
源项目链接:Github Repo
电路原理图主要部分:
https://img.vim-cn.com/62/da2f34fecce9ec4010a7b4fb5cff351a07e144.png bbcode 测试

源码及编译好的固件:
CMSIS_DAP.zip

固件烧录方法:
1.安装WCH官方提供的烧录软件
2.按照下图选择好单片机的型号、固件位置。
https://img.vim-cn.com/9f/0443da9f2ec155aa50d81b9dbb0c0296bec60b.png bbcode 测试
3.点击搜索单片机,搜索到后点“下载”即可

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn