Announcement

Collapse
No announcement yet.

PICKINI V4 - an easy to build, self adjusting PI detector

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • dbanner
    replied
    Originally posted by BC547 View Post
    Since I don't see any external RC filter to use a PWM output as the comparator slicing level, I assume you will be using the internal DAC for this ?
    The 16F1824 only had 5 bits for the DAC level, but this PIC seems to have a programmable number of bits for the DAC output?

    Anything you can do with the internal opamp ?

    And use the NCO for audio generation ?
    Internal DAC.

    Best use case for the Internal Op-Amp: Use the internal OPA1 module as a programmable unity-gain buffer for the sensitivity potentiometer input.

    ​The NCO runs completely independently of the CPU core. The CPU runs a single line of math to convert the target into a new NCO pitch increment value. So that is very good. Maybe even implement a Bipolar VCO Tone Response.​

    Thank you for pointing out the NCO. I thought it would have to be done the old way.(timer interrupt) or external VCXO

    Click image for larger version  Name:	schematic.png Views:	0 Size:	54.1 KB ID:	453472

    PI Microcontroller Block Diagram.docx



    Leave a comment:


  • BC547
    replied
    Since I don't see any external RC filter to use a PWM output as the comparator slicing level, I assume you will be using the internal DAC for this ?
    The 16F1824 only had 5 bits for the DAC level, but this PIC seems to have a programmable number of bits for the DAC output?

    Anything you can do with the internal opamp ?

    And use the NCO for audio generation ?

    Leave a comment:


  • dbanner
    replied
    Originally posted by BC547 View Post
    @dbanner



    You could take a couple of late samples with the ADC of the steady state DC value of the signal.
    Then adapt the slicing level to the comparators accordingly: eg keep the slicing level a steady 0.5V lower than the "ground" level.
    Slicing voltage = 10bit PWM output + RC filter ( like in Pickini V4).

    If you want to do automatic DC level setup at startup = DC offset level of the opamps, do not use a DAC output like I did in Pickini V4.
    The DAC output only had 31 levels and switching from one level to another caused a major jump at the opamp output - to be compensated in software by a huge delay ( 1 second ) between each step.

    - Bernard
    I did a basic schematic, most of which is taken from well known Bi-Polar PI scheme. This is just for the concept (the schematic is not complete, and is missing some important parts). The initial firmware will be simple just to see if the darn thing will work at all. It belongs in a different thread though.
    Click image for larger version  Name:	dynamic temporal sampling detector.png Views:	0 Size:	166.9 KB ID:	453452

    Thanks.

    Leave a comment:


  • BC547
    replied
    @dbanner

    Also to implement some sort of automatic GEB. Or ground substraction.
    You could take a couple of late samples with the ADC of the steady state DC value of the signal.
    Then adapt the slicing level to the comparators accordingly: eg keep the slicing level a steady 0.5V lower than the "ground" level.
    Slicing voltage = 10bit PWM output + RC filter ( like in Pickini V4).

    If you want to do automatic DC level setup at startup = DC offset level of the opamps, do not use a DAC output like I did in Pickini V4.
    The DAC output only had 31 levels and switching from one level to another caused a major jump at the opamp output - to be compensated in software by a huge delay ( 1 second ) between each step.

    - Bernard

    Leave a comment:


  • kiouijki
    replied
    Originally posted by BC547 View Post
    thanks

    Leave a comment:


  • dbanner
    replied
    Originally posted by BC547 View Post
    With the PIC18F16Q41​ you have a clock speed of 64 MHz = timer resolution of 16 ns. Which doubles the resolution of Pickini V4
    You can gate TMR1 with the comparator outputs.
    The comparators should have hysteresis.

    Looks very promising.
    If I had time I would redesign the Pickini concept with a more recent PIC controller.
    The attempt I made with an Arduino Nano was not a success. The Arduino can be used as a programmable pulse generator (PWM), but the analog comparators and clock (16 MHz) were insufficient.
    Thanks.

    Leave a comment:


  • BC547
    replied
    With the PIC18F16Q41​ you have a clock speed of 64 MHz = timer resolution of 16 ns. Which doubles the resolution of Pickini V4
    You can gate TMR1 with the comparator outputs.
    The comparators should have hysteresis.

    Looks very promising.
    If I had time I would redesign the Pickini concept with a more recent PIC controller.
    The attempt I made with an Arduino Nano was not a success. The Arduino can be used as a programmable pulse generator (PWM), but the analog comparators and clock (16 MHz) were insufficient.

    Leave a comment:


  • dbanner
    replied
    Originally posted by BC547 View Post
    @Boadil
    Glad you still like it 10 years later.
    You could still improve it:
    - adapt the main slicing level of the comparator with an an analog ground sample to introduce some sort of automatic GEB
    - port it to a newer Microchip microcontroller
    - preferably one with an internal clock speed higher than 32 MHz = more resolution to measure the pulse width
    ​- port the code to the Microchip IDE instead of the MikroC environment I used at the time
    - draw a new PCB with Kicad or some other up to date tool
    - possibly introduce 2 different slicing levels for the comparator to get some idea of the slope and possibly some sort of rudimentary discrimination based on conductivity

    I tried porting the Pickini4 code to an Arduino Nano once, but it lacked all sorts of nice features that were present in the 16F1824: speed, lack of comparator hysteresis, ADC resolution and speed, ...

    Feel free to give this project a new life - or temporal sampling in general.

    Best regards from Belgium,
    - Bernard
    Hello Bernard,
    What is your opinion on using (temporal sampling) the Microchip(specifically the PIC18F16Q41​) with a bi-polar (H-drive)TX and this RX front end:


    ​​​​​ Click image for larger version  Name:	RX front end.png Views:	0 Size:	14.3 KB ID:	453370

    A microcontroller's internal hardware comparators can only handle positive voltages relative to common ground (0V to (VDD). we will now tap into both internal comparators simultaneously (Comparator 1 for VOP and Comparator 2 for VON) to process the dual-polarity decay tails natively​. Maybe more can be done with this in the software.
    1. During a Positive Pulse Cycle: The coil discharges a standard positive flyback decay tail. Your differential receiver stage processes this, and the signal appears as a positive-going voltage decay curve on the VOP line.
    2. During a Negative Pulse Cycle: The coil collapses in the opposite polarity, creating a negative-going flyback tail. Instead of forcing the microchip to read a negative voltage, your inverter/differential amplifier stage flips this inverted signal upside down, outputting it as a clean, positive-going decay tail on the VON line.
    Also to implement some sort of automatic GEB. Or ground substraction.

    Of course I know this will be on a different thread.
    ​

    Leave a comment:


  • BC547
    replied
    New free web space found:





    Leave a comment:


  • kiouijki
    replied
    UNFORTUNATELY THE WEBSITE IS NOT AVAILABLE ANYMORE​

    Leave a comment:


  • BC547
    replied
    @Boadil
    Glad you still like it 10 years later.
    You could still improve it:
    - adapt the main slicing level of the comparator with an an analog ground sample to introduce some sort of automatic GEB
    - port it to a newer Microchip microcontroller
    - preferably one with an internal clock speed higher than 32 MHz = more resolution to measure the pulse width
    ​- port the code to the Microchip IDE instead of the MikroC environment I used at the time
    - draw a new PCB with Kicad or some other up to date tool
    - possibly introduce 2 different slicing levels for the comparator to get some idea of the slope and possibly some sort of rudimentary discrimination based on conductivity

    I tried porting the Pickini4 code to an Arduino Nano once, but it lacked all sorts of nice features that were present in the 16F1824: speed, lack of comparator hysteresis, ADC resolution and speed, ...

    Feel free to give this project a new life - or temporal sampling in general.

    Best regards from Belgium,
    - Bernard

    Leave a comment:


  • Boadil
    replied
    Even after all these years, it remains an interesting project that offers a lot of possibilities from its source file, allowing you to change parameters and fine-tune it to the maximum.

    Leave a comment:


  • MartinB
    replied
    Hi F117 and GeoMax,


    Thank you both for your assistance. I was really overthinking what turned out to be a very simple process.

    Leave a comment:


  • BC547
    replied
    MartinB

    The file format is Intel Hex. This is indeed a text file that can be interterpreted by a programmer that supports this format.

    Pickit3 can import this file -- eg via MPLab. I still use a very old version in combination with PicKit3.

    In MPLab: File -> Import -> select the Pickini hex file.

    Click image for larger version

Name:	ss_mplab.jpg
Views:	529
Size:	28.0 KB
ID:	437643

    Leave a comment:


  • GeoMax
    replied
    Simply with copy and past into a texteditor

    Leave a comment:

Working...
X