We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
hi,
after some time i think its time to learn arm programming, i used to program for avr, (im mainly a pc programmer ! young one )
i got an Raspberry pi model b+. but i don't want to use it for making fun stuff or hobby, i want to do real programming(not that python and pi are not real programming i can't explain what i mean) , so i can work somewhere(i don't want to but example of what i mean, im not looking to make stuff, im looking to learn!!!) or make products! (like nest self learning thermostat or the Parrot ar.drone)
raspberry pi has an os and its a big boards and has unneeded stuff so i don't want to use it on my final product (release it with a pi inside of it!)
like in avr i wrote my c program for my chip on breadboard, or an arduino, after that i just installed the final version into a chip ans inserted it into a final cricut , but not the whole arduino! (like lets say i made an automatic cat feeder and released it for public!!! )
i want to do the same, so my question is:
how can i start it? Do i need to know Assembly? i only know a little bit of PC assembly, it sounds cool
i heard different MPU/MCU's require learning the whole thing again, i may use different stuff on different projects, that means i have to learn it again for each project?!
lets say my goal is to make AR.Drone from scratch, by buying motors the chips and ect, but i want to prototype it with pi first, and the OS and other stuff just require battery and waste resources , how can i do it?!
so what should i do/learn to make an AR.Drone?! (i know its not like i wake up and decide to build a time travel machine but i will learn what's necessary because i have time and im looking to learn !)
sorry if this question sounds stupid but i have been really confused these days so i thought its good to make a thread!
EDIT:
let me summirize it a little !
Summary:
im moving from AVR programming to ARM,
what steps i should take? what should i learn?
i want to use ARM for making products and devices , i already bought an pi to prototype before i can make it a product , in its own board with other stuff in the board
a good example of what i want is ar.drone !
If you keep your repositories local, you do not need a git server.
However, I have a git server, because I work on a project where other people are involved, so we can push and pull from the server.
I know it's not easy to get what you want, when you live in Iran, but you seem to have found a good shop there!
The LPC1768 is one of my favorites; that's the first Cortex-M I had. (I still have it).
I can recommend this one, but I will also recommend you to look at the datasheets for the other microcontrollers. I've seen there's a LPC1769 as well; this is 120 MHz, where the LPC1768 is 100 MHz.
I know the LPC1768 and LPC1769 can be programmed via both JTAG and SWD. They can also be programmed via UART0, so if you have a USB-to-UART adapter, you can use a small free utility to upload the program to the LPC1768/69. I know there's something called LPC_DFU, which you should be able to use, but there are other utilities as well; open-source utilities. Unfortunately I can't remember the name of the one I'm thinking of.
Remember: You cannot connect a serial port directly to the UART. I recommend using something like the CP2102 module. They're fairly cheap (around US$2 only, or slightly more than £1, if you prefer British Pounds).
There is another option as well. Since you have the Raspberry Pi, you can use its I/O-pins to send data to the UART of the Cortex-M device you choose. This may be more complicated than it sounds, but if you can't get any USB-to-UART interface or a JTAG/SWD programmer, it should be possible to modify OpenOCD on the Raspi to be able to work as a SWD-programmer.
If you can receive packages from China, you can get a lot of good components, including a few ARM microcontrollers on eBay.
thanks, i already have an USB to UART (for my old avr )
so the question now is: where can i start learning how to program those? that board is even more expensive than the Pi its unlikely i will buy it but anyway, if he lets me i have to wait 2 months
and they can be programmer in C right? i don't have problem with learning asm but i still prefer c !
EDIT: it says its out of stock
but they had these : LPC1768FBD100-ORIGINAL the Chip itself
and the programming is same for all the boards with exact same chip right?! because if i got another board but with the same ARM Cortex-M !
btw i found another website which has this on stock and its cheaper :
http://eshop.eca.ir/%D9%85%D8%AD%D8%B5%D9%88%D9%84%D8%A7%D8%AA-eca/876-lpc1768-cortex-m3-header-board.html
how about this one?! and when i programm a Cortex-m3 from lets say Ti, the exact same chip but from Philips has different programming?! or its the same !?
The LPC1768 Header Board looks good for using on breadboards. It seems there is a on-board voltage regulator, which means it's probably powered from the USB interface of a computer (or a 5V MP3-player charger with USB-connector).
I think you can use FlashMagic too for flash-programming this board.
If not, you will always have the UART option - it's good to have more than one option, in order to get started quickly.
As you can see, there's a large black connector on the board as well. This is a JTAG and SWD connector, which is also used for flash-programming the lpc1768 on the board, that means you can choose which way you want to flash-program the board yourself.
In addition to the above, notice that each pin has the pin name written next to it, so it's easy to find the signals.
The designer also took some time to place the pins in a nice order.
So the board gives you freedom and good possibilities; I believe it would be a good purchase.
You can program the LPC1768 in C, C++ or assembler if you prefer. The choice is all yours.
If you decide to go for programming in assembly language, you will probably find the documentation at ARM Information Center interesting (Click Cortex-M series processors, then Cortex-M3 and r2p1.
I would say that the programming is very much the same for all chp-family members of one type, whichever board it's on.
When I say chip-family members, I mean...
This is because there is a 'core' on the chip, which is the instruction set, but each microcontroller family may have additional peripherals (functions).
For instance, one microcontroller family may have one 10-channel ADC, while another chip-family might have no ADC.
Or... one might have two 16-bit timers, another might have four 32-bit timers; setting up a timer would then require different code for the 32-bit timer, when compared to the code for the 16-bit timer.
In some cases, you might need the 32-bit timer because a 16-bit timer isn't enough in the particular case.
To make the answer more clear: Microcontrollers from NXP would be different from microcontrollers from Texas Instruments or ST-Microelectronics.
-Even microcontrollers from the same manufacturer would be different.
However... Writing code for a Cortex-M3 from Texas Instruments wouldn't be difficult if you've already written some code for one from NXP.
You will always need to read the documentation (eg. datasheet and User's Manual) for your microcontroller.
See for instance the datasheet and UM10360 for the LPC175x/6x family.
-But I would like to say that the LPC1768 is a good choice, it has a fair amount of features. You will probably not be using all features in one design.
It does not support external SRAM or SDRAM, and it does not have a built-in LCD-controller like the LPC1788, however, there are a number of LCD displays that do not require a controller, so you would be able to write code that could show something on for instance a SPI-based or parallel-interface LCD-screen instead.
Using this search phrase, I found another shop, where you can buy the same board for IRR 60000; to me, this sounds like a pretty affordable price for such a nice board.
Thanks a lot
it sounds like only need a 1~hour study to learn how to program other Chip (like when some timers in AVR had diffrent bits , it only took me 15mins to figure our how to use the other one (not only timer) from datasheet
also i will program on c:) and maybe use inline assembly sometimes !
so now i have 2 last final question:
i can't install linux on it right? becasue i might need to stream video to PC and it sounds pretty hard without Linux helping me i will learn A when i needed that ! or use samba (sounds like Raspberry pi will help me here )
im googling myself but if you know any good websites or book to learn how to use the LPC1768(i guess) ?
i found some persian tutorials there but i feel uncomfortable reading persian tutorials !!!
thanks a lot
that's same(50 rials = 5 tomans ) but thanks a lot for searching for me (and also i didn't know you can search like that thanks a lot ) 60000tomans = 19$
i gtg but thanks a lot i will order it as soon as i get money from my father and till than read some tutorials
lol my father also told me i can order 1 tomorrow
Tell your father that he's a good father.
Sorry for the mistake in the price; $19 sounds more correct too, but that's still a very low price.
ok i didn't get results, do you know any tutorials? i don't know where to start learning how to program
I do not know any tutorials, no, but since you already have tried AVR, you already know approximately what it's all about.
-And you don't have to build a board first.
That said, I know a place where you can find good information on all the NXP microcontrollers; it's called LPCWare.
One of the first things you will notice is the forums. But before you go to the forums, scroll down until you see "lpc175x_6x" in the "Device" column on the left-hand side. Right next to that, you will see a "Downloads" link, click this.
Now you'll get a new page, where you can select different checkboxes.
Click the "Software" checkbox, then click the "Filter" button. Now click on the "> Software" caption.
The first result should be "LPCOpen Software Development Platform (LPC17xx packages)". You will need this, so click it.
Right now, you don't have a development suite (you can get for instance Keil or LPCXpresso), but NXP recommends LPCXpresso, so I will do the same, but you can of course just download both and see which one you like the best.
As you see, on the page, there are 4 downloads available (of version 2.10). Two for Keil, two for LPCXpresso. There are two, because they support two diffent boards.
Pick the one for LPC1769, because that will be the closest to the LPC1768 you can get. The LPC1788 is much different.
Assuming you've downloaded both packages, you'll see in the upper right-hand corner a button that says "LPCXpresso" (it's just below the "Search this site" search field). Click the LPCXpresso button.
You're taken to a page, where you can read about and download LPCXpresso.
As soon as you've downloaded and installed the software, you can start (even without the board).
Try writing a small C program for the LPC1768 and build it. If it builds, it's ready to be flash-programmed into your microcontroller.
You can spend the time getting familiar with the software, until you get your board.
lol thanks the main reason he had trouble paying me was he had some problems at work (he's machines at company were are burned and he was repairing them )
edit : sorry didn't see the earlier post thanks a lot xD
7kb/s download speed, i broke light's speed
i downloaded lpcopen_2_10_lpcxpresso_nxp_lpcxpresso_1769.zip
its lots of folders i randomly opened one and i didn't understand a thing ! but let me download the 300mb file first
edit: i donwloaded the other one (keil, in sublime this time, i kinda get how it works now, doens't really needs a tutorial(i assume ) let me look around a little, will post in this thread if had problem, thanks a lot
i just didn't understand stuff like SystemCoreClockUpdate (what does it do) or __WFI() but anyway i will search after i downloaded it and figure it out other stuff were pretty clear