Go Down

Topic: Burning Code in a DIY Arduino (Read 2 times) previous topic - next topic

Xenobius

Hi all,

Ok so I've been searching for days now but either I cannot get it, or I cannot find a clear tutorial on WHAT (not how) to do.

Ok so lets say I bought an ATmega328P (SMD version) and created my own PCB and it's time to burn the code that I have written. Code that works well on an Arduino Uno. Its just that I decided to build my own PCB.

1. Am I right to say that I first need to burn the bootloader, and than followed by my code?
2. I have an FT232RL (https://www.sparkfun.com/products/718) and also a USBtinyISP (http://www.ladyada.net/make/usbtinyisp/). I found tutorials on how to connect these so this is not the issue, but I need to understand better, Which one do I need? What do I program what with?

For example, as I see this at the moment, I need to use the FT232RL to burn the bootloader once for the very first time and than I need to continue using the USBtinyISP to burn my code but this is just vague... I'm not sure.

Thanks reading and appreciate any thoughts even if you don't know how to answer all questions.
Thanks a lot
Clinton

Xenobius

Oh... guess this finally answers it. Don't you hate it that when you quit trying and you post in a forum, you immediately find you answer >.<

http://www.ladyada.net/learn/breakoutplus/ftdifriend.html


Cheers all

Nick Gammon

If you can burn a bootloader, you can burn your code instead. You don't need both, unless you happen to want to use the bootloader in future.

I have a bit of a walk-through here:

http://www.gammon.com.au/forum/?id=11637
http://www.gammon.com.au/electronics

dc42


Ok so lets say I bought an ATmega328P (SMD version) and created my own PCB and it's time to burn the code that I have written. Code that works well on an Arduino Uno. Its just that I decided to build my own PCB.

1. Am I right to say that I first need to burn the bootloader, and than followed by my code?
2. I have an FT232RL (https://www.sparkfun.com/products/718) and also a USBtinyISP (http://www.ladyada.net/make/usbtinyisp/). I found tutorials on how to connect these so this is not the issue, but I need to understand better, Which one do I need? What do I program what with?


Include a 6-pin ICSP header on your PCB, then you can program the atmega328p in-situ using the usbtinyisp. You don't need to FT232RL or a bootloader. You do need to be careful what else you connect to the MOSI, MISO and SCLK pins of the atmega328p in your design, to make sure that the usbtinyisp can take control of those pins during programming.
Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

Xenobius

Hey thanks for your replies.
Yes I know MOSI and MISO goes berserk when programming so I set them up as inputs with buttons to be safe.

Can I use the USBtinyISP with Arduino IDE?

Thanks for the tutorial too :D
X

Nick Gammon


Can I use the USBtinyISP with Arduino IDE?


Yes, I am using that.
http://www.gammon.com.au/electronics

Xenobius


Vincent19


Hey thanks for your replies.
Yes I know MOSI and MISO goes berserk when programming so I set them up as inputs with buttons to be safe.

Can I use the USBtinyISP with Arduino IDE?

Thanks for the tutorial too :D
X

What is the function of the button and what do you mean Mosi miso goes berserk?
Thanks

Nick Gammon

I presume he means that he uses those pins as input buttons (for whatever their purpose is). You wouldn't press them during programming.

Quote
... goes berserk ...


Has activity on them.
http://www.gammon.com.au/electronics

Xenobius

Right... I was refering to a situation I had once where I had a relay connected to MOSI and during programming, the relay kept clicking like mad. Hence were I got the berserk adjective. The buttons are normal push to make buttons which do not have to be pressed during programming. It is understood that by doing so, I would be interfering with the programming but this is better than having a relay or some output connected to them and during programming you would be risking damaging or controlling something.


Vincent19

So, is that means it is better not to connect any input/output device at the MOSI, MISO and SCK pins ? Are you programming using USBasp/usbtiny right ? If you are using ftdi programmer, then it will only involve Tx and Rx

Thanks

Nick Gammon

True, but then you have to make sure you don't have anything connected to Tx/Rx for best results.

Quote
So, is that means it is better not to connect any input/output device at the MOSI, MISO and SCK pins ?


It depends on the device a bit. SPI devices are designed for this sort of thing, you just don't activate them through their slave select pin.
http://www.gammon.com.au/electronics

Vincent19

I still dont get for the explanation on SPI pins

Nick Gammon

http://www.gammon.com.au/electronics

Vincent19

Thanks alot ! Great websites you have there !

Go Up