I’m working on driving a very finicky lcd. I have it working now with an FPGA dev kit. I had to use an FPGA because some of the timing requirements are in the tens of nanoseconds.

At the end of the day, I wrote a block for a one shot/continuous clock with a programmable duty cycle and initial delay. This block was repeated six times for the various clocks with their specific values.

Moving to the final product, this feels like overkill. In the past, I’ve managed to make this kind of thing work with a Rube Goldberg collection of on-board timer/counters on the microcontroller.

I’d like to avoid that mess this time around. If I can generate the clocks externally, I can have the host MCU send the data quickly using DMA.

An FPGA works great, but they’re expensive and there’s the issue of licensing for FPGA and and CPLD software.

I’ve seen this problem solved with a lookup table, but there aren’t a lot of cheap/small rom/ram options for what I’m trying to do.

Basically, what I’m asking is is there a component that can be easily programmed to generate a number of clocks, doesn’t need any costly software licensing, and comes in a very small package? (Like wlcsp)

  • Onno (VK6FLAB)@lemmy.radio
    link
    fedilink
    English
    arrow-up
    7
    ·
    15 days ago

    Can you use a crystal oscillator and multiply or divide the signal as required, rather than use software, or do you need the flexibility that software provides?

    • ch00f@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      15 days ago

      It’s far too fast to do it in software. Thus the FPGA.

      But yes, it needs a very specific set of six clock signals. Not something easy to achieve with discrete logic if that’s what you’re suggesting. data sheet

  • Tolookah@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    5
    ·
    15 days ago

    A max10 FPGA runs pretty cheap, and to do what you want, the free version of quartus will do just fine.

    Does the LCD happen to have a dev board or reference design you can use to see what they suggest?

    Alternatively, it’s worth figuring out if the wiring is standard for the LCD, some microprocessors have display out peripherals that will do all that work for you. For instance, the STM32F429 has a display controller. (There are others, I’m bad at searching from my phone)

    • ch00f@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      15 days ago

      Yeah the reference design uses a display driver from Epson that’s eol.

      Haven’t looked at integrated display controllers. That’s certainly interesting. It’s a pretty unconventional display. Sharp memory LCD with 64 colors data sheet. I’ll have to see how configurable the integrated controllers are.

      Looked at the max10. Still too pricey. Hoping for something in the <$1 range.

    • ch00f@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      15 days ago

      Sorry, by precise I mean “specific timing requirements with respect to each other” not “parts per million”

      I think ever my clock has a few dozen nanoseconds of slop, but the whole clock pattern is difficult to create without a bunch of discrete logic.