0

My project goal is to design a 'heart rate module' using zed board and ppg sensor.

I'm going to use Pmod as ADC for converting the analog signal from the ppg sensor to the digital signal so that the zedboard would be able to process it.

there is a problem at this point.

my module gets a '12-bit signal' as input,

but I found out that the Pmod provides the digital output in serial peripheral protocol.

the input of the module has 12-bit range, but the output of pmod(which will be connected the module as a module input) is only 1-bit range.

I think their bit range differs, which shouldn't

how can I solve this problem?

Super Kai - Kazuya Ito
  • 22,221
  • 10
  • 124
  • 129
  • I am lost. I can speculate that you are talking about IP that has 12-bit ADC core that has SPI bus. SPI is serial bus by definition and one may pass any amount of data thru it. If you need 12-bits, it’s probably the best to use 16-bit frame. So what’s the problem exactly? – 0andriy Feb 10 '22 at 09:15

1 Answers1

1

Assuming that I have understood your problem correctly, you need to design a Deserialiser module. The most common way of doing this is by creating a Shift Register. enter image description here

The Shift Register operates by shifting serial data in, 1 bit at a time. When enough bits have been shifted in (determined by your application) you can shift the contents of the register out in a parallel shift. You now have parallel data.

But wait, it may not be that easy for you. You mentioned that the device you are using communicates via a SPI bus. Unless you have a SPI module that is helpfully outputting serial data (and telling your register when to shift) then you need also design some SPI compliant logic. Don't forget to pay attention to the timing requirements of the SPI port.

Vance
  • 201
  • 1
  • 4