Go Down

Topic: Project Bambino (Read 6397 times) previous topic - next topic

janost

Here is my new project called Bambino.

It has the same footprint as Uno but with an ATmega1284P.
128KB flash, 16KB SRAM, 4KB EEPROM and 32 I/O-ports.

The prototype is clocked at 16MHz and will have native Video, Audio and Keyboard port.
The Video is going to use my VideoBlaster platform.
I havent decided on Audio yet.

At the moment it does not have any serial port so it has to be programmed thru the ISP port.

I'm waiting for my Pololu AVR programmer and will then see if it takes any code :)


strykeroz

Very interesting.  What do you have in mind for this baby when complete?

Geoff
"There is no problem so bad you can't make it worse"
- retired astronaut Chris Hadfield

janost

#2
Dec 03, 2013, 11:41 am Last Edit: Dec 03, 2013, 12:23 pm by janost Reason: 1
It can run games like the Uzebox but my goal is to make it standalone.
A screen and a keyboard and run the IDE onboard, no computer required.
Perhaps with an SD-card for storage.

My VideoBlaster platform runs 40x25text/tile, B/W at the moment but I have both color NTSC and VGA in my plans.

The pinheaders are the same as Uno but sadly the SPI/i2c pins wont be in the same location.
I havent solved that yet.
Perhaps I'll make my own footprint when I order circuitboards.

I'll get it to boot at 16MHz first but will add an option to overclock up to 32MHz.

Yes, thats 32MIPS.

fungus


I havent decided on Audio yet.


ATtiny85?

http://www.atmel.com/Images/doc2542.pdf

A Tiny85 could easily run a software synth and play back sample data sent to the USI port from the Mega1284.
No, I don't answer questions sent in private messages (but I do accept thank-you notes...)

janost

#4
Dec 03, 2013, 01:34 pm Last Edit: Dec 03, 2013, 01:38 pm by janost Reason: 1


I havent decided on Audio yet.


ATtiny85?

http://www.atmel.com/Images/doc2542.pdf

A Tiny85 could easily run a software synth and play back sample data sent to the USI port from the Mega1284.



I have thought about that and I have 2 of them at home.
It also has a great PWM mode for audio DAC.

What I'm after is a softsynth mode like the SID to offload the main uC.
But it could also support PCM-modes.

fungus


What I'm after is a softsynth mode like the SID to offload the main uC.
But it could also support PCM-modes.


There's no reason it can't do both. You could even send PCM data in little blocks and buffer/mix it on the Tiny85.

Google has plenty of hits for "attiny85 soft synth": https://www.youtube.com/watch?v=6-R0TzYYLe8
No, I don't answer questions sent in private messages (but I do accept thank-you notes...)

janost

I havent given up on the 328.
The code will still run on an Arduino platform.

It's just that the Video eats so much of the available memory unless you use a tilesize like Petri's 13x10.

janost

Ok, I got the programmer.

I'll check tonight if I'm able to upload a simple Blink sketch.

I  have added this into Boards.txt:
Code: [Select]

##############################################################

1284_16.name=Atmega1284p @ 16MHz w/Pololu AVR ISP V2
1284_16.upload.protocol=avrispv2
1284_16.upload.maximum_size=131072
1284_16.upload.speed=19200
1284_16.bootloader.low_fuses=0xFF
1284_16.bootloader.high_fuses=0xDF
1284_16.bootloader.extended_fuses=0xFD
1284_16.bootloader.path=1284p
1284_16.bootloader.file=optiboot_atmega1284p.hex
1284_16.bootloader.unlock_bits=0x3F
1284_16.bootloader.lock_bits=0x0F
1284_16.build.mcu=atmega1284p
1284_16.build.f_cpu=16000000L
1284_16.build.core=arduino
1284_16.build.variant=1284p

##############################################################

644_16.name=Atmega644p @ 16MHz w/Pololu AVR ISP V2
644_16.upload.protocol=avrispv2
644_16.upload.maximum_size=65536
644_16.upload.speed=19200
644_16.bootloader.low_fuses=0xFF
644_16.bootloader.high_fuses=0xDF
644_16.bootloader.extended_fuses=0xFD
644_16.bootloader.path=1284p
644_16.bootloader.file=optiboot_atmega644p.hex
644_16.bootloader.unlock_bits=0x3F
644_16.bootloader.lock_bits=0x0F
644_16.build.mcu=atmega644p
644_16.build.f_cpu=16000000L
644_16.build.core=arduino
644_16.build.variant=1284p

##############################################################

And this into programmers.txt:
Code: [Select]

avrispv2.name=AVR ISP v2
avrispv2.communication=serial
avrispv2.protocol=avrispv2


I have also added a 1284p folder to \bootloaders and to \variants

I need to burn fuses first, right?

CrossRoads

If you load a bootloader first, that sets the fuses. Then upload your sketch using File:Upload Using Programmer.

What is the programmer you are using?
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

janost


If you load a bootloader first, that sets the fuses. Then upload your sketch using File:Upload Using Programmer.

What is the programmer you are using?



Pololu AVR Programmer.
It is an AVR ISP V2 programmer.

If I burn a bootloader can I overwrite it later?
Or does it just burn the fuses and not actually the bootloader?

CrossRoads

Loading a  bootloader sets the fuses and loads the bootloader, the bootloader is then overwritten when File:Upload Using Programmer is used and the fuses are left as is.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

janost

#11
Dec 03, 2013, 07:34 pm Last Edit: Dec 03, 2013, 07:47 pm by janost Reason: 1

Loading a  bootloader sets the fuses and loads the bootloader, the bootloader is then overwritten when File:Upload Using Programmer is used and the fuses are left as is.


Thanks, I dont want to brick it the first time I ever program a AVR chip.
It's not a big deal but will it end up on the shelf since I dont own a highvoltage programmer. :)

I dont need a bootloader in my application because I will make my own bootloader.

So if I use "Burn bootloader" first, the next time I upload something it will do an "Erase chip" before loading my code so the bootloader isn't effective any more?

The fuses, especially "BOOTRST" need to be set correct?

janost

#12
Dec 03, 2013, 08:12 pm Last Edit: Dec 03, 2013, 08:24 pm by janost Reason: 1
Well, here goes...

avrdude.exe: Device signature = 0x1e9706
avrdude.exe: Expected signature for ATmega1284P is 1E 97 05
            Double check chip, or use -F to override this check.

Hmm...
Seems I have a PU and not a P ?

janost

#13
Dec 03, 2013, 08:32 pm Last Edit: Dec 03, 2013, 08:41 pm by janost Reason: 1
I used AVRDUDESS to check my ISP Connection by Reading the signature.
It's a GUI for Avrdude so the Arduino IDE will also complain about the Signature?

At least that communicates with my chip.
In the Arduino IDE it looks like this.

And I don't have the slightest clue to what it wrong?

I dont want a separate program for uploading Hex-files :(


janost

#14
Dec 03, 2013, 09:12 pm Last Edit: Dec 03, 2013, 09:22 pm by janost Reason: 1
Ok, I managed to get it accepted in Avrdude by changing the signature in Avrdude.conf

It says Lfuse 0x62, Hfuse 0x99 and Efuse 0xFF.

Still no luck in the IDE.

So this is the default factory fuses?


Go Up