Atmega series Micro controllers have several benefits like its open source, easy to use, available in a large different types, cheap and most important one, it is easy to begin. It have wide variety of boards available called arduino which are easy to start things. Specially if you are programmer and know a little about electrical then it is a blessing for you. Although it can help you to begin but these are not appropriate for Electrical engineers as they have a lot of essential things skipped or being done under the hood. But still it is of great help if you start with Arduino, so I come with a 'cost effective' solution. I find out a way to use Arduino programmer to program Atmega Micro controllers. So start with Arduino and slowly switch down to atmega.
Hello all, my name is Glenn and am new to Arduino and programming micros. I have a question that some may think is foolish but I have googled for the answers but as of yet have not found any answers. I have an assortment of the older Atmel chips such as the AT90S2313, AT90S3535, etc and was wondering if I can use the Arduino programming language to program the chips? I have a Atmel STK500 to download the sketch but didn't know if everything would be compatible or not.
Oh boy, I am sorry about the errors on the part numbers. I have the following Micro's, AT90S2313, AT90S2323, AT90S4414, AT90S8515, and the AT90S8535. They are all old stock and I don't think Atmel even makes them anymore. I bought them a while back, thinking that I would learn to program them and then I had a stroke. It has been three years since and I got the interest back up to see if I could learn to use them. While on the web, I see the Arduino and that really sparked my interest again. I am going to order a Arduino next month when I get some money saved up but in the mean while I was wondering about these Micro's that I have. I don't know whether the Arduino language which is a derivative of C. ( I think), would work with the older chips or not.
What Coding Badly meant was that was incorrect and that a bootloader is not necessary to use the Arduino IDEas the IDE can simply use a programmer that uses ISP instead of a serial bootloader.And by using the ISP with an ISP programmer any work of getting a bootloader to workon the new hardware would be eliminated.Configuring the IDE for new boards or programmers is trivial in comparisonto getting a bootloader up and working.
Keep in mind that if support of AVRs not included with the Arduino distribution is needed,then something has to be done to get the "unsupported" boards supported on each new Arduino release.And what is done to make that happen will be the same whether you use a serial bootloader or use ISP to program the AVR.(but that becomes a one time thing if the users sketches/hardware directory is used to add the hardware support)
So if the users sketches/hardware directory is used to add the new hardware supportand it used one of the supported ISP programmers above,adding support for a new AVR without whether using a serial bootloader orISP is a one time thing.
I guess the point of it for me is that there is 1,200 lines of hopefully the worst C you will ever see, that builds to 2,030 machine instructions and it implements something approaching a program editor and a programming language.
I just ordered an arduino 2560 please do BASIC for it. I love BASIC back in the DOS days I used to use ASIC to compile DOS programs. It was writen in x86 assembler its still about a quick google search will fine it. As well BASIC you could also call interuptes with it. I wrote a full graphic SVGA paint program that was controled by the mouse. ASIC is shareware and as well as compiler it had its own IDE but i preferd to use MS edit. Please do a BASIC with simerlar syntax or clasic syntax like Atari BASIC ie
I´ll say go for the BASIC, if there is someone who can´t know where the goto goes that´s their problem, time will tell who wins a dificult language like lua, c, arduino sketch or Basic, arduiino is the first eazy plataform for electronics but is tied-up with a C-like programing, now if we change that to an easy one like Basic it´s going to grow Viral
Now, there are definitely huge differences between a BASIC compiler and a BASIC interpreter and each has its place. With the compiler versions, like with C/C++, larger programs can be written with more global and local variables available, etc.
To get a list of parts supported by avrdude, type in avrdude -c avrisp (it doesnt matter if you're not useing an avrisp programmer) without a part number into the command line. Don't memorize this list, just glance over it to get an idea of the chips that are supported.
Setting the fuses incorrectly can 'brick' the chip - for example you can disable future programming, or make it so the chip is expecting an external crystal when there isn't one. For that reason I suggest triple-checking the fuse values. Then check again, make sure you aren't disabling ISP programming or the Reset pin or setting the clock speed to 32kHz. Then verify again that you have the correct chip for calculation. Then finally you can try writing them to the chip!
Check that the chip is powered, plugged into the socket or programmer properly, the programming cables are plugged in correctly, the header is wired correctly, etc. 99% of the time, it is a problem with wiring.
But for option #2, I'm not sure what I need. From the bit of reading I've done, I think I need a programming cable, and a connector on my board (what type?). Then I guess I (properly) wire the connector to certain pins on the ATmega.
Do not bother with anything BUT in-circuit programming. Unless you are a perfect coder, removing a chip every time you want to program it is a nightmare. I recommend the AVRISPmkII as an entry level programming tool. The disadvantage is there is no hardware debug supported. An alternative is the dragon but I have no experience with that. I can say that the JTAGICEmk3 is a nice capable debug tool.
To start, I kept using an Arduino but converted calls to the Arduino library into register reads and writes, one line at a time, seeing if my programs still worked. This way I got used to using registers and saw that they were not radically discontinuous with the Arduino way of doing things. Arduino functions like digitalWrite() simply manipulate the registers -- you are free to read and write to them directly in your sketches.
My next step was to put an ATTiny 85 on a breadboard and program it with Arduino as ISP ( =1695). If you buy a breadboard power supply and use the ATTiny's internal oscillator, this requires laughably little wiring. I used the Arduino IDE to compile but kept using registers as much as I could.
Then, I installed the free Crosspack command line toolchain and compiled a blinky program. After some more trial and error, I managed to program the ATTiny with avrdude only, staying completely outside the Arudino ecosystem.
Read up on ISP programming here. It will show you how to bring out the SPI connections. The SPI connections on your chip will be in the ATmega datasheet. Look on page 2 for MISO/MOSI/SCK/RESET pins. The programmer needs to be able to control the reset line. Remember to use a pull-up resistor on the reset line so that your chip will run after the programmer is disconnected.
The difference between an Arduino and a bare ATmega328 is only two things. The Arduino Bootloader, and the Arduino libraries. You can code an Arduino with bare C or C++ without using any of the libraries. You can also use assembly instead. The bootloader allows you to load new code through serial without going through the (slightly) more complicated in-circuit-serial-programming (basically SPI).
You can use standard programming libraries and avr-gcc with almost any ide. Contrary to what others might say, coding an Arduino is basically like coding a bare microcontroller, with some added conveniences at the expense of some performance.
I buy pre-bootloaded Atmega328P chips and program them in-circuit with an FTDI cable and avrdude, identically to how I'd program the Arduino. I like the Eclipse IDE but you can use any environment you prefer - Atmel Studio, the Arduino IDE, emacs, or barefoot on the command-line.
This board is under construction at the point where it is complete enough to test with a Hello program, using the cable for programming, power, and terminal. It will still need its power supply - LM2936 ultra-low quiescient current voltage regulator and a battery connector, in my case - and whatever other on-board components and off-board connections the project will need:
Since you have an Arduino, you could save a little money and use un-programmed chips, using the Arduino to install the bootloader.The nice blue pin-out labels help keep my goof-rate down!I use a 16MHz crystal but if you can run with the internal oscillator your parts count goes down by 3 (the xtal and 2 capacitors).
You can use the Arduino board, without using the sandbox libraries and environment, you can program everything yourself directly. If you want to use their bootloader via serial/uart to program, that works fine. But most/all the avr parts can also be programmed another way, with the part held in reset which means it is not brickable. it is quite easy to bit bang spi from an arduino or other microcontroller or with an ftdi break out of some flavor. sparkfun has arduino and non-arduino boards (the 32u for example) that the spi header is obvious. and ftdi breakout boards that you can easily bitbang using ftdi's library or the ftdi library that comes with linux.
The documentation for each part shows the booting options and flash programming options. yes it is not difficult to just buy some parts too and make your own breakout board. I wouldnt do that until you have used an existing breakout or simple eval board and then clone that if need be. Ideally start with a part with an internal rc oscillator, basically power, ground, and programming pins... 2b1af7f3a8