This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我想问以下问题:
我要求在>= 300SPS 时使用 SPS。
如果我选择 PGA = 1和 SPS = 330、我可以预期数据表中所示的17.7 ENOB。 但是、如果我有两个正在进行多路复用的输入、那么每个输入的采样率是否为175SPS? 因此、采样率将被输入除以。
如果是这种情况、我是否必须选择 SPS = 600才能使每个输入达到300SPS?
此外、随着采样率的函数、ENOB 也会降低。 是否可以使用外部时钟以相同的 SPS 获得更高的 ENOB?
此致、
Sadoun Anayati
感谢 Bob、这对我有所帮助。
我有另一个问题。 我通过 SPI 通信将 PSoC 连接到 ADS1220。 从 ADS1220接收数据时、数据通过 UART 发送到 Matlab。 但是、分辨率非常差。 我有很大的台阶。 您有什么想法吗? 我已经连接了 ADC 的硬件配置、这是 PSoC 中的代码:
#include "project.h" #include "stdio.h" #include #include #define false 0 #define true 1 #define Transmit 缓冲区_size 4 uint32 dummy = 0; int main (void) { /*用于存储 ADC 结果的变量*/ int OutputBuffer[3]; Int32输出= 0B000000000000000000000000000000000000000000000000000000000000; Int32测试= 0; Int32检查= 0B0000000000000000000000000000000000000000000000000000000000000000; Int32取消; /*用于存储 UART 接收到的字符的变量*/ uint8通道; /*用于存储传输数据命令的标志*/ uint8 ContinuouslySendData; UINT8 SendSingleByte; uint8 SendEmulatedData; /*发送缓冲器*/ 字符 TransmitBuffer[1]; /*启动组件*/ UART_1_Start(); spim_Start(); /*初始化变量*/ ContinuouslySendData = false; SendSingleByte = false; SendEmulatedData = false; uint8 resetData = true; /*开始 ADC 转换*/ ADC_DelSig_1_StartConvert (); /*发送消息以验证 COM 端口是否正确连接*/ UART_1_PutString ("COM 端口打开"); GlobalCyIntEnable;//启用全局中断。 * //将初始化/启动代码放在此处(例如 MyInst_Start())*/ SPIM_WriteTxData (0B00000110);//重置 ADC CyDelayU (1000); SPIM_WriteTxData (0B00001000);//启动 ADC //配置控制寄存器: SPIM_WriteTxData (01B00001) ;SPIM_WriteTx100(01B0B1000);SPIM_WriteData (01B100R1TxR1TxR1R1Tx1000);SPIM_WriteData (01B0B1TxR1R1R1R1R1Tx100)0B0B100TxR1TxR1TxR1TxR1TxR1TxR1R1R1TxData //R3 int I = 0; LED_Write (0); for (I = 0;I<6;I++) { LED_Write (!LED_READ ())); CyDelay(300); } for (;;) { /*获取接收到的最新数据的非阻塞呼叫*/ CH = UART_1_GetChar (); /*根据 UART 命令设置标志*/ 开关(通道) { 情况0: 中断; 案例"C": 案例'c': SendSingleByte = true; 中断; 案例"S": 案例"S": ContinuouslySendData = true; 中断; 案例"X": 案例"x": ContinuouslySendData = false; 中断; 案例"E": 案例"e": SendEmulatedData = true; 中断; 默认值: 中断; } Læse μ s ADC 输出 spim_WriteTxData (0x10);// SPIM_WriteTxData (0x23); spim_WriteTxData (0x00000000); spim_WriteTxData (0x00000000); spim_WriteTxData (0x00000000); // for (int i = 0;i<2;i++) { OutputBuffer[i]=(OutputBuffer[i]& 0B00000000); } 输出=(Output & 0B000000000000000000000000000000000000000000000000000000000000000000000000); OutputBuffer[0]= SPIM_ReadRxData (); OutputBuffer[1]= SPBIM_ReadRxOutputBuffer[OutputBuffer = SPOutputData](OutputRX]= SPOutputData[OutputRX];OutputBuffer[OutputBuffer]]= OutputData](OutputRxOutputBuff 输出=输出<< 8; 输出+= OutputBuffer[1]; 输出=输出<< 8; 输出+= OutputBuffer[0]; 输出=输出& 0B000000001111111111111111111111111111111111111111; if (ContinuouslySendData = true) { UART_1_ClearTxBuffer (); //UART_1_PutString (TransmitBuffer); UART_1_PutChar (输出); UART_1_PutChar (输出>>8); UART_1_PutChar (输出>>16); UART_1_PutChar (输出>>24); LED_Write (1); CyDelay (35); UART_1_ClearTxBuffer(); } else { UART_1_ClearTxBuffer(); LED_Write (0); } }
Matlab 串行通信的配置如下:
serial_PSoC =串行('COM1'、'budrate'、115200、'Parity、'none'、'DataBits'、8、'topBits'、1);
SET (serial_PSoC、'InputBufferSize'、4096、'ByteOrder、'LittleEndian');