I am trying to make a RBB Arduino based project and I only need 3 pins. In the future I may use one to two more. I wanted to use an ATtiny85 however my code is 13,270 bytes and it would not fit. So I decided to use an ATtiny84 but it also would not fit, it will fit on an ATmega328p but I do not want to use one because i want to keep the project relatively small and I for sure do not need that many pins. Does anyone know of a chip that has a lot of memory but not many pins, or some other solution. Thank you, any help is appreciated.
-
Have you tried Atmel's parametric search tool yet?Ignacio Vazquez-Abrams– Ignacio Vazquez-Abrams2016年06月10日 02:11:03 +00:00Commented Jun 10, 2016 at 2:11
2 Answers 2
AFAIK, 8 KiB of flash is the most you can have on an AVR in a DIP package with less than 28 pins. If you do not mind soldering surface-mount parts, the 328P is available in TQFP and VQFN packages, significantly smaller than the DIP version.
Otherwise you could try to optimize your program to fit in 8 KiB. The Arduino libraries are often inefficient size-wise, and in many instances you can save quite a lot by rewriting the parts that you need on top of just avr-libc. Note that this libc is always linked to your program by the Arduino IDE.
-
Ok, I tried to optimize my code but could not get it much smaller. I guess my best option is to use a TQFP version, I didn't think about that. Thank you.Scalcy– Scalcy2016年06月10日 18:31:37 +00:00Commented Jun 10, 2016 at 18:31
There are a few ways to optimize your code and reduce the size. Have a look on this document from Atmel. I've used some tips to reduce the size of my bootloader once.
http://www.atmel.com/images/doc8453.pdf
For the AVR family I'm not familiar with any option. You could use a small QFN package for the atmega328p as well... You might find some small ARM with much more memory and small size.