View previous topic :: View next topic |
Author |
Message |
soonc
Joined: 03 Dec 2013 Posts: 215
|
Is there a PIC with two NCO's |
Posted: Wed Oct 07, 2020 3:42 pm |
|
|
Is there a PIC with two NCO's ?
I need a second NCO and have considered a 6 pin PIC chip but do not like the idea of having to Program a second device...
Someone did suggest using the PWM but it's not that easy to set frequency to within 1 Hz.
Any suggestion are welcome.
Thanks |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9226 Location: Greensville,Ontario
|
|
Posted: Wed Oct 07, 2020 4:17 pm |
|
|
Curious was I...
so...if I pressed the right buttons, there's only 28 pin devices that would work for you that are currently available....
Sounds like two 6 pin devices would be cheaper and easier to use as you have experience and code already for them?
A lot depends on project designs and near future requirements. while I'm a firm believer in 'more pins is better', cost may be more important for you ??
BTW the PIC18F25Q43 has a 900+ page 'datasheet'....so YOU will have to read it, not me, sorry !
Jay |
|
|
soonc
Joined: 03 Dec 2013 Posts: 215
|
Thanks |
Posted: Wed Oct 07, 2020 7:18 pm |
|
|
Thanks for the link.... Looks like a useful tool.
Another thought: How much code would it take to program the 6 pin PIC from a larger PIC ?
I just checked and the PIC10F322 can be programmed using Vdd only.
Anyone done this ?
Any examples ? |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9226 Location: Greensville,Ontario
|
|
Posted: Thu Oct 08, 2020 4:41 am |
|
|
hmm. you mention you're using a 6 pin PIC now..adding a 2nd NCO means you only have 2 other 'free' pins to use for whatever else the program does.
You should explain in more detail the function or purpose of the project. We may be able to offer alternative PICs or peripherals to do what you need. |
|
|
gaugeguy
Joined: 05 Apr 2011 Posts: 303
|
|
Posted: Thu Oct 08, 2020 6:22 am |
|
|
Why not use a PIC24 with a 32 bit timer (two 16 bit timers cascaded). This should give you the range and resolution you want. There are many that can be set up with two or more 32 bit timers. |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9226 Location: Greensville,Ontario
|
|
Posted: Thu Oct 08, 2020 11:58 am |
|
|
My 'gut feeling' is that the original poster wants a cheap (low cost) solution. That rules out PIC24 and PIC18 series PICs.
It sounds like he is using a 6pin PIC, so another identical PIC would be the most cost effective answer as he KNOWS the device, can program it and it works for him.
We'd have to have more information about the project to decide if there's a better solution.
Jay |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19513
|
|
Posted: Thu Oct 08, 2020 12:31 pm |
|
|
You have to be careful, but a PIC like the 33EP32MC202 is only just over
a dollar!... Available in DIP28, and has five timers, with two 32bit 'pairs'.
It's quite amazing how cheap some of this family have become. I pay less
now for a chip running at 100MHz, with 512K of ROM, than I did originally
for the first little 18pin PIC's. |
|
|
soonc
Joined: 03 Dec 2013 Posts: 215
|
Thanks to everyone |
Posted: Thu Oct 08, 2020 6:55 pm |
|
|
Thanks for the ideas.
The "mother chip" is pic18F47K42 which already has 1 NCO.
Reason for wanting to know of other PIC chip with more NCO's is the NCO is so easy to use.
I did Not consider using a timer simply because I do not want too many interrupts and running a timer to generate a square wave signal in range 50KHz to 150KHz would be too many interrupts. That said if there is a way to do that with timers and no or very few interrupts I'd appreciate to know how it's done.
In this example 50KHz to 150KHz 1 Hz resolution is Not required...
The only other requirement is reasonable 50:50 M/S for the square wave as it's a clock for switched cap filter.
So my solution is to use the LTC6904 which uses I2C and is easy to program but is sucking 1.5 to 2.5 mA where as another NCO in the PIC would not draw that much current. The current version of this hardware already has I2C so it made the choice of the LTC6094 much easier.
With regards to pins available... In this part of the design there are plenty of spare pains and the 6Pin Pic would have only needed 1 pin for line NCO out and 1 line to Rx Commands to change frequency.
The LTC6094 requires no programming other than initial setup through the I2C, and I have old code that I can reuse.
Price wise the LTC6904 is expensive but is easy to use. The 6pin PIC would have saved power and been cheaper but the thought of getting the programming to work from the mother chip is the main reason I'd sooner pay the cost of the LTC6904
Anyway Thanks for all the help... |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19513
|
|
Posted: Fri Oct 09, 2020 1:16 am |
|
|
The timers in the PIC24/30/33, have the ability to automatically reset 'at' a
count. So can be set to count to 1000, 10000 etc., without needing
interrupts etc.. Might be worth investigating.... |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9226 Location: Greensville,Ontario
|
|
Posted: Fri Oct 09, 2020 4:27 am |
|
|
quik comments...
Hmm, I did a search at Microchip and here are 5 PICs with one NCO having 6-8 pins. The PIC10F322 is about 50 cents US. The LTC8904, from Digikey US is $5 !! Since you already have the space for an 8 pin device, it might be worthwhile to use the 10f322 to replace the 6904. Along with saving money, you may save power as well. I haven't read the specs but I'd investigate it further. It would be a hardware option.
The software option, is to use one of the timers in your 'master' PIC. Again, you'll have to do some reading, but if you tell us the range/resolution of your signal output and PIC clock , someone here may be able to say 'yes or no' to if it's possible.
Jay |
|
|
soonc
Joined: 03 Dec 2013 Posts: 215
|
|
Posted: Fri Oct 09, 2020 7:00 am |
|
|
Ttelmah wrote: | The timers in the PIC24/30/33, have the ability to automatically reset 'at' a
count. So can be set to count to 1000, 10000 etc., without needing
interrupts etc.. Might be worth investigating.... |
Yes but at some time it needs to toggel a pin to generate the square wave, the only way I know how to do that is in a very lean ISR... But that ISR would be pushing/poping the stack for every cycle at 150Khz !
I'll revisit the PIC10F322 and just accept the extra work of hardware programming.
Thanks for the help |
|
|
newguy
Joined: 24 Jun 2004 Posts: 1907
|
|
Posted: Fri Oct 09, 2020 7:30 am |
|
|
No. Some timers can set and clear a pin. All you have to do is a quick skim of the data sheet. Modern PICs usually have 2 or 3 types of timer: timer 0 is usually unique, then there are even and odd timers. Just skim the data sheet regarding (I think) the even timers as they have the ability to set not only a period but also a duty cycle. Pretty sure they can be tied to a pin. |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19513
|
|
Posted: Fri Oct 09, 2020 9:14 am |
|
|
It is slightly complex, but the timers on the PIC24/30/33, have an
'output compare' capability, which can set a pin high, set a pin low,
toggle a pin, do a delayed 'one shot' monostable output or send a pulse
at a specific count. This ability supports 32bit counters (has 32bit compare
registers). So these timers can generate quite complex operations based
on a particular 'count'. |
|
|
|