Content originally posted in LPCWare by lmoreira on Wed Aug 18 00:31:36 MST 2010
Hi Jesse,
I have been on some workshops for your ARM Micros here in the UK, and I found that you do have a very good product and that you found some very cleaver ways to speed up execution, but what you are lacking, in my opinion is the ability to convey this advantages to us as users.
This is the first time I am using an ARM Micro and although I have a decent knowledge of C and do work with other Micros like the PIC and some of the Freescale 8 and 16 bit Micros, I am finding it hard going.
Let’s take the System CLK, Only after reading some statement on page 4 of the manual, did I found out that apart from the normal RC oscillator you also packed another oscillator, which you give only max speed but no other characteristics.
On figure 3 page 12, the sys_osc_clk, can actually be this internal oscillator or the external oscillator, but yet I can not find any clear statement of diagram about this anywhere. Actually I found some mention of it by chance in table 12 (SYSOSCCTRL), which again is as vague and confusing as the rest. I presume instead of the external Xtal I can also feed a CLK signal into XTALin only.
To me the configuration section is very important and more detail on the chip startup and even a preferred or suggested sequence for its proper startup should have been included.
I also had problems with your GPIO documentation which you can actually see in this thread.
But apart from that, in my opinion your manual, actually does not convey the major feature, that you actually have a register for each combination of GPIO Pins for each PORT and that by writing into any of them you effectively eliminated the need for the usual masking, hence saving execution time. That is not obvious by reading your manual at all. It should be.
Another issue is the two lower bits that are not used when writing into the Port’s registers. When you look at the addresses for the registers it ends at 0x3FF8 and then the other register is sitting at address 0x3FFC, where did the registers in between gone? After I had to dig around for a bit, it became obvious that because you do not use the two lower bits for the “address”, although you can write to the registers nothing will change.
I also found that the 32bit Timer section gives me a lot of info on the registers but not really that much info on setup and usage. In my opinion, a massively flexible and future rich peripheral, that you again failed to explain properly.
What I am trying to say is that your manuals seem to assume that I am supposed to know a lot about how your Micros work.
I had some help from a friend trying to decipher your manuals and even him, who has many more years of experience than me, took a while to get anywhere. At is suggestion I actually looked at the ST ARM M3 documentation and I can tell you that maybe you should to. I actually understood the GPIO registers on your ARM after I read their documentation.
[FONT="]This is obviously my opinion and probably everyone else just reads your manuals and finds them completely clear, so I am not looking for posts for it or against it, I am just giving you the feedback based on my experience.
Thanks for taking the time to look at my post.
Best Regards
Luis
[/FONT]