为智能家居准备的CAN网关,现硬件和配套的openwrt已完成,软件正在编写中······
连接了一个LED控制器和一个输入模块:
通过MQTT接入homeassistant,支持自动发现:
配套外壳,但需要自己开孔:
openwrt编译:
git clone https://github.com/zhangjinke/openwrt.git
cd openwrt
git checkout can_gateway_4-v19.07.7
./scripts/feeds update -a #更新feeds
./scripts/feeds install -a #将feeds安装到menuconfig
cp can_gateway_4_musl_diffconfig .config #应用配置
make defconfig #扩展完整配置
time make download V=s #下载所有依赖
time make V=99 #不可用root用户编译
编译完成后的固件在./bin/targets/sunxi/cortexa7/openwrt-sunxi-cortexa7-sun8i-v3s-can-gateway-4-ext4-sdcard.img.gz
也可以直接下载编译好的:openwrt-sunxi-cortexa7-sun8i-v3s-can-gateway-4-ext4-sdcard.img.gz
PCB文件:can_gateway_4_hardwave_20210804-2356.7z
PDF: can_gateway_4.pdf
最近编辑记录 zhangjink (2021-08-05 09:20:18)
离线
智能家居用can嘛?
离线
请教,U2,U3,U4,U5是什么?黑色放块是电源模块?can部分没看懂...
离线
智能家居用can嘛?
是的,为了达到更快的响应速。每路灯和开关都留了4芯线,顶上蓝色管子就是:
离线
请教,U2,U3,U4,U5是什么?黑色放块是电源模块?can部分没看懂...
U2~U5是MCP2515,SPI转CAN芯片,黑色方块是隔离电源,如果不做隔离,通信距离长了之后,地电位会有偏差,可能导致通讯失败。
TJA1042右边的都是防护用的器件,家用不要其实问题也不大。
离线
那么,再请教下,U7,U9,U11,U13又是什么呢?光耦?磁耦?光耦没有一个芯片实现收发的吧?
离线
那么,再请教下,U7,U9,U11,U13又是什么呢?光耦?磁耦?光耦没有一个芯片实现收发的吧?
不是写了TJA1042嘛
离线
那么,再请教下,U7,U9,U11,U13又是什么呢?光耦?磁耦?光耦没有一个芯片实现收发的吧?
ADUM1201ARZ,磁耦,一收一发
离线
楼主这是定制产品还是量产的?
离线
Gentlepig 说:那么,再请教下,U7,U9,U11,U13又是什么呢?光耦?磁耦?光耦没有一个芯片实现收发的吧?
ADUM1201ARZ,磁耦,一收一发
谢谢,搜了下,十多块呢,有机会试一试。
离线
楼主这是定制产品还是量产的?
做来自己用的
离线
这是几层板?
再提下小意见:
1: 4颗小晶振 改用一颗 有源 晶振,输出给can芯片,要省事些
2: 板上再加个RTC更好。
最近编辑记录 wxws (2021-08-07 13:47:47)
离线
这是几层板?
再提下小意见:
1: 4颗小晶振 改用一颗 有源 晶振,输出给can芯片,要省事些
2: 板上再加个RTC更好。
感谢建议,现在这个是2层的;平时主要做软件,硬件不太熟悉,4个MCP2515间隔较远,担心用一颗晶振出问题;V3s内部有RTC,有需求的话,可以加个纽扣电池上去。
离线
用CAN还得布线,无线它不美吗?
离线
CAN的实时和可靠性更高吧,参考汽车上的通讯
离线
做网关的路过支持下
离线
淘宝了一下,现在这v3s 好贵呀
离线
淘宝了一下,现在这v3s 好贵呀
芯片涨价涨得厉害,看了下我之前25一片买的那家店,现在要85一片了:(
离线
做网关的路过支持下
感谢支持:)
离线
@zhangjink 谢谢哈,clone来玩一下:)
另外请问一下,如何启用其它的2个uart呢, ttyS1 ttyS2 ?
离线
离线
@zhangjink 谢谢哈,clone来玩一下:)
另外请问一下,如何启用其它的2个uart呢, ttyS1 ttyS2 ?
可以参照sdk的target/linux/sunxi/files-4.14/arch/arm/boot/dts/sun8i-v3s-can-gateway-4.dts中的uart0添加uart1和uart2的配置试试
离线
kwongwo 说:@zhangjink 谢谢哈,clone来玩一下:)
另外请问一下,如何启用其它的2个uart呢, ttyS1 ttyS2 ?
可以参照sdk的target/linux/sunxi/files-4.14/arch/arm/boot/dts/sun8i-v3s-can-gateway-4.dts中的uart0添加uart1和uart2的配置试试
搞定了,谢谢哈, 就是还有 USB 没有搞定,想接一个U盘,硬是搞不定,太郁闷了.
离线
用高速光耦是不是隔离电压不够高哈
离线
不是原生CAN吧,SPI的CAN不知道稳定不稳定。做网关用新塘的NUC980可以,还是工业级
离线
@zhangjink
V3S内部RTC不建议使用, 时间会跑。
离线
内置rtc精度如何?
离线
请问homeassistant是跑在v3s的openwrt吗?
离线
不错,用现场总线来控制智能家居。装修时这样干不错。
离线
自己装修,自己干啊,厉害了
离线
请问楼主,多MCP2515的dts怎么配的呢
好奇如何配置 gpio 片选和gpio 中断的,
谢谢!!
离线
在线
wootz 说:请问楼主,多MCP2515的dts怎么配的呢
好奇如何配置 gpio 片选和gpio 中断的,
谢谢!!H5的spi控制器驱动, 可以通过 gpio 控制 spi 片选 (转载)
https://whycan.com/t_2418.html#p48766
谢谢 指点迷津
离线
为啥不用光纤搞。光纤收发 稳定没干扰
离线
大神太牛了,就是openwrt内核版本有点低了,编译出来的固件有点大,有没有办法搞小点?
离线
这个不错,扩展了多路CAN
离线
感觉有线还是太麻烦
离线
楼主,图片上还显示自己做的控制器呐。
离线
can做家居,有想法
离线
同问,内置rtc精度如何?
离线
good job -but i think v3s is a little heavy for this job and some thing like STM micros is enough also without OS for industrial usage.
also by using openwrt maybe its better use spi flash not sdcard.
离线
good job -but i think v3s is a little heavy for this job and some thing like STM micros is enough also without OS for industrial usage.
also by using openwrt maybe its better use spi flash not sdcard.
哈哈,用CH32V307做好像也比较合适,有稳定的网络协议栈吗?
离线
Configuring luci.
Configuring luci-i18n-opkg-zh-cn.
Configuring procps-ng-top.
Configuring luci-i18n-opkg-en.
Configuring luci-i18n-base-en.
Configuring procps-ng-pmap.
Configuring kmod-ipt-offload.
Configuring urngd.
Configuring procps-ng-pgrep.
Configuring luci-i18n-firewall-zh-cn.
Configuring ppp-mod-pppoe.
Configuring canutils-candump.
Collected errors:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for ip-full:
* libcap
* opkg_install_cmd: Cannot install package ip-full.
package/Makefile:65: recipe for target 'package/install' failed
make[2]: *** [package/install] Error 255
make[2]: Leaving directory '/opt2/openwrt/openwrt_v3s_can_gateway'
package/Makefile:108: recipe for target '/opt2/openwrt/openwrt_v3s_can_gateway/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/stamp/.package_install' failed
make[1]: *** [/opt2/openwrt/openwrt_v3s_can_gateway/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/stamp/.package_install] Error 2
make[1]: Leaving directory '/opt2/openwrt/openwrt_v3s_can_gateway'
/opt2/openwrt/openwrt_v3s_can_gateway/include/toplevel.mk:225: recipe for target 'world' failed
make: *** [world] Error 2[/b]
[b]real 6m44.278s
user 5m32.328s
sys 1m35.930s
#
咦,编译错误了
离线
make package/feeds/packages/canutils/compile V=s
make[1]: Entering directory '/opt2/openwrt/openwrt_v3s_can_gateway'
make[2]: Entering directory '/opt2/openwrt/openwrt_v3s_can_gateway/package/libs/toolchain'
echo "libc" >> /opt2/openwrt/openwrt_v3s_can_gateway/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/pkginfo/toolchain.default.install
echo "libgcc" >> /opt2/openwrt/openwrt_v3s_can_gateway/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/pkginfo/toolchain.default.install
echo "libpthread" >> /opt2/openwrt/openwrt_v3s_can_gateway/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/pkginfo/toolchain.default.install
echo "librt" >> /opt2/openwrt/openwrt_v3s_can_gateway/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/pkginfo/toolchain.default.install
make[2]: Leaving directory '/opt2/openwrt/openwrt_v3s_can_gateway/package/libs/toolchain'
time: package/libs/toolchain/compile#0.12#0.04#0.16
make[2]: Entering directory '/opt2/openwrt/openwrt_v3s_can_gateway/feeds/packages/utils/canutils'
mkdir -p /opt2/openwrt/openwrt_v3s_can_gateway/dl
SHELL= flock /opt2/openwrt/openwrt_v3s_can_gateway/tmp/.canutils-2017-02-16-cb33a557.tar.xz.flock -c ' /opt2/openwrt/openwrt_v3s_can_gateway/scripts/download.pl "/opt2/openwrt/openwrt_v3s_can_gateway/dl" "canutils-2017-02-16-cb33a557.tar.xz" "d9c01eeff3d81a28161ca5c3937ec005a1f49ca3eb97bee0164d53cc66365786" "" || ( /opt2/openwrt/openwrt_v3s_can_gateway/scripts/dl_github_archive.py --dl-dir="/opt2/openwrt/openwrt_v3s_can_gateway/dl" --url="https://github.com/linux-can/can-utils" --version="cb33a55720716cbe01e6025a2bda74a1b7e492d3" --subdir="canutils-2017-02-16-cb33a557" --source="canutils-2017-02-16-cb33a557.tar.xz" --hash="d9c01eeff3d81a28161ca5c3937ec005a1f49ca3eb97bee0164d53cc66365786" || ( echo "Checking out files from the git repository..."; mkdir -p /opt2/openwrt/openwrt_v3s_can_gateway/tmp/dl && cd /opt2/openwrt/openwrt_v3s_can_gateway/tmp/dl && rm -rf canutils-2017-02-16-cb33a557 && [ \! -d canutils-2017-02-16-cb33a557 ] && git clone https://github.com/linux-can/can-utils canutils-2017-02-16-cb33a557 && (cd canutils-2017-02-16-cb33a557 && git checkout cb33a55720716cbe01e6025a2bda74a1b7e492d3 && git submodule update --init --recursive) && echo "Packing checkout..." && export TAR_TIMESTAMP=`cd canutils-2017-02-16-cb33a557 && git log -1 --format='\''@%ct'\''` && rm -rf canutils-2017-02-16-cb33a557/.git && tar --numeric-owner --owner=0 --group=0 --mode=a-s --sort=name ${TAR_TIMESTAMP:+--mtime="$TAR_TIMESTAMP"} -c canutils-2017-02-16-cb33a557 | xz -zc -7e > /opt2/openwrt/openwrt_v3s_can_gateway/tmp/dl/canutils-2017-02-16-cb33a557.tar.xz && mv /opt2/openwrt/openwrt_v3s_can_gateway/tmp/dl/canutils-2017-02-16-cb33a557.tar.xz /opt2/openwrt/openwrt_v3s_can_gateway/dl/ && rm -rf canutils-2017-02-16-cb33a557; ); ) '
echo "canutils" >> /opt2/openwrt/openwrt_v3s_can_gateway/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/pkginfo/canutils.default.install
echo "canutils-candump" >> /opt2/openwrt/openwrt_v3s_can_gateway/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/pkginfo/canutils.default.install
echo "canutils-cansend" >> /opt2/openwrt/openwrt_v3s_can_gateway/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/pkginfo/canutils.default.install
make[2]: Leaving directory '/opt2/openwrt/openwrt_v3s_can_gateway/feeds/packages/utils/canutils'
time: package/feeds/packages/canutils/compile#0.95#0.49#1.42
make[1]: Leaving directory '/opt2/openwrt/openwrt_v3s_can_gateway'
这个正常
离线
你这不考虑成本的玩法,让人佩服
离线
楼主 T113-S3能跑openwrt吗?
离线
楼主 T113-S3能跑openwrt吗?
可以,我就是跑Openwrt做4G路由器。
离线