sanch0,
I'm not sure what you're talking about ... but I don't think it's BAM.
At 610hz with 13-bit resolution, the minimum bit period would be 0.2uS
Not even an 18F running at 40Mhz could do anything with 2 instructions.
<br>
sanch0,
I'm not sure what you're talking about ... but I don't think it's BAM.
At 610hz with 13-bit resolution, the minimum bit period would be 0.2uS
Not even an 18F running at 40Mhz could do anything with 2 instructions.
<br>
DT
Actually, you could do it with just 2 instructions per update (using 18F and 40-MHz clock) but it would require a blanking interval of sorts at end-of-period or at some other point in time to update/refresh duty cycle values. In this particular case it would actually be easier to implement with BAM or MIBAM compared to the more traditional PWM methods.
As a side note. I think I have a method for using MIBAM modulation on that little 20-LED charlieplexed array. The refresh rate works out to a whopping 520-Hz per LED which would allow you to fade each individual LED from black to full to black (511 steps) in less than a second. The 520-Hz per LED (or per column) rate is achieved by using a 1.5-usec step or an overall refresh rate of 2600-Hz (with a 1920-usec frame rate). Man I'm good (LOL). Seriously though, this model or method suggests that we could achieve a very respectable refresh rate even with a standard mux'd 8x8 matrix.
Mike
Last edited by Mike, K8LH; - 9th August 2009 at 13:53.
Charlieplexed MIBAMnow you're scaring me Mike.
Still don't have the full-port version working yet.
<br>
DT
Sorry, I misunderstood.
I coded the full-port-at-a-time method driver in assembly language as part of a 16F886 project and will test it on a prototype board sometime soon.
I also coded the Charlieplexed 20-LED MIBAM driver in an assembly language project for a 16F886 host.
Both projects simply have variables and the ISR driver setup for simulation so they're far from complete demos'. When I get something up-n'-runnin' I'll post a video and the assembly code, if anyone asks for it.
Regards, Mike, K8LH
Maximum gained speed of modulation (whatever way u make it) is only limited by speed You can change output. Normally it's 2 instruction. But U can make it in single instruction also, just clearing the output if previous port stage is known. Of course it's only could be done in ASM. Blanking period - the only problem exist here. It will limit maximum duty cycle for some value, depending number of ports needed. I have many devices working at 610hz with 13-bit resolution. Tryed several different ways to get this. Not used MIBAM yet)
I have working code for 14bit 610hz BAM with 16 output PWM channels (code could be updated to get more channels with external logic if needed), but i didn't tried to resolve flicker problem with BAM yet. I think that simple signal mirroring doesn't help to fully avoid flicker(s), it just makes it significantly lower, but maybe also affects visual perception of signal "decreasing" actual refresh rate. And there are other ways to avoid flicker trouble, too. However, MIBAM is very good approach, thanx to it's simplicity in combination with reasonable effectivity. Thank You, Darrel Taylor & RadikalQ3 for giving good explanations and usefull thoughts. Btw, additional advantage of MIBAM method is that it might slightly reduce level of generated EMI.
Last edited by sanch0; - 18th August 2009 at 02:03.
It's amazing how many people have come here to tell me that the Mirror Image won't fix BAM's blinking problem.
With the mirror image, there is absolutely NO blinking AT ALL. (Not even with a video camera).
Of course everyone admits that they've never even tried it.
But yet they still feel it's ok to tell the world that it won't work.
All I can do is return the favor ...
16 channel, 14-bit BAM, at 610hz, with a PIC, is IMPOSSIBLE.
It was bad enough when you said 13-bit. But now with 14-bits, the minimum period would be 0.1 µS. There's NO WAY you can set 16 outputs to the desired states with only one instruction, then set them all to new states on the very next instruction.
But then ... "I've never tried it".
<br>
DT
Sorry for my poor english, maybe u hadn't understood me as it was supposed. I don't want to flame here... i feel a bit tired myself and i'm way too lazy now to start explanation again. I had thought to upload code here, but now i'm not sure of your reaction. Maybe even then u gonna blame me). Just read my previous posts again. But i don't want to disappoint u and u a free to think that i'm lousy liar))) Actually i started to code in ASM 17 years ago. And i don't have to prove nothing here. Yes, it works. Yes i didn't tried MIBAM yet with _MY_ 14 bit _BAM_ code (which was written about half year ago). I work periodically for local advertising companies and earn some $$$ from things i develop using my older 13 bit code for 18F, which actually isn't BAM nor "clear" PWM. (which, btw could also be upgraded to 14 bit 610Hz, but don't ask me how, as i had already described it). Sorry, do not have enough strength to continue that, i feel myself wasted a bit 8] best regards....
Bookmarks