其实是几个月前搞的了。。马上giao考了,没时间搞软件了。。
这板子旨在用比较紧凑的空间,使用二层板,堆出最全的功能。板子大小只有5*7(主要是我那个屏也是这么大)。
功能大致包括:电池充电、电源开关管理(2个mos管堆出来的)、调试串口、USB Device、USB主从状态监测(可软件切换实现OTC)、板载USB Hub芯片、一个USB2.0 Host接口(配有5v升压电路)、USB WiFi+BT、蓝牙音频(PCM)、模拟音频、麦克风、KeyADC、RTC芯片、触摸ADC芯片(附带电池电压检测)、SD卡、SPI Nor Flash、以及一个接口十分反人类的LCD(不是标准40pin,而且线还跟一般的屏是反着的)。。
虽然功能这么多,但实际焊接调好的没几个。。关键的功能比如USBHub WIFi蓝牙音频以及液晶屏(不过这屏我在另一帖里调出来过)啥的都还没来得及调。。时间比较少,我只移植到Uboot就没再搞了Orz,所以软件部分没啥参考性了。硬件至少目前调通的还凑合没问题,有个主要问题是串口的保护二极管没弄,我有个USB-TTL板似乎被搞坏了。
其实本来我是想搞个类似MP5的功能,能一定程度上连接网络,能听歌,而且能连蓝牙。但仔细想想我Linux没啥经验,外壳3D设计更是还一窍不通。。再加上我还高三了,然后我就摆了,准备先高中毕业再继续调这玩意。
最后是AD工程,这F1C200s还是我手画的,包括3D封装啥的。。。
项目就叫 个人数字终端 测试板:PersonalTerminalTest.7z
PDF:PersonalTerminalTest.pdf
再贴点图
最后这有个上电软启动VBAT的图,不知道是不是电容太多的缘故,有个很大的波动。。但总之没影响启动
最近编辑记录 f_Endman (2022-02-16 21:23:32)
离线
想问下,原理图部分电源开关的开关在哪里?
离线
厉害啊,还没高中毕业就玩这个
离线
现在的小朋友都这么猛的吗?
离线
https://whycan.com/files/members/4444/20220217093815.png
想问下,原理图部分电源开关的开关在哪里?
开关是用飞线加在了D3那个Debug二极管的一端和VBAT之间
正常上电我想的是按下Key_Power手动上电,然后在芯片UBoot阶段BootDelay倒计时结束后把PowerOn引脚拉高,来实现类似手机的一个上电过程
最近编辑记录 f_Endman (2022-02-17 15:15:52)
离线
@f_Endman
哦,我也参考网上的原理图做了一个跟你类似功能的,不过有些区别,PWR_KEY(SW2)是独立的,未接到LRADC上
注:R3是用来调试用的
离线
@f_Endman
哦,我也参考网上的原理图做了一个跟你类似功能的,不过有些区别,PWR_KEY(SW2)是独立的,未接到LRADC上
https://whycan.com/files/members/4444/20220217161656.png
注:R3是用来调试用的
pwr_off是用来是否有按按键的吧
离线
这几个周末抽空把屏幕调通了,ST7789v屏幕的初始化最终选择分别写了模拟spi的驱动和st7789v初始化的驱动,没有使用硬件spi的原因是我突然意识到我板子上那个ds1302是双线spi的。。而且时钟频率不能太高,然而刚好我测试st7789v的时钟频率不能太低,所以最后只能使用了模拟spi控制总线上的三个设备。。
还有我在mpv播放器上踩了不少坑,最后发现最简单的方式是用Linux的DRM在Framebuffer上播放
要开启buildroot和Kernel里的DRM,然后buildroot重新编译mpv
mpv --vo=drm --no-audio --profile=sw-fast /media/BadApple.mp4
最近编辑记录 f_Endman (2022-03-05 16:07:23)
离线
@f_Endman
请问楼主,这个CPU ARM926 你是使用的哪个工具链?
离线
@f_Endman
请问楼主,这个CPU ARM926 你是使用的哪个工具链?
是这个gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi
离线
音频codec电路已经调到比较理想状态了,声卡驱动参考https://whycan.com/t_2041.html,我的alsa设置(主要是Codec的control1和2影响比较大):
state.Loopback {
control.1 {
iface PCM
name 'PCM Rate Shift 100000'
value 100000
comment {
access 'read write'
type INTEGER
count 1
range '80000 - 120000 (step 1)'
}
}
control.2 {
iface PCM
name 'PCM Notify'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.3 {
iface PCM
name 'PCM Slave Active'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.4 {
iface PCM
name 'PCM Slave Format'
value 2
comment {
access read
type INTEGER
count 1
range '0 - 52 (step 1)'
}
}
control.5 {
iface PCM
name 'PCM Slave Rate'
value 48000
comment {
access read
type INTEGER
count 1
range '0 - 192000 (step 1)'
}
}
control.6 {
iface PCM
name 'PCM Slave Channels'
value 2
comment {
access read
type INTEGER
count 1
range '1 - 1024 (step 1)'
}
}
control.7 {
iface PCM
subdevice 1
name 'PCM Rate Shift 100000'
value 100000
comment {
access 'read write'
type INTEGER
count 1
range '80000 - 120000 (step 1)'
}
}
control.8 {
iface PCM
subdevice 1
name 'PCM Notify'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.9 {
iface PCM
subdevice 1
name 'PCM Slave Active'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.10 {
iface PCM
subdevice 1
name 'PCM Slave Format'
value 2
comment {
access read
type INTEGER
count 1
range '0 - 52 (step 1)'
}
}
control.11 {
iface PCM
subdevice 1
name 'PCM Slave Rate'
value 48000
comment {
access read
type INTEGER
count 1
range '0 - 192000 (step 1)'
}
}
control.12 {
iface PCM
subdevice 1
name 'PCM Slave Channels'
value 2
comment {
access read
type INTEGER
count 1
range '1 - 1024 (step 1)'
}
}
control.13 {
iface PCM
subdevice 2
name 'PCM Rate Shift 100000'
value 100000
comment {
access 'read write'
type INTEGER
count 1
range '80000 - 120000 (step 1)'
}
}
control.14 {
iface PCM
subdevice 2
name 'PCM Notify'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.15 {
iface PCM
subdevice 2
name 'PCM Slave Active'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.16 {
iface PCM
subdevice 2
name 'PCM Slave Format'
value 2
comment {
access read
type INTEGER
count 1
range '0 - 52 (step 1)'
}
}
control.17 {
iface PCM
subdevice 2
name 'PCM Slave Rate'
value 48000
comment {
access read
type INTEGER
count 1
range '0 - 192000 (step 1)'
}
}
control.18 {
iface PCM
subdevice 2
name 'PCM Slave Channels'
value 2
comment {
access read
type INTEGER
count 1
range '1 - 1024 (step 1)'
}
}
control.19 {
iface PCM
subdevice 3
name 'PCM Rate Shift 100000'
value 100000
comment {
access 'read write'
type INTEGER
count 1
range '80000 - 120000 (step 1)'
}
}
control.20 {
iface PCM
subdevice 3
name 'PCM Notify'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.21 {
iface PCM
subdevice 3
name 'PCM Slave Active'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.22 {
iface PCM
subdevice 3
name 'PCM Slave Format'
value 2
comment {
access read
type INTEGER
count 1
range '0 - 52 (step 1)'
}
}
control.23 {
iface PCM
subdevice 3
name 'PCM Slave Rate'
value 48000
comment {
access read
type INTEGER
count 1
range '0 - 192000 (step 1)'
}
}
control.24 {
iface PCM
subdevice 3
name 'PCM Slave Channels'
value 2
comment {
access read
type INTEGER
count 1
range '1 - 1024 (step 1)'
}
}
control.25 {
iface PCM
subdevice 4
name 'PCM Rate Shift 100000'
value 100000
comment {
access 'read write'
type INTEGER
count 1
range '80000 - 120000 (step 1)'
}
}
control.26 {
iface PCM
subdevice 4
name 'PCM Notify'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.27 {
iface PCM
subdevice 4
name 'PCM Slave Active'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.28 {
iface PCM
subdevice 4
name 'PCM Slave Format'
value 2
comment {
access read
type INTEGER
count 1
range '0 - 52 (step 1)'
}
}
control.29 {
iface PCM
subdevice 4
name 'PCM Slave Rate'
value 48000
comment {
access read
type INTEGER
count 1
range '0 - 192000 (step 1)'
}
}
control.30 {
iface PCM
subdevice 4
name 'PCM Slave Channels'
value 2
comment {
access read
type INTEGER
count 1
range '1 - 1024 (step 1)'
}
}
control.31 {
iface PCM
subdevice 5
name 'PCM Rate Shift 100000'
value 100000
comment {
access 'read write'
type INTEGER
count 1
range '80000 - 120000 (step 1)'
}
}
control.32 {
iface PCM
subdevice 5
name 'PCM Notify'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.33 {
iface PCM
subdevice 5
name 'PCM Slave Active'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.34 {
iface PCM
subdevice 5
name 'PCM Slave Format'
value 2
comment {
access read
type INTEGER
count 1
range '0 - 52 (step 1)'
}
}
control.35 {
iface PCM
subdevice 5
name 'PCM Slave Rate'
value 48000
comment {
access read
type INTEGER
count 1
range '0 - 192000 (step 1)'
}
}
control.36 {
iface PCM
subdevice 5
name 'PCM Slave Channels'
value 2
comment {
access read
type INTEGER
count 1
range '1 - 1024 (step 1)'
}
}
control.37 {
iface PCM
subdevice 6
name 'PCM Rate Shift 100000'
value 100000
comment {
access 'read write'
type INTEGER
count 1
range '80000 - 120000 (step 1)'
}
}
control.38 {
iface PCM
subdevice 6
name 'PCM Notify'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.39 {
iface PCM
subdevice 6
name 'PCM Slave Active'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.40 {
iface PCM
subdevice 6
name 'PCM Slave Format'
value 2
comment {
access read
type INTEGER
count 1
range '0 - 52 (step 1)'
}
}
control.41 {
iface PCM
subdevice 6
name 'PCM Slave Rate'
value 48000
comment {
access read
type INTEGER
count 1
range '0 - 192000 (step 1)'
}
}
control.42 {
iface PCM
subdevice 6
name 'PCM Slave Channels'
value 2
comment {
access read
type INTEGER
count 1
range '1 - 1024 (step 1)'
}
}
control.43 {
iface PCM
subdevice 7
name 'PCM Rate Shift 100000'
value 100000
comment {
access 'read write'
type INTEGER
count 1
range '80000 - 120000 (step 1)'
}
}
control.44 {
iface PCM
subdevice 7
name 'PCM Notify'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.45 {
iface PCM
subdevice 7
name 'PCM Slave Active'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.46 {
iface PCM
subdevice 7
name 'PCM Slave Format'
value 2
comment {
access read
type INTEGER
count 1
range '0 - 52 (step 1)'
}
}
control.47 {
iface PCM
subdevice 7
name 'PCM Slave Rate'
value 48000
comment {
access read
type INTEGER
count 1
range '0 - 192000 (step 1)'
}
}
control.48 {
iface PCM
subdevice 7
name 'PCM Slave Channels'
value 2
comment {
access read
type INTEGER
count 1
range '1 - 1024 (step 1)'
}
}
control.49 {
iface PCM
device 1
name 'PCM Rate Shift 100000'
value 100000
comment {
access 'read write'
type INTEGER
count 1
range '80000 - 120000 (step 1)'
}
}
control.50 {
iface PCM
device 1
name 'PCM Notify'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.51 {
iface PCM
device 1
name 'PCM Slave Active'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.52 {
iface PCM
device 1
name 'PCM Slave Format'
value 2
comment {
access read
type INTEGER
count 1
range '0 - 52 (step 1)'
}
}
control.53 {
iface PCM
device 1
name 'PCM Slave Rate'
value 48000
comment {
access read
type INTEGER
count 1
range '0 - 192000 (step 1)'
}
}
control.54 {
iface PCM
device 1
name 'PCM Slave Channels'
value 2
comment {
access read
type INTEGER
count 1
range '1 - 1024 (step 1)'
}
}
control.55 {
iface PCM
device 1
subdevice 1
name 'PCM Rate Shift 100000'
value 100000
comment {
access 'read write'
type INTEGER
count 1
range '80000 - 120000 (step 1)'
}
}
control.56 {
iface PCM
device 1
subdevice 1
name 'PCM Notify'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.57 {
iface PCM
device 1
subdevice 1
name 'PCM Slave Active'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.58 {
iface PCM
device 1
subdevice 1
name 'PCM Slave Format'
value 2
comment {
access read
type INTEGER
count 1
range '0 - 52 (step 1)'
}
}
control.59 {
iface PCM
device 1
subdevice 1
name 'PCM Slave Rate'
value 48000
comment {
access read
type INTEGER
count 1
range '0 - 192000 (step 1)'
}
}
control.60 {
iface PCM
device 1
subdevice 1
name 'PCM Slave Channels'
value 2
comment {
access read
type INTEGER
count 1
range '1 - 1024 (step 1)'
}
}
control.61 {
iface PCM
device 1
subdevice 2
name 'PCM Rate Shift 100000'
value 100000
comment {
access 'read write'
type INTEGER
count 1
range '80000 - 120000 (step 1)'
}
}
control.62 {
iface PCM
device 1
subdevice 2
name 'PCM Notify'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.63 {
iface PCM
device 1
subdevice 2
name 'PCM Slave Active'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.64 {
iface PCM
device 1
subdevice 2
name 'PCM Slave Format'
value 2
comment {
access read
type INTEGER
count 1
range '0 - 52 (step 1)'
}
}
control.65 {
iface PCM
device 1
subdevice 2
name 'PCM Slave Rate'
value 48000
comment {
access read
type INTEGER
count 1
range '0 - 192000 (step 1)'
}
}
control.66 {
iface PCM
device 1
subdevice 2
name 'PCM Slave Channels'
value 2
comment {
access read
type INTEGER
count 1
range '1 - 1024 (step 1)'
}
}
control.67 {
iface PCM
device 1
subdevice 3
name 'PCM Rate Shift 100000'
value 100000
comment {
access 'read write'
type INTEGER
count 1
range '80000 - 120000 (step 1)'
}
}
control.68 {
iface PCM
device 1
subdevice 3
name 'PCM Notify'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.69 {
iface PCM
device 1
subdevice 3
name 'PCM Slave Active'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.70 {
iface PCM
device 1
subdevice 3
name 'PCM Slave Format'
value 2
comment {
access read
type INTEGER
count 1
range '0 - 52 (step 1)'
}
}
control.71 {
iface PCM
device 1
subdevice 3
name 'PCM Slave Rate'
value 48000
comment {
access read
type INTEGER
count 1
range '0 - 192000 (step 1)'
}
}
control.72 {
iface PCM
device 1
subdevice 3
name 'PCM Slave Channels'
value 2
comment {
access read
type INTEGER
count 1
range '1 - 1024 (step 1)'
}
}
control.73 {
iface PCM
device 1
subdevice 4
name 'PCM Rate Shift 100000'
value 100000
comment {
access 'read write'
type INTEGER
count 1
range '80000 - 120000 (step 1)'
}
}
control.74 {
iface PCM
device 1
subdevice 4
name 'PCM Notify'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.75 {
iface PCM
device 1
subdevice 4
name 'PCM Slave Active'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.76 {
iface PCM
device 1
subdevice 4
name 'PCM Slave Format'
value 2
comment {
access read
type INTEGER
count 1
range '0 - 52 (step 1)'
}
}
control.77 {
iface PCM
device 1
subdevice 4
name 'PCM Slave Rate'
value 48000
comment {
access read
type INTEGER
count 1
range '0 - 192000 (step 1)'
}
}
control.78 {
iface PCM
device 1
subdevice 4
name 'PCM Slave Channels'
value 2
comment {
access read
type INTEGER
count 1
range '1 - 1024 (step 1)'
}
}
control.79 {
iface PCM
device 1
subdevice 5
name 'PCM Rate Shift 100000'
value 100000
comment {
access 'read write'
type INTEGER
count 1
range '80000 - 120000 (step 1)'
}
}
control.80 {
iface PCM
device 1
subdevice 5
name 'PCM Notify'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.81 {
iface PCM
device 1
subdevice 5
name 'PCM Slave Active'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.82 {
iface PCM
device 1
subdevice 5
name 'PCM Slave Format'
value 2
comment {
access read
type INTEGER
count 1
range '0 - 52 (step 1)'
}
}
control.83 {
iface PCM
device 1
subdevice 5
name 'PCM Slave Rate'
value 48000
comment {
access read
type INTEGER
count 1
range '0 - 192000 (step 1)'
}
}
control.84 {
iface PCM
device 1
subdevice 5
name 'PCM Slave Channels'
value 2
comment {
access read
type INTEGER
count 1
range '1 - 1024 (step 1)'
}
}
control.85 {
iface PCM
device 1
subdevice 6
name 'PCM Rate Shift 100000'
value 100000
comment {
access 'read write'
type INTEGER
count 1
range '80000 - 120000 (step 1)'
}
}
control.86 {
iface PCM
device 1
subdevice 6
name 'PCM Notify'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.87 {
iface PCM
device 1
subdevice 6
name 'PCM Slave Active'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.88 {
iface PCM
device 1
subdevice 6
name 'PCM Slave Format'
value 2
comment {
access read
type INTEGER
count 1
range '0 - 52 (step 1)'
}
}
control.89 {
iface PCM
device 1
subdevice 6
name 'PCM Slave Rate'
value 48000
comment {
access read
type INTEGER
count 1
range '0 - 192000 (step 1)'
}
}
control.90 {
iface PCM
device 1
subdevice 6
name 'PCM Slave Channels'
value 2
comment {
access read
type INTEGER
count 1
range '1 - 1024 (step 1)'
}
}
control.91 {
iface PCM
device 1
subdevice 7
name 'PCM Rate Shift 100000'
value 100000
comment {
access 'read write'
type INTEGER
count 1
range '80000 - 120000 (step 1)'
}
}
control.92 {
iface PCM
device 1
subdevice 7
name 'PCM Notify'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.93 {
iface PCM
device 1
subdevice 7
name 'PCM Slave Active'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.94 {
iface PCM
device 1
subdevice 7
name 'PCM Slave Format'
value 2
comment {
access read
type INTEGER
count 1
range '0 - 52 (step 1)'
}
}
control.95 {
iface PCM
device 1
subdevice 7
name 'PCM Slave Rate'
value 48000
comment {
access read
type INTEGER
count 1
range '0 - 192000 (step 1)'
}
}
control.96 {
iface PCM
device 1
subdevice 7
name 'PCM Slave Channels'
value 2
comment {
access read
type INTEGER
count 1
range '1 - 1024 (step 1)'
}
}
}
state.Codec {
control.1 {
iface MIXER
name 'DAC Playback Volume'
value 57
comment {
access 'read write'
type INTEGER
count 1
range '0 - 63'
dbmin -7308
dbmax 0
dbvalue.0 -696
}
}
control.2 {
iface MIXER
name 'Headphone Playback Volume'
value 55
comment {
access 'read write'
type INTEGER
count 1
range '0 - 63'
dbmin -9999999
dbmax 0
dbvalue.0 -800
}
}
control.3 {
iface MIXER
name 'Headphone Playback Switch'
value.0 true
value.1 true
comment {
access 'read write'
type BOOLEAN
count 2
}
}
control.4 {
iface MIXER
name 'Line In Playback Volume'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 7'
dbmin -450
dbmax 600
dbvalue.0 -450
}
}
control.5 {
iface MIXER
name 'FM In Playback Volume'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 7'
dbmin -450
dbmax 600
dbvalue.0 -450
}
}
control.6 {
iface MIXER
name 'Mic In Playback Volume'
value 7
comment {
access 'read write'
type INTEGER
count 1
range '0 - 7'
dbmin -450
dbmax 600
dbvalue.0 600
}
}
control.7 {
iface MIXER
name 'Mic Boost Volume'
value 7
comment {
access 'read write'
type INTEGER
count 1
range '0 - 7'
dbmin 0
dbmax 4200
dbvalue.0 4200
}
}
control.8 {
iface MIXER
name 'ADC Capture Volume'
value 7
comment {
access 'read write'
type INTEGER
count 1
range '0 - 7'
dbmin -450
dbmax 600
dbvalue.0 600
}
}
control.9 {
iface MIXER
name 'ADC Mixer Right Out Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.10 {
iface MIXER
name 'ADC Mixer Left Out Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.11 {
iface MIXER
name 'ADC Mixer Line In Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.12 {
iface MIXER
name 'ADC Mixer Right FM In Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.13 {
iface MIXER
name 'ADC Mixer Left FM In Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.14 {
iface MIXER
name 'ADC Mixer Mic Capture Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.15 {
iface MIXER
name 'Left Mixer Right DAC Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.16 {
iface MIXER
name 'Left Mixer Left DAC Playback Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.17 {
iface MIXER
name 'Left Mixer FM In Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.18 {
iface MIXER
name 'Left Mixer Line In Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.19 {
iface MIXER
name 'Left Mixer Mic In Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.20 {
iface MIXER
name 'Right Mixer Left DAC Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.21 {
iface MIXER
name 'Right Mixer Right DAC Playback Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.22 {
iface MIXER
name 'Right Mixer FM In Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.23 {
iface MIXER
name 'Right Mixer Line In Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.24 {
iface MIXER
name 'Right Mixer Mic In Playback Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.25 {
iface MIXER
name 'Headphone Source Playback Route'
value.0 Mixer
value.1 Mixer
comment {
access 'read write'
type ENUMERATED
count 2
item.0 DAC
item.1 Mixer
}
}
}
电路有些问题,参考了https://whycan.com/t_5779.html将声道的串联电容改成了串联47欧电阻
有一个我不知道什么原理的问题,就是用我原本的电路拖头戴耳机,播放结束关闭dac的时候芯片直接彻底死机(硬复位都没用的那种),但是将hpcom对地改成43r+1uf后就没再出现问题。改之前我用示波器看到hpcom上有0.3v左右的高频振荡,改后震荡消失,底噪也有了很大改善。但无论如何都会出现于上述帖子一样的掉电pop声,不过也无伤大雅了,音质还算可以,底噪也在一个能接受的范围。
最近编辑记录 f_Endman (2022-03-12 14:58:30)
离线
现在WiFi是调通了,TCP双向45Mbps,但是蓝牙始终不行。蓝牙能够扫描到手机,尝试连接无报错但也无反应。。有没有人用过rtl8723bu这个模块调通蓝牙的朋友,分享一下怎么弄得。
我用的这个驱动https://github.com/SonelSA/rtl8723bu_realtek,而不是内核里的驱动,内核驱动WiFi能通,但是芯片发热很严重,并且速度缓慢,蓝牙也还是不行。问题相关现象我在上面git仓库里发了一个issue。
顺便f1c200s的USB只能挂载3个节点是我没想到的,我整一个hub芯片直接白费了。。还有usb-a和5v升压也白搞了。。
最近编辑记录 f_Endman (2022-03-27 17:40:41)
离线
@f_Endman
哈哈,我当初也是被这个USB整蒙了,最后才查到论坛里有人说不能超过三个端点。本来打算用hub挂usb4G网卡的,结果只能选择wifi网卡了。
离线
哇,,高中生就会这么多,感觉我大学白读了啊,,我哭了。我的人生没意思了,,搞了这么多年到头来比不上一个高中生呜呜呜
离线
哇,,高中生就会这么多,感觉我大学白读了啊,,我哭了。我的人生没意思了,,搞了这么多年到头来比不上一个高中生呜呜呜
可能初中也白读了:
新人的提问,本人初一,对电脑很感兴趣,现在学linux是不是太早了?
https://whycan.com/t_7965.html
离线
@哇酷小二
哇,,我服了,你这个管理员沙杀人还要诛心~
离线
寄了,rtl8723bu这吊玩意玄学问题太多了。。f1c好像也不太能够驾驭得起。。准备弃坑了,之后想搞一下f133的板子
之前wifi蓝牙只能开一个,然后我拆了usbhub芯片直接飞线usb信号,wifi蓝牙就能同时打开了,但蓝牙依旧无法正常配对连接,而且飞线导致usb通信速率缓慢,不想搞了
最近编辑记录 f_Endman (2022-04-03 13:17:40)
离线
闲着没事干(指还有一个多月高考),花了半天把NES模拟器移植上来了,用的这个arm-NES-linux,但这个是直接写fb的方式,背后的控制台还在不停刷新,很烦人。。于是我就浅改了一下,搞成drm的了,可以单独显示了。不过声音非常抽象,延迟有几秒,而且模拟器速度快了一点,不过总之是别人在别的平台上移植的,我也没改,效果还算差强人意。视频里没插耳机,太辣耳朵了
最近编辑记录 f_Endman (2022-04-29 17:13:58)
离线
听到些许质疑声,想了想我还是说下我的历程吧
我小学初中基本每年都有小半个学期不去,就算去学校也是三天打鱼两天晒网。
六年级被玩游戏网上认识的一个朋友带着自己焊板子,一开始是功放,就是这时候我学会了用记号笔在覆铜板上画电路或热转印加化学蚀刻和手工做uv固化绿油等一系列手艺。后来他提到单片机,然后他去玩了树莓派,还用那玩意挖矿(现在想想他还挺超前的?)。。
我一开始自己焊51的板子,最早甚至用的都是跟功放ic顺便买来的51加上从不知道哪里拆下来的频率诡异的晶振在洞洞板上焊的,我就用这玩意完成了第一次点灯,然后买了郭天祥那本书,用洞洞板正经焊了个最小系统板,一边看一边在keil上一点一点写东西,还用洞洞板做了很多模块。
再后来又发现淘宝店卖stm32的最小系统板,比51nb多了,于是开始玩stm32,跟着网上搜的教学视频用st的库文件写程序,点了lcd,点了摄像头,然后又用ad学着画起了pcb,自己做了块f103zet6的带lcd 摄像头 sram的开发板(那时候没钱,抠门的要死,救世主jlc也没出现,打板加上各种ic购置是下了挺大决心才弄下来的),这时候差不多是我初中快毕业了。。
在这之前,由于我爸是搞机械的,他或许是看我在家精神状态不好,找了一个挺简单的声音检测分拣的工业项目带我出去大老远去干,估计一开始也没想让我搞成,最后我用低成本51加声强检测模块然后驱动步进电机分拣弄出来了,但最后由于那个机器太过嘈杂,改成我爸重新设计机器了,后来是他用的专业的控制器自己弄的了,我就不清楚了。
之后高一疫情那会自己在家用木头(现在想想都觉得离谱)和网上买来的乱七八糟的零件搭了一台3d打印机,然后最搞的是我那时候自命不凡,完全没用开源的库,硬是自己堆出来了一个不完全的g代码解释器,还有三轨步进电机的同步加速算法(现在想想有很多问题),然后跑在了我那个stm32的开发板上,自己搭起了一个四通道的步进电机驱动板,和一个mos管的加热驱动电路,然后再用pid控温。。但由于用的木头实在是太垃圾了,精度低不说,有的时候直接卡住,后来螺杆都弯了,再加上拧各种螺丝,锯各种木头,那段时间手每天都在疼,直接给我干了个精神创伤,一气之下给拆了。
然后我好像就没再怎么继续玩stm32了,最后的印象就是在上面移植lvgl。。
后来看到稚晖君发的小电脑的视频,顺着了解到荔枝派,发现这才是我一直想找的东西,然后买了个荔枝派到手,,结果发现这东西简直对新手太不友好了,于是我又买了某原子的imx开发板跟着视频学,他那个视频一开始写的裸机,还教了怎么写BootLoader,于是后来我找到这个论坛后第一个贴就是写的f1c100s的裸机BootLoader。
最后就到了这个板子。这是我7年断断续续的浅薄的经验积淀下来的。
但要说我花了多少心思在这上面,其实也没有。从小经常辍学,和父母对着干,后来都搞的抑郁了,但好在课没落下,这才考了个最差的公立高中。。从小到大由于小半的时间都没去学校,我在各种游戏、乐器、绘画上也都有接触,但最让我感兴趣的还是写程序,积淀下来最多也是这个。高中还用C#写过一个"特殊用途"的手机APP,和(给一个沙雕同学写的)fps图像识别锁轮廓的游戏外挂,鼠标运动算法用的pid,被他称赞为他见过非暴力锁的最准的挂(是不是前后都连上了),当然他发誓从没开挂打pvp(拿亲m发誓的那种)。哦,说来我面向对象和.NET C#还是在一个可以内置编程的太空沙盒游戏里跟着大佬零零星星的教学自学的(是不是又连上了)
最后要说背后有谁提点过的话,大概是一开始那个网友、郭天祥老师、某原子哥,和我辍学在家也没把我赶出去还给我支持的爸妈,剩下的就靠我从几乎小与生俱来的可谓莫名其妙的兴趣
最近编辑记录 f_Endman (2022-04-30 01:59:00)
离线
我并不是说读书没用,我不能拿我的特殊性来说明大部分学生
虽然我经常不去学校,但我依旧热爱数理化,高中成绩也还算不错(至少在我那个破高中能蝉联年级第一)。只不过我早年的经历使我注定要走上异于常人的路线。。不过我始终认为高中开始的教学应该加强对不同方向人才的分化,就是说能不能别让一群文科生成天抱怨于数学,以及别让理科生苦于语言文学。。这就像让文科生研究出谢顿的心理史学,让理工生创新创造的同时用诗词歌赋歌颂自己的成果一样荒唐至极。或许高考改成9选6会更符合因材施教的原则。对此我只能说我脱离学校的同时或许阴差阳错中也让我远离了这种严重的内耗。
离线
尊重每个人的选择,这年代会点技术饿不死,能做自己喜欢的事情很幸福。
加油
离线
厉害,高中就这水平了, 我也是白混了。
最近编辑记录 musich (2022-05-12 22:03:19)
离线
还是要好好上大学,到那里再发挥你的优势,你会得到很多
离线
还没高考,,牛逼啊
离线
高中…………牛逼啊
离线
牛啊。这是还没毕业就准备从事电子行业了?
离线