I have just bought an NRF51822-EK to familiarize myself with the micro-controller for a potential future job. Admittedly I feel like I am completely in over my head. I have written code in C for a PIC-18f4520 a few years ago, and currently write a lot of code in Matlab for my job. Where is a good place to start for learning how to program this new microcontroller? The first night I was able to play with the examples utilizing the push buttons and LED's but I don't know how to set up/ access the ADC or many of the other features. Thank you for your time and patience for someone new!
Seems like you have started in the right place, playing around with the SDK examples, please continue.
As you may know, the nRF51822 can be utilized with the BLE protocol and other proprietary protocols, like Gazell. Obtaining knowledge on the protocols would be a good starting point for exploiting the potential of the nRF51822.
If you are reluctant to start with the Core Specification, containing all there is to know about BLE, I would recomend "Bluetooth Low Energy" by Robin Heydon, found here.
Edit: Here is another book on BLE. One of the authors is a Nordic employee. Here is some training videos.
When it comes to how to utilize the different hardware modules, like the ADC, you can find useful code in the SDK examples. For a deeper understand I would recommend studying the nRF51 Series Reference Manual and the nRF51822 Product specification found here.
If you have more specific questions please post here or contact us through the support portal, we will try to answer you in 24 hours.
I am a beginner of 51822 as well. For on-chip resources like ADC, timer, you can use the SDK example codes. This is the way I learn to control the chip.
For BT 4.0, I highly recommend you techBASIC from ByteWorks. You can "easily" build iOS apps to learn more the protocol and test your projects.
Second the recommendation for Robin (it's Robin, not Robert) Heydon's book.
If you've come from a PIC, it would be worth you getting used to the concepts of event-based architecture, callbacks, maybe even RTOS. You've no doubt noticed that there's a little more in the way of SDK calls versus writing for completely bare metal -- both in terms of CMSIS and Nrodic's own SDK.
The good news is you probably don't need to read any of the Cortex-specific tomes ;)
Well,I'm ble beginner as well. Reading code, understanding examples is not a big challenge. The problem is explanation of rules to create/modify/access services/characteristics/descriptors. Examples do show how to do things but falling short in explanation considering that those who wrote code and examples know times more and have access to other experienced in ble engineers which us beginners are lacking. Yes, books are as great as necessary but costly in terms of money and mostly time.
I'd really like to see example step by step showing options, reason for decisions and just reference to sd library cause there are some limitations .
I guess it is just a dream... Engineers here are helpful so thank you for your patience.
I have successfully created a "new" service, added characteristics, descriptors, etc. Not sure everything followed the standard. But I have it running as intended. You need trail-and-error here or there. You can't avoid investing time at least.
Have you tried to, say, add characteristic to existing examples (e.g. Proximity)? This should not be difficult.