主题中讨论的其他部件: TLC5510A, ADS7884
我使用出色的TLV571芯片构建了一个示波器。
使用正常关机后效果良好,但我无法使软件关机正常工作。
正常关机寄存器设置:
Int OSC FAST,二进制
CR1:B101万
软件启动(D5),EOC (D4), 内部时钟(D3), 正常(D2)
CRO:B11万
我在CRO之前写入CR1,使用双向端口(C)的前3位来控制读取(位2),写入(位1)和cs (0)行:
我等待转换线的末尾在完成时到达高位
CLI ();
PORTC = B0.011万;//读数高,WR高,CS低
__ASM__("nop\n\t"); //等待一个机器循环(16 MHz)
//产生62.5 ns (纳秒)延迟
PORTC = B0.01万;//读数高,WR低,CS低
_ASM__("nop\n\t");
PORTC = B0.011万;//读取高,WR高,CS低-传输数据
_ASM__("nop\n\t");
while ((PINC & econ)== 0);//等待econ高
SEI();
所有这些都工作正常,可以使用控制端口(C)读取数据,以便从端口(Pina)读取数据:
PORTC = B0.001万;// RD低,WR高,CS低
PORTC = B0.011万;// RD高,WR高,CS低
//等待econ提高
while ((PINC & econ)==0);
测试= Pina;
这是可行的。 (实现1189.1 KHz的数据速率)
但是,自动复位习惯是在等待输入触发时启动,使TLV571中的前2个数据字节不可用。
(数据表中提到了两个读数问题)
我可以通过不断地轮询ADC来绕过这个部分。 但这并不理想。
我尝试更改cr0以禁用自动关机。
B11.01万 // cr0 软件启动(D5),EOC (D4),内部时钟(D3),软件断电(D2)
然后,ADC返回常量值。
我不知道为什么。
有什么想法?
David