It seems everyone, mostly, agrees that DFB assembler is super hard and not to be tinkered with.
Some dedicated hobby hackers don't take no for an answer, and given that the assembler is documented in the manuals, together with a DFB asm block containing both an assembler and a simulator showing how data flows through the unit, I decided that to give it a go. The real reason for not using the filter block was that I want real time update of filter coefficients, actually just a simple PID regulator as a filter. The filter component also don't like the unstable character of PID regulators.
My findings are described at:
Comments and corrections are welcome, my time for this is limited so I cannot guarantee any fast responses, but I figure it could be helpful to collect some more help and instructions about DFB asm programming.
It's a great post, i'm trying to learn DFB again now.
Already posted on the blog but:
Thanks for writing about this component, it's great to start learning about it. Are you planning to post more about it?
Time is limited but I have been thinking of implementing a basic project showing how to connect an ADC to the DFB using timed sampling and DMA. Hopefully sometime the coming weeks.
I think Cypress documentation lacks an intermediate level. There's plenty of Getting Started videos and examples but many have a follow-this-recipe format without giving much insight or aid to understanding.
I'm moderately bright and have decades of design experience but I find that getting a toehold into the DFB workings very difficult. The datasheet is borderline incomprehensible and written by someone who understands the component for someone who already understands the component.
I found a really excellent application at https://github.com/paphillips/DFB which is a good aid to understanding but what I am desperate for is someone to pull the DFB apart brick-by-brick and put it back together whilst slowly and carefully explaining in words of one or two syllables what each part does and why it does it.
It seems to me that this could be a useful tool that's underused because the first rung of the ladder to understanding it is too high off the ground.
DFB for Dummies, anyone?
While I'm on the topic: why does the DMA Wizard offer a destination of the digital "Filter" component as the staging register but when the filter is deleted off the schematic and replaced with a "Digital Filter Block" component, it doesn't.
It's the same register, surely? Why is it so fussy about its playmates?
(PSoC Creator 4.4, Filter [v2.30], Digital Filter Block (DFB) Assembler [v1.40])