引入rtos往往会增加系统复杂性,竞争条件,死锁。。。然后投降并放一个看门口了事。。。不建议鄙视裸奔
前年在某公司接手前辈工程师的项目,是裸奔系统,其中有一个 control.c 差不多 4000 行,,,后来。我做了这个
https://gitee.com/everlink/ee_core
相当于裸奔前提下穿一条丁字裤,然后一个control.c 化身成二十几个文件
我发现,很多做了好久单片机的同学,没有听说过竞争条件,却很懂各种RTOS
不建议装个虚拟机就假装在学linux,学shell命令的话装一下 git 就 O了, https://git-scm.com/download/win
建议从 openwrt 或者 armbian 开始,换一句话说:从刷一台路由器或者买一块开发板开始
https://www.zhihu.com/question/265186152
或者买一块能跑 armbian 的板子
https://www.armbian.com/
碰巧我焊的第一块BGA是H3,
我遇到的问题:DDR 丝印没有画好,导致对位困难,导致失败->植球->重新焊
我没有用钢网,我的体验是
- BGA 焊盘先上锡,然后清理多余的松香,期间注意不要破坏焊盘和阻焊,如果目测各个焊盘上锡不均匀,用烙铁重新拖,尽量不用吸锡线
- 预热很重要,吹之前把板子放在预热台把板子均匀加热到100C~150C。没有预热设备的情况,并且板子比较小,那考虑用风枪低温先吧整块板子均匀吹来预热一下
- 风枪温度不要太高,慢慢吹,大风嘴或中风嘴,用较低的风速
- H3 的间距小,对位很重要
- 我用的是某佬牌的有卤的焊油
动手前多看几遍教学视频,返工真的太麻烦
简言之: PCB 焊盘上锡,清理焊盘,PCB涂焊油,放芯片,对位,预热,风枪吹
农历年前有好几天都想画一块SSD20x,但是没有坚持下来,应该说一直就没有high起来
不是说不能用,只是
- 好嫌弃那个烧录方式,就算买芯片送烧录器也还是麻烦
- 这份双网口文件,看了好多遍(因为好难看到字这么少字的pdf,以为显示坏了),然后看代码,最后还是不确切知道 RGB565 怎么连。要一条一条飞线测吗 双网口配置使用说明.pdf
- 参考电路有几个错
- 其它如建构环境,,应该都能接受;烧录器和文档。。好那个
这是差一点点完成的原理图。smart-panel-r3.pdf
特别好奇的是,如果这个芯片用来做特定方案不是说已经卖得很好吗?如果想要做开源生态,像sunxi那样,还是 ... 了吧
z请问这个H2板子链接有么?
\
1,没有调通SPI-NAND
2,温度有点高。两块板子温度还不一样,怀疑是某器件一致性不好,没有继续查,听说是要散热片的。
温度: https://whycan.com/t_4705.html
固件: https://whycan.com/t_4702.html
SPI-NOR/TF确定可以愉快运行,EMMC没有料件。SPI-NAND偶尔还惦记,可能反汇编BROM/挂JTAG能解决,可能。
既然是用树莓派整,我99.9999%相信楼主是在玩(aka学习),那就不要“急急!!!!!!!!!!!!!!!!!!!!!!!1 ”
建议用树莓派跑个x86环境试试,
https://www.raspberrypi.org/forums/viewtopic.php?t=246886
刚画的 KiCAD 的封装,新鲜的,没有对过DS的
EE 说:TF卡,swapon,gcc,python,ruby,,当然还有vim
赶脚可以当电脑用
可是不能KiCAD,要不远程个桌面到阿里云跑个KiCAD和浏览器
https://whycan.com/files/members/5259/webwxgetmsgimg%20(1).jpeg
https://whycan.com/files/members/5259/webwxgetmsgimg.jpeg
https://whycan.com/files/members/5259/webwxgetmsgimg%20(2).jpeg你这个是哪里买的屏幕,看着效果不错啊,分辨率多少
800x600,旧的,漏光比较严重
前几天画板子前调了一天搞不定,反复看这个帖子,看来看来看去都像考试题。不会
第二天没有办法之下请出神器:树莓派。
按照原来帖子,树莓派的接法,很快跑通,然后再调板子。一共花了一天半。
要点:
- 按照rockchip的文档对确定好电路,按照github原贴对一遍。https://wenku.baidu.com/view/e93f719184254b35eefd3474.html
- cs 接地(如rockchip设计)
- 下载外网文件700K/s,同时用 PC 测试 9M/s
- 芯片好烫(我是拆了一共nodemcu飞线来用)
- 树莓派真是居家良药
下面是我的改动 git diff
diff --git i/.gitignore w/.gitignore
index c6127b3..b88f0e7 100644
--- i/.gitignore
+++ w/.gitignore
@@ -50,3 +50,5 @@ modules.order
Module.symvers
Mkfile.old
dkms.conf
+
+.cache.mk
diff --git i/Makefile w/Makefile
index c25d8fa..693ae60 100755
--- i/Makefile
+++ w/Makefile
@@ -9,7 +9,8 @@ KVERS_ARCH ?= $(shell arch)
# KBUILD is the path to the Linux kernel build tree. It is usually the
# same as the kernel source tree, except when the kernel was compiled in
# a separate directory.
-KBUILD ?= $(shell readlink -f /lib/modules/$(KVERS_UNAME)/build)
+# KBUILD ?= /work/f1c100s/f1c100s-linux #$(shell readlink -f /lib/modules/$(KVERS_UNAME)/build)
+KBUILD ?= /work/f1c100s/f1c100s-linux
ifeq (,$(KBUILD))
$(error Kernel build tree not found - please set KBUILD to configured kernel)
diff --git i/spi_stub.c w/spi_stub.c
index d4ffd96..26b075e 100755
--- i/spi_stub.c
+++ w/spi_stub.c
@@ -3,9 +3,9 @@
/* https://www.signal.com.tr/pdf/cat/8n-esp8266_spi_reference_en_v1.0.pdf */
-#define SPI_FREQ (10000000)
+//#define SPI_FREQ (10000000)
//#define SPI_FREQ (20000000) // 1. 22.5Mhz 2. 45Mhz
-//#define SPI_FREQ (30000000) // 1. 22.5Mhz 2. 45Mhz
+#define SPI_FREQ (30000000) // 1. 22.5Mhz 2. 45Mhz
//Below are for spi HZ 22.5M
#if (SPI_FREQ == 30000000)
@@ -109,9 +109,9 @@ static struct spi_board_info esp_board_spi_devices[] = {
{
.modalias = "ESP8089_0",
.max_speed_hz = MAX_SPEED_HZ,
- .bus_num = 1,
- .chip_select = 0,
- .mode = 0,
+ .bus_num = 0,
+ .chip_select = 1,
+ .mode = SPI_MODE_3,
},
};
F1C100S + ESP8089/ESP8286 + LCD
学习 -> https://whycan.com/t_4149.html
软件:
https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/bluedroid/classic_bt/a2dp_sink
或者
https://github.com/espressif/esp-adf/tree/master/examples/player/pipeline_bt_sink(推荐,程序本身可调音量)
注意:
1,需要根据软件配置来飞线对应相关IO
2,对于CLASS-D STA339BW需要播放前通过I2C写寄存器 [0x05] <= 0xdc,[0x07] <= 0x00
效果:
还是很满意的,ESP32到功放之间没有模拟信号。STA339BW搭配蓝牙,门当户对
GERBER / 原理图 / 固件
20201203
https://whycan.com/files/members/5522/005.png
DDR和CPU到位
DDR买了11片,80 。。 我上次问要12块一片。我后来买了旧片(也能跑)
楼主是哪家买的?有链接吗?
体积确实小 电源用一般适配器吗
是的,普通DC电源,12V到24V都可以响。如果要出足功率要18V/24V 2A或3A。笔记本电源就可以(但是笔记本DC头多种多样,计划放一个 5.5/2.5的DC座子)。
用arm搞可玩性比较大 如果开源的话 另外考虑上个有hrtim的 时基分辨率高些
目前软件详细见 https://whycan.com/t_5388.html 的19楼
hires timer 还没有打算,感觉是 446 比较适合整这类的方案,SAI / SPDIF IN
今天天气特别好,不灌水就可惜了。。
今天说Ada,Ada 是一个女生名字,而本贴说的ADA是近年我注意到的一个某类型Audio设备新的叫法,也叫FDA - full digital amplifier, (ADA也有说all digital audio ?)
首先,本人不算是发烧友,并且玩audio的人流派好多好多,以下是吹水,不要太认真。。
回题目,ADA顾名思义是全数字。现今的Audio设备通常的玩法、结构、架构大体是
音频源 -> DAC -> 运放、功放 -> 喇叭
1,音频源:各种下载的资源,CD,各种网络串流
除开极少数以外,无论是否喜欢,现在的音频源大部分是数字的;正如无论是否喜欢,现在家里的灯慢慢都变成LED的
中间如果音频在电脑里面,那还有一个 USB 转 I2S 的环节(CD和USB都深深的伤害了audio)
另外还有手机通过蓝牙,wifi直达功放(或喇叭)也算一种音频源的形式
USB数字界面,即USB-I2S。概括说:USB 异步传输送就能大体上确保DAC收到的数据是完整的;换句话说,如果不是异步模式数据是(往往是、极其有可能是)错的(不完整的)
2,DAC,是深水区的开始。各种DAC本身的特性,周边料件的特性,都会多少影响模拟电路的特性,这里的东西太多了,电源、电容、电阻热噪声,等等、等等、等等
3,功放,这部分我只分两类,分别是 CLASS-D 和其它。(正如前面说过,无论是否喜欢)CLASS-D应该是日后的主流了,就像LED灯。CLASS-D里面会将模拟输入(如果是模拟)转为数字,或者说PWM/PDM。
而有些CLASS-D是直接数字输入的(通常带DSP,可以调音量、crossover、万恶的拉曲线)
4,喇叭,或者说音箱。认真整的话这个太复杂了,如果随便玩,建议全频喇叭
5,各个环节的电源,这个太太太重要了
回来本帖子说的ADA,过程跟上面的有些许差别:
音频源 -> 功放 -> 喇叭
可以说是坐小船改坐小飞机。飞过深水区直达目的地(错过了风景,也躲过了坑)
好的数字界面、DAC、运放、功放的目的(应该的目的)是确保信号(数据)正确的传送、真实的还原,而没有中间环节当然就没有还原好不好的问题。也没有各种DAC的味道(失真)不同的问题,少一些换电容的纠结
我认为ADA系统更容易最大程地度还原该还原的声音(然而Audio的体验,真的太太太复杂,感受因人而异;正如珍奶或咖啡,原味往往不一定是最讨好的)
另外,相比之下ADA系统的电源也好整太太太多了
各种设备实现的形式也差异,有的是带播放器(数字转盘?)的有的带光钎输入,蓝牙,有的带wifi、以太网。大致搜索可找到如
sonos 系列(我有一台。。。吃灰)
Technics SU-xxx 系列
Denon PMA-xxx 系列
本工程师(无发烧症状)喜欢听歌,不久前又双叒叕开始想整auido的板子,这次是用ADA的思路往最简单的方向整。
关键零件是 STM32F401(或STM32F446)做输入界面,然后直接接功放 TAS5731(或者STA339BW)。带一对喜欢的3寸喇叭,喇叭放在显示器两边。
现在感觉关键的东西整差不多了,听了两天声音干净、该没的没,该有的有。20W+20W,物料成本可能50上下(不超过100。不含电源,可用笔记本电脑电源,可用任何12V~24V的DC电源,不含喇叭),下一步除了继续盖楼吹水外,12月找时间改成小板子(放我自己之前DIY用的小盒子),如果物料足够就多整两块PCBA送whycan有兴趣玩网友
Blueskull 说:EE 说:做所谓操作系统(和做芯片)都没有做生态难
生态的成功往往是一个人(主管)的观念、领导力所致
是的,RTOS说到底值钱的就是context switching那几行代码。其他的都没啥。这玩意写第一遍觉得很nb,第二遍就是常规操作了。
大点的系统无非就加入了ipc,通信等等,都是搭积木。
这话从根本上来说没毛病,但是系统架构设计,兼容性设计,健壮性这些都非常重要,大多数的研发都是投入在这里上去
"大多数的研发都是投入在这里上去"
我会说:一些公司往往会把大多数的研发(钱)都是投入在这里(上述)上去
但是,我最想说的那句是:做工程的,如果没有彻底认清社会科学的重要性,那么想要到达另外的层次,要更困难些
举一个好遥远的例子,Linus 技术厉害不用怀疑,但是造就 kernel 成功的不是 Linus 的技术,而是他能在那么松散的开发团队里面,管理那些,资源
我视乎没有认真算过线宽/过孔/接插件能走多少电流。。 上 STA350 那么 50W+50W,powerVCC/GND 我只排了 2 + 2 条排针
等装上看排针会不会冒烟
https://www.eevblog.com/forum/projects/pin-header-current-capacity/
牺牲了TAS5731x2+F401x1,从焊盘的颜色可以看出翻车的节奏
后来调响了,带一对小的全频喇叭听了两小时,还是挺满意的。。
电路图如下附件。少了两根线,已经在第一页标注
电路图(有bug,第一页已经备注)
F401-UAC.pdf
功放驱动:
通过I2C(地址 0x34)写三个寄存器
0x1b 寄存器写 0x00
0x05 寄存器写 0x00
0x07 寄存器写 0x50 (音量,0x30大声,0xff mute)
就O啦,有空再整一个编码器调音量
FAQ:
Q:为什么用 TAS5731
A:功率级的 Rds-on 低,放在小盒子里面不烫
屏规格书写的是 行场,或者 DE模式都支持。但是实际上,只支持DE
EE 说:angelsan 说:x:1024,y:600,depth:24,pclk_khz:55000,le:100,ri:170,up:10,lo:15,hs:50,vs:10,sync:3,vmode:0
DCLK,Hs,Vs都对,但是数据线全部没有信号,求教。(把点 800*480屏的 uboot文件烧进去,正常,都有信号,说明硬件是没问题的。)
屏的规格书写是 DE 屏吗
用示波器量,然后对规格书,慢慢磨咯
我之前调过两屏幕(40pin一只,60pin一只),排线上接下接的事情坑了我一个小时
建议先用楼上大师的测试固件调硬件,确定相关pin脚都有信号,确定背光有电
公司里面通常有服务器,我认为建一个git是个好主意。
我情况是家里有台机,运行ubuntu和win10,不是每天都换不同系统,比如整armbian时开ubuntu,kicad用ubuntu。偶尔开altium、偶尔用keil,开win10。
有一台轻便mibook,外出时带着走
有一台装了三个系统的macbook pro
用一台闲置的笔记本有时候用来下文件
有一台播放器,可以运行xmbc/kodi偶尔放一些本地(现在是samba共享)视频、音乐
ipad 装 vlc,偶尔放视频音乐(现在是通过samba)
我最后的解决方案是:在弱电箱放了一个树莓派和 2.5存 USB 移动硬盘,nfs + samba + gitosis 基本妥了
特点:省电,安静,不占地方
掉电问题,以我自己的数据安全需求来衡量,我认为不需要考虑。暴力断电不少次,没有丢过什么文件;用锂电做一个(或买一个)树莓派的UPS也是简单的。
数据冗余备份,我也没有考虑,定期用另外一个硬盘备份一次,关键的git在工作机就有完整的副本;可以考虑挂树莓派挂两个移动硬盘做个冗余
关键解决的是:供电。我的方案是用一个5V/2A的电通过树莓派的插针供电。用USB线给树莓派供电带不起两个硬盘或者一个双碟硬盘。
时间救辣妈走了,前几天开ubuntu时发现我还有注册了一个没有发过帖的小背心,今天来up一下
想必是 stm32 的生态好、社群够大,用 stm32 做 usb audio 的人真不少,成熟度也很好。我觉得没有必要再做另外的些开源了,直接分享下这一个月的收获
主要是以下两个:
1,一位俄罗斯(估计)的 USB-I2S bridge
- 源码:https://github.com/chipdipru/USB-Hi-Res-Audio-USB-I2S-STM32F446RC
- 电路图(kicad):https://www.chipdip.ru/product0/9000569733
- WIN10 免驱
2,国内一位大佬的项目用 401
- 源码:https://github.com/rushxrushx/stm32f4_usbaudio
- 电路图:用 401 的breakout 板子自己焊一个有源晶振就O了。(对照着源码),为了充分验证这位大神的代码,我还画了一块板子,有需要的楼下跟帖我会发pdf和gerber
- 需要 xmos 的驱动,需要安装时可以问某度 https://www.baidu.com/s?wd=xmos%20win10%20%E9%A9%B1%E5%8A%A8%E4%B8%8B%E8%BD%BD