S11108 Circuit Design Logic
kimbomc wrote 09/07/2023 at 14:29 • -1 pointHi all, this is my first post and also my first dip into electrical engineering and I wanted to ask if you people have any suggestions on the circuit I have designed. As a background, I'm a Computer Science student so I have no issues if you folks suggest any programming orientated approaches.
The purpose of the circuit is to drive a CMOS S11108 linear image sensor so I can send the pixel data through the serial connection on a Arduino nano every board to a raspberry pi where it would be output. I use an LM358P op-amp to perform some basic thresholding on the analogue signals as I was planning on using the data to measure gaps in objects like a nut or between two strips of tape and I wanted to be able to control this threshold value using a potentiometer.
google drive link to schematic and S11108 datasheet: https://drive.google.com/drive/folders/1nIQr4zYgdKwpUESumwOak8UBdYV0fIJP?usp=sharing
ask
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
Here are a few suggestions and considerations for your circuit design:
Op-Amp Configuration: Using an LM358P op-amp for thresholding is a good choice. Just make sure you have it set up in the correct configuration (inverting or non-inverting, depending on your requirements). Double-check the datasheet of the LM358P to ensure you are using it within its specified voltage and current limits.
Voltage Levels: Ensure that the output voltage levels of the CMOS image sensor are compatible with both the LM358P and the Arduino Nano. CMOS sensors typically have voltage outputs in the range of 0 to Vdd (supply voltage). Make sure your op-amp can handle these voltages, and if necessary, use voltage dividers or level shifters to ensure the signals are within the acceptable range.
Arduino ADC (Analog to Digital Converter): Since you're planning to use a potentiometer to control the threshold, you'll be using one of the Arduino Nano's analog pins. Be aware of the ADC resolution (usually 10-bit for most Arduinos), which means you'll get values from 0 to 1023. Map this range to your desired threshold range.
Noise and Filtering: Image sensors can be susceptible to noise. Consider implementing filtering techniques, such as low-pass filters, to reduce noise in your analog signals. Experiment with different filter designs to find the one that works best for your application.
Power Supply: Ensure stable power supplies for both the image sensor and the op-amp. Noisy or unstable power can cause issues in analog circuits. Consider using decoupling capacitors near the power pins of your ICs to stabilize the voltage.
Serial Communication: Since you're planning to send data to a Raspberry Pi through a serial connection, make sure you understand the serial communication protocols (like UART) and configure your Arduino Nano properly. Also, consider error-checking mechanisms if your data transmission needs to be reliable.
Testing and Iteration: As you progress, be prepared to iterate on your design. Test each component and sub-circuit individually before integrating them into the complete system. This step-by-step approach can help you pinpoint issues and make debugging easier.
Documentation: Document your circuit and code thoroughly. This includes creating a schematic diagram of your circuit, writing comments in your code, and keeping a log of your design decisions and test results. Proper documentation will be immensely helpful, especially if you encounter issues later on or if you want to share your project with others.
Regards,
[url=https://emiratesidofficial.com]EIDO[/url]
Are you sure? yes | no
I had a quick look at the S11108 data sheet. The clock rate maximum is 10MHz, and the minimum is 200kHz. One pixel shifted out per clock, so you will need a minimum ADC throughput of 200KSPS. The Arduino Nano has an ADC with a maximum throughput of 150 kps. So even if you operate S11108 at the lowest clock, the Arduino Nano is still incapable of digitizing the data. So use an Arduino with, say, 300KSPS ADC.
I recently could program to read a TCD1103 using an MKR1000 at a lower clock rate.
The schematics seem to have an issue with respect to DV (Video). It needs to be interfaced with one of the analog input pins, and you have to program raw ADC read to get the maximum throughput using interrupts and DMA. It is interfaced to a digital pin in current schematics, which will not work.
S11108 needs the CLK and ST pins to be programmed using Timers generating PWMs. D2 and D6 have TCA-A0 and TCA-B0 in the pin mux. Getting the required time delays between these two with the synchronisation takes a bit of programming.
You can ignore "Trig" and configure EOS to trigger an interrupt to mark the frame complete event. It would have been good to have EOS as input to a capture compare event, but D4 does not have capture timer capability...
Are you sure? yes | no
Hallo,
Although I don't fully understand the final usage of this project, I think your planned setup will not work. Since a couple of month I work on a more or less comparable project, with as goal to measure displacement of an object with high precision (sub micro-meters). The sensor is another line-camera chip, the Hitachi TCD1304, with 3648 photo-diodes of 8x200um, making 29.14mm range. When this sensor is read with the max. 2MHz clock, the signal rate is 0.5MHz. This signal is analog (just like the video output of your Hamamatsu) and must be digitized to allow further processing.
You planned the readout with an Arduino and connect the signal to a digital input. Even when you had chosen an analog input port, an Arduino is not capable to sample and digitize a signal that fast, buffer the values and send them to an USB port. I learned from other Hackaday members to go for a MCU that can do the job.
Beside the efforts I needed to tame the microprocessor, also the program to read the datastream from the USB and detect the relevant shapes in the data took me a lot of time. You may find more details when you search for the tags 'CCDpos' and 'TCD1304'.
If you are interested: I am willing to answer further questions (if I can). Projects like this are quite challenging, but also give a lot of fun.
Are you sure? yes | no
I use an LM358P op-amp to perform some basic thresholding on the analogue signals as I was planning on using the data to measure gaps in objects like a nut or between two strips of tape and I wanted to be able to control this threshold value using a potentiometer.
Are you sure? yes | no
yes
Are you sure? yes | no