简 介: 本文测试了利用SPI驱动CS4344的实验, 但最终没有能够观察到正确的结果。 具体原因不明。
关键词
: CS4344;SPI
§01 构建测试电路
一、背景
这是在准备MicroPython内核笔记中实验过程中, 看到所使用的硬件平台上具有一颗 CS4344, 这是一个双通道立体声DA转换器, 之前没有使用过,今天借助这个平台进行测试一下。
二、电路图
这是电路板上CS4344电路图, 它通过E3,4,5以及D3与单片机相连。 输入输出E6,主时钟为E5, 左右通道选择使用E4, 时钟模式切换使用D3。 下面通过 MM32F3277上的MicroPython,通过SPI接口测试CS4344芯片。
由于当前MicroPython只支持三路SPI接口, 他们的外部管脚并不是E5,E6, 所以需要通过外部连线将SPI口与CS4344管脚相连。 如果使用SPI0, 则将PA5连接E5,将PA7连接E6。 这是连接后的电路板。
后来使用一拖二的跳线,直接将SPI的CLK引导SCLK/MCLK上。 经过实际测试,发现最终CS4344仍然没有任何信号输出。 这是数据信号 与输出的模拟信号。 没有产生任何响应。
※ 总 结 ※
本文测试了利用SPI驱动CS4344的实验, 但最终没有能够观察到正确的结果。 具体原因不明。
一、测试程序
from machine import Pin,SPI
import time
lrck = Pin('PE4', Pin.OUT_PUSHPULL, value=0)
spi0 = SPI(0,baudrate=800000, polarity=0, phase=1)
led0 = Pin('PA1', Pin.OUT_PUSHPULL, value=1)
print(spi0)def outdata(left,right):lrck(0)spi0.write(left.to_bytes(2,1))spi0.write(left.to_bytes(2,1))lrck(1)spi0.write(right.to_bytes(2,1))spi0.write(right.to_bytes(2,1))lrck(0)print('Test CS4344 DA convert.')count = 0
while True:count += 1if count % 1:outdata(0xaaaa, 0x5555)else: outdata(0x5555, 0xaaaa)time.sleep_ms(1)