|
|
View previous topic :: View next topic |
Author |
Message |
rxpu99
Joined: 23 Jun 2014 Posts: 10
|
CCS demo 45 day limit |
Posted: Sat Jan 23, 2016 7:51 am |
|
|
I want to try the new ccs compiler.
What happens after 45 days , will the optimizations disabled as the microchip xc compiler or will it totally unfunctional ? |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9226 Location: Greensville,Ontario
|
|
Posted: Sat Jan 23, 2016 9:31 am |
|
|
don't know how CCS does their time check but..
you could install the program, run it, close it, change PC clock to 46 days from now,then try running the CCS demo.....
Jay |
|
|
MikeW
Joined: 15 Sep 2003 Posts: 184 Location: Warrington UK
|
|
Posted: Sat Jan 23, 2016 10:50 am |
|
|
it just stops working !!!!
nags you to buy it, which is fair. you have had 45 days to evaluate |
|
|
rxpu99
Joined: 23 Jun 2014 Posts: 10
|
|
Posted: Mon Jan 25, 2016 6:34 am |
|
|
I hope there will be a future free version that is code size limited or / and optimization limited for small projects just like microchip XC. Because when compared to XC I think that ccs is more neat simple and easy to use with better wizard support.
I am not a commercial company, I am a micro startup, I realised to buy it , but my only concern is the mcu world and mcus change rapidly, So if i buy a licence i fear i should also buy each year an update to keep up the new mcus.
I have an important question: If I buy a licence and dont buy for 3 year an upgrade (assuming i can keep up using similar mcus) , after 3 year is it possible to update with an attractive price?, Or will it be near to the full price to upgrade for the ones that does not upgrade each year.
How is the upgrade policy regarding the mentioned periods?
ex: Can I buy a maintanance after 3 years (assuming first 3 years without maintanence contract) . If yes will it cost the same or more? |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9226 Location: Greensville,Ontario
|
|
Posted: Mon Jan 25, 2016 7:05 am |
|
|
comments...
I bought CCS PCM with version 2.54x, so a long,long time ago, currently use a mid 4.xxx version.
The 'trick' I've used for 20+ years is to NOT use the newest PIC on the market! Rather choose one 'representative' for 18 pins and one for 40 pins. For smaller projects the 18 pin PIC will work fine and when you need more memory or I/O pins, use the 40 pin PIC. By using only TWO PICs you can develop your own libraries,PCB and KNOW both code and boards should work. Yes it may cost a bit more,but you must consider your R&D time. The money spent in taking 4 hours to choose the 'best' PIC for a project can easily pay for a LOT of 'upgraded' PICs. Say the 'best' PICis $3 and your 'big' PIC is 3.50. That's only a 50 cent difference.4 hours of R&D is easily $200 which would purchase 400 'big PICs'.
Small companies need small inventories to save money.Having 2 PICs does that and allows you to cut code faster as you KNOW the PIC.
There is a 'learning curve' to any PIC. Newer ones tend to have features you may not be 100% tested or the compiler has a 'bug'. These days getting the product to the client as fast as possible makes you the most money.
As for upgrading...once you've got a version that works just use it. No need to upgrade. Now if a client needs a new PIC with 'special' features, you'll need to upgrade but the client will pay for that.
Jay |
|
|
newguy
Joined: 24 Jun 2004 Posts: 1907
|
|
Posted: Mon Jan 25, 2016 8:04 am |
|
|
If you buy the "full" compiler version at some point, which comes with a year's worth of maintenance, then don't renew the maintenance...you can then at a later date just buy the maintenance. They won't make you pay for the full compiler version again.
It's a very reasonable way of doing business and the maintenance fee is very attractive/low.
The best course of action with the CCS compiler is NEVER blindly install the latest version without fully testing it first with known good code on known good products. When you find a version you like (with versions 2, 3 and 4 CCS used to have a known "stable" release for download along with the latest compiler version, but they seem to have done away with this for version 5), stay with it until you're forced to upgrade, say for instance that the new version supports a PIC you want to use but the old version doesn't. |
|
|
rxpu99
Joined: 23 Jun 2014 Posts: 10
|
|
Posted: Mon Jan 25, 2016 8:18 am |
|
|
As a young startup i also obey your strategy to use a group of small number of mcus. The main problem is that
I need functions of dspic such as phase shifting and speed. But dspic has no eeprom. So i decided to stick to dspic and use external eeprom through SPI. So that I can fix the number of pic types to 1 for all various needs. So far so good but Murphy's law is shining through the door.
I need the most robust variant such as a voltage tolerance between 3V and 5V.
I waited for the new dspics i think the EV series that have 5V tolerance. I felt happy. But?!?!? I looked at the specs they were spec'ed as 4.5V and 5V. This ruins the strategy for my brownout routines to save the parameters to eeprom, because I need a wider voltage range that the MCU operates for safety reasons.
At the end I have:
A perfect pic18 that has 3V to 5V operating range, internal eeprom but no phase shifting routines (Hardware phase shifting is a must for me).
A perfect dspicEV that has hardware phase shifting but no wide VCC range and no eprom.
Both cases I reach no solution. (except using both interconnected through spi and act like 1 cpu). But this contradicts to using simple neat one group of pic.
Because of that reason, I am using evaluation versions to develop the code but if any dspic with wide range 3V to 5V comes out i must upgrade both the mcu and the compiler!! for serial production.
The semi-perfect solution is the dspic30F2020 which has 3V to 5V voltage range. But it is too old and has poor speed. It is now hard to find and I don't know what happens in future. So I hesitate to use it for a new project that is in design phase.
Any ideas recommendation for a newbie. (especially about this brown out robustness issue)
Last edited by rxpu99 on Mon Jan 25, 2016 8:48 am; edited 1 time in total |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9226 Location: Greensville,Ontario
|
|
Posted: Mon Jan 25, 2016 8:42 am |
|
|
Since most if not all external peripherals are 3 volt devices( GPS, SD cards,etc), it might be best to find a 3V PIC ( 'L' series) and use that. This eliminates the need for logic level conversion chips and all the problems like board layout, extra cost, R&D, etc.
I'm fairly sure anything that is '5 volt' has a '3 volt' brother that you could use.
If you standardize on '3 volts' you won't spend countless hours trying to decide what is wrong with your code when really it's a 5 vs 3 problem !!
Jay |
|
|
rxpu99
Joined: 23 Jun 2014 Posts: 10
|
|
Posted: Mon Jan 25, 2016 9:03 am |
|
|
My applications are based on power electronics for industrial niche devices where very high currents at very low voltages exists. (Ex 3000A @2V or 4500A @1.6V). Each small trolley runs on a path carrying a common dc bus. (Think about 500 small trolleys each having a buck converter and regulating 30A).
The common bus is so noisy and harsh (there are electrolytes, acids around) . So I hesitate to use 3.3V. I also fear that my mosfet drivers latch up at 3V. So I insisted on using 5V.
I also noticed that Microchip states that they have 5V versatile, robust devices for industrial devices that are used in harsh environments. This statement also injected some skepticism to my mind to switch to 3.3V.
What do you think about this ? Is there really need for 5V for noisy environments or is it a marketing strategy? There are also 3.3V devices with 5V tolerant outputs. But i am confused. Because in my mind i realize that a silicon structure that operates between 3V and 5V must be a better sort of silicone and these 3V devices are the groups from lower quality lithography to lower the cost. I am not sure. But I wish to hear any idea or experience. |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9226 Location: Greensville,Ontario
|
|
Posted: Mon Jan 25, 2016 9:45 am |
|
|
In any 'noisy' environment, you MUST eliminate the noise. I know it can be a battle but using opto isolation, ferrite bead, proper caps, chokes, etc. you should be able to run at 3Volts all the time. The key to winning is KNOWING where it comes from. Simple R-C networks might get rid of most, propr grounding always helps. Big (relative term) conductors on PCB will help. Lots of caps,right size and type are always needed. Steel enclosure with 'feedthrough' filters could/should be used. Proper power supply design is critical. All too often overlooked and EMI come through there ! You mention MOSFETs, so be sure to filter out any back EMF.
yes, I know it's a nightmare having run equipment in building full of high power welders and running 15 miles of solid copper for the communication network...but... you can win !!
Jay |
|
|
rxpu99
Joined: 23 Jun 2014 Posts: 10
|
|
Posted: Mon Jan 25, 2016 11:02 am |
|
|
I agree that all possible engineering should be forced to eliminate noise but lets assume mathematically. Lets say that an average engineer with decent knowledge can have design implementations that reduce noise related problems by %95. So:
5V system noise tolerance is %99
3V system noise tolerance is %96
So with your fix design implementation choosing the 5V is always more robust. Ana there are a limit on the design implementation that you can achieve. I am unfortunately not an Analog Devices or TI or Agilent design engineer :(
My system can not be grounded. It is floating and more than 500 devices move along an elliptical railway having each a dedicated buck converter demanding a severe harmonic loaded PWM chopper causing extreme ground loops. Yes it can be done near perfect with suitable engineering but there will be always a rest probability to failure. And to minimize it I feel that the only way is to have a wider margin on the io pins.
I also have a problem with brown out. I detect the voltage and if it is under 4.5V I write critical data to eeprom and restart. And while writing to the eprom the voltage drops up to 4V which the mcu continues to work properly. But if I have an mcu that resets under 4.5V, I must detect maybe 4.8V and try to write really fast so before the mcu resets at 4.5V. I know I can use much more bigger caps but they also have other headaches. Any ideas? |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9226 Location: Greensville,Ontario
|
|
Posted: Mon Jan 25, 2016 12:22 pm |
|
|
OK couple of comments..
1) how fast are the inputs to the system? Consider a 'burgler alarm' system.Any door or window switch or sensor does not need micro second response. 250 ms( 1/4 second) is more than adequate to tell the system, a door is open. Knowing that timing, it is easy to design R-C filters to eliminate all 'high frequency' noise ( EMI) yet allow good signal to pass. Better systems use a 'window comparator' circuit. An opamp with suitable resistors that only outputs when the input is 'out of bounds' by a known amount.
2) what are your inputs? If simple micro switches, consider using either high quality gold plated ones or IR or some other electronic ones.
3) possibly use say 12volt for the sensors then opto couplers to pass the signals to the PIC.
You have 4 'areas' that EMI comes from
1) sensor inputs
2) outputs to relays
3) power supply feeds
4) airborne
Each has to be treated properly and yes I know it an be difficult however once you know where it comes from, filtering can be done.
if you can supply more details of inputs/outputs maybe i can think of specific cures !
hope this helps
Jay |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19515
|
|
Posted: Mon Jan 25, 2016 1:24 pm |
|
|
Start at the beginning.
You are not just going to be using one chip. Whatever you are doing, it is going to be connecting to external devices. As such, you need to be able to have reliable connections to these, so you need to be handling the environment to include these as well as the main chip. Two chips could be just as simple as one, especially since as chips get larger, they will have multiple supply pins, and these will have the same noise problems as the supplies on multiple chips...
Now noise is not as 'simple' as higher voltage is better. There are other considerations, such as the actual input thresholds, but higher voltage does 'help' to allow higher thresholds.
I have designs using 3.3v controllers handling over 80KVA....
You speak about needing hardware phase shifting. What for?. If this is something like motor drive, consider whether a specific motor drive chip might reduce complexity?.
The faster a chip goes, generally the smaller it's die elements will need to be to keep power down, and the lower it's operating voltages will be. Others have already asked if you really must have high speed?. What do you actually need to do?. |
|
|
rxpu99
Joined: 23 Jun 2014 Posts: 10
|
|
Posted: Mon Jan 25, 2016 4:09 pm |
|
|
There are 500 trolleys/cars on an elliptical railway that turns clockwise continuously.
there is a thick plate (first plate +24V second plate 0V ) . these plates are mated to the elliptical railway.
Each trolley/car travels through that through that elliptical railway , Each trolley have spring loaded bearings that transfers +24 and 0V to the internal circuit of the trolley.
Internal circuit in the trolley has a buck converter working with a chopper pulse width modulation @ freq of 25kHZ (half bridge topology) . The buck converter works as a programmable current source. The mcu has a PID loop, it regulates independent of the load a preprogrammed current.
Continuously measures output current and regulates the PWM duty cycle so that the output current is set to the preprogrammed value even if the load resistance changes dynamically between 100mOhm and 300mOhm. PID loop cycle rate is 1KHZ.
Big sources of noise:
Common DC bus: the input current of the buck converter has peak and then declining rather than sinusoidal. it generates too much harmonics. And there are 500 of them stressing the same DC bus . (and causing also too much harmonic to each other).
I use phase shifting as far as I can. I group 4 trolleys to 1 controller so that I can phase shift 4 buck converter 90 degree to each other. So that the peaks do not coincident and increase the ringing and harmonics because of the uncompensatable internal inductance of the DC bus bar plates.
Second headache is the current measurement sensors. I use a low side current sense IC (dedicated chip).
I also use dedicated mosfet drivers. My second hesitation: Some really robust mosfet drivers especially high voltage ones have only 5V input option. They offer 3V input for low voltage models.
According to these conditions , I want to have an MCU that operates without problems even if the supply fluctuates between 4V and 5V in extreme cases. In a 3V design I think I do not have this range and have a lower margin and lower reserve to failure. |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19515
|
|
Posted: Tue Jan 26, 2016 1:50 am |
|
|
Except, if you want a circuit that can run of 4 to 5v, you could potentially use an LDO, and have a reliable 3.3v source....
Realistically I'd start by rethinking your supply design. There is no reason why you can't get your supply reliable. Switch to a Cuk converter for example, and you can potentially generate a reliable supply pretty much whatever the external rail is doing. Simplifies things a lot.
Then with the supply reliable, consider splitting the topology. As already mentioned, done carefully, multiple chips can be just as reliable as single chip solutions and remove the need to have lots of processing on a single chip. This then helps allow 5v solutions. One chip actually generating the PWM, and another handling the PID loop.
Also be aware that a bit of thought on the PID, may allow much higher speeds with less processing power. I do one at over 1KHz, on a quite normal PIC18 at 16MHz, by using 24bit integer maths, with the low byte considered as the 'fractional' part. A little custom maths, and the code is many times faster than it'd otherwise be. For some applications, older, slower 5v parts may well be more rugged, but this then implies doing the design carefully to use the resources that are actually available, rather than just throwing a faster chip at the problem.... |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|