Hello again: if you've been following the last few posts you see that I am trying to use Arduino's IDE a lot less, and learning to program MPU's like the Atmel 328P using
"Embedded C", as opposed to the Arduino Sketch language.
I've had some success, such as using C to create an LFO prototype...read about first steps for the DLFO project here. It works on the bench. Update 5-1-21 the whole damn Digital LFO--dev board discussed below, buffer board for incoming CV, switch debouncing that toggles waveform select, LEDs to show which waveform you're using etc etc. works!! I am happy! Post coming soon.
Question: if I stop using Arduino's IDE, can I stop using their hardware as well? Why/Why not?
Turns out it's pretty easy to roll your own simple AVR based dev board. Using bits of the Arduino Uno R3 schematic, a few examples found online (eg: here), and a few Atmel PDFs (the one here for instance--very useful reference) I came up with a minimal parts count AVR 328 PCB for future projects.
Schematic and board look like this:
But does it work?
Let's send this dev board's gerbers off to China....I usually use these guys....wow that was fast, they are back.
Let's stuff the board:
On the bench, connected to power and so on, it looks like this:
The power etc. checks OK.
Next, with a brand new 328 chip popped in we can upload this simple blink C program to test:
//DDRB = 0x20; // set bit 5 of DDR register which makes PB5 an output
DDRB = 0x02; // use PB1
PORTB = 0xFF; // switch LED on
PORTB = 0x00; // switch LED off
volatile unsigned long count = 15000;
And...nothing. Huh? This is a really simple design, why won't this work?
It took me about 5 minutes to figure this out.
The Atmel ICE's ICSP connector is pinned like this:
...but when designing the ICE connector no one at Amtel (?) marked where pin one is. Turns out I had the connector upside down!
On my board, the MISO pin goes to the top left. So the tab you see on the connector faces upwards.
After this fix, the MPU is now seen by the ICE programmer and we can upload code. yeh!
Cool! Good enough for now--"not much time for blogging/too much work to do...."
Next up, I'll see if I can make the recently "coded at the bench" DLFO (again, post for initial software DLFO build is here) work with this development board. I created a 2nd PCB for the DLFO to accommodate its CV buffers and whatnot and should have that back soon.
Stay tuned and don't breathe the fumes!