555 | DELAY | TIMER | FUSE | INST, SUMM
REGS: 328P , 84
| AVR-AS | NOTES: 328P | 84
MCU Predefines: io328p.h, iotnx4.h, and iotn85.h
ACES EAGLE SMT RESOURCES: ACES_SMT.lbr (2020 01 10), ACES_SMT.dru, ACES_SMT.cam, JLCPCB.dru
ACES Alumni Blogs/Companies: Ethan M '18, Ethan P '18, Dan R '19, Mariano E. '15
2020-2021 ICS4U: AVR Optimization
Session 9: (6 Classes) Final Wrapup (includes Long ISP Presentation and DER Preparation for Publication)
CLASS SUPPLEMENTARY CONCEPTS PROJECTS SUBMISSIONS
77
Jun 1
ISP Presentations
(LRC, JS, PB)
3.30 Long ISPs
SA, PB, AG
LR-C, JS, JV
76
May 31
ISP Presentations
(AG, JV, SA)
3.30.3
FINAL WEEKEND
75
May 28
'84 ADC Prescalers
9. ADC Conversion Complete Interrupt
(on the ADC Shield)
ATtiny84 Datasheet:
Chapter 10: Interrupts
Chapter 18: Analog-to-Digital Converter
ADCShieldASM Support Video
ADCShield: Full code
'84 ADC Auto Triggers
74
May 27
8. ADC Register Configuration
(on the ADC Shield)
Timer Registers
Timer Prescalers
73
May 26
7. Timer 1 Overflow Interrupt
(on the ADC Shield)

ATtiny84 Predefines (AS7 Include File)
prescalers84.inc

ATtiny84 Interrupts
72
May 25
6. Double Dabble
(Shift/Add 3) Algorithm

(Binary to BCD Conversion)
VICTORIA DAY WEEKEND
Session 8 (8 Classes): Putting It All (three years) Together...
AVR Assembly Language Programming ( Echoes of CHUMP :)
CLASS REFERENCES CONCEPTS PROJECTS SUBMISSIONS
71
May 7
5. Shiftout: 7 Segment
- Multi-Digit Display (PoV)

(on the ADC Shield)
3.5 Legacy Shields
SA, PB, AG
LR-C, JS, JV
70
May 6
4. Shiftout: 7 Segment
- Single-Digit Display

(on the ADC Shield)
3.30.3
69
May 5
Asynchronous Wednesday Task
Adapt Shiftout7SegmentSingle.S (Arduino IDE: AVR-as) to
Shiftout7SegmentSingle.asm (Atmel Studio 7: AVR-asm2)
post emails to the Forum if you have any concerns
69
May 4
4. Shiftout: 7 Segment
- Single-Digit Display

(on the ADC Shield)
3.30.3
68
May 3
  Bicolor Confirmation 3.30.3
WEEKEND - Whew...
67
Apr 30
  3. BareMinimumDDBv6 Template
Project Template Creation in 3 Steps
  3.5
66
Apr 29
Blink
65
Apr 28
Meet Guest (12 Noon...)
Oliver Logush (ACES '18, Queen's '23)
3.5
64
Apr 27

Endianness
Exploring
ATMEL Studio 7's
Tools and Assets
2. Data Location, Addressing and Movement

Stack Pointer
63
Apr 26
AVR 8-bit
Instruction Set

Online Reference
Summary vs Detailed
AVR Instruction Lists
Worth a watch ...
Why I’m switching from the
awesome Arduino IDE to AS7


AVR 8-bit Assembly
on the DDBv6
:

First Project:
1. OnBoardLED (.S or asm)



ATMEL Studio 7.0
User's Guide
Session 8
Prep

Apr 2-25
Required Hardware

Assemblers...
Arduino: avr-as
AVR: AVRASM
PRIOR to Session 8 (April 26)...
Languages by Intensity
TIOBE
Languages by Popularity

Install
Install ATMEL Studio 7
(Microchip Studio)
Watch...
Intro to Arduino Inline Assembly


EASTER - APRIL BREAK
LONG ISP (8 weeks) : Apr-May
SESSION BREAK
Session 7 (10 Classes): ADC (Successive Approximation Algorithm with R2R DAC)
CLASS SUPPLEMENTARY CONCEPTS PROJECTS SUBMISSIONS
62
Apr 1
'Behind the Curtain" look at the
Tone Library
In Class Task:

Driving TDK's Passive
PS1420P02
Piezo Buzzer
ATtiny84 TC1:
Prescalers
ATtiny84 Timer0
Chapter 13
ATtiny84 Prescalers
Chapter 15
61
Mar 31

DDP:
Charlieplex Equalizer
Introduction to the R/2R Resistor Network
Great blog and exceptional supporting video:
Basics of an R2R Ladder DAC

Meet Guest (12:00 - 12:20)
Josh Dolgin (ACES '20, Waterloo '25)
ATtiny84 Interrupt Vector #12:
Timer0 (Normal Mode 0) Overflow
ATtiny84 TC1:
Ports

TC1 Predefines
(Arduino IDE)
TCPrescalers84.h
TC1 Predefines
(Atmel Studio)

prescalers84.h
60
Mar 30

ATtiny84 Timer1
Chapter 14
ISP Presentations
SA, L R-C

Important ADC Algorithm
The inspiring video that brings clarity...
Successive Approximation

ACES' Frame Player: Timers84


ATtiny84 Interrupt Vector #9:
Timer1 (Normal Mode 0) Overflow
ATtiny84 TC1:
Waveform
Generation Modes

ATtiny84:
Interrupt Vectors
59
Mar 29

Recall PWM as
facilitated through the
high level function
,

analogWrite(pin,dc);

The duty cycle is specified but what about the frequency?
Maybe an overloaded
function is in order?

ISP Presentations
PB, AG, JS, JV

Introducton to Timers/Counters
What are they good for?
Counting, Scheduling, Event Capture,
Frequency Generation, anything else?




Could the WDT be used for PWM?
How did we 'kind of' do that already?
Timer Counter
Block Diagrams


Application Note:
Setup and Use of
AVR Timers
3.20.3 Medium ISPs
SA, PB, AG
LR-C, JS, JV
In what context did these
Familiar Frequencies
enter your ACES experience?
How many can you identify?

50 Hz, 2 kHz,
2-200 kHz,
32.768 kHz,
38 kHz, 40 kHz,
433 MHz,
8 MHz, 16 MHz,
2.4 GHz
Mar 26
Friday Holiday
58
Mar 25
Insanely great application
of the Analog Comparator feature

from Technoblogy
ADC Week. Day 4.
Putting the week's concepts together...
4-Bit Analog to Digital Simulation
on the DDP (DDBv6+USv1)

Thevenin
and
Superposition
57
Mar 24
ADC Week. Day 3.
Important Versatile Algorithm
Successive Approximation
The inspiring video that brought clarity...
Successive Approximation

56
Mar 23

DAC Methods:
R2R Ladder

DAC Using
R2R Resistor Ladder

Arduino Basics:
Digital to Analog Conversion
ADC Week. Day 2.
Ironically, it all starts with a DAC...
Digital to Analog Conversion

Seeds and Roots...
Great blog and exceptional supporting video:
Basics of an R2R Ladder DAC
"

Datasheet...
4610X-R2R-103LF
Familiar Resistor
Network Designs


55
Mar 22
ATtiny84 Datasheet
Chapter 17
ADC Week. Day 1.
ATtiny84 Interrupt Vector #13:
Analog Comparator Interrupt
exploiting the DDP Universal Shield v1
Class Sketch: ACInterrupt.ino

Mar 19
Friday Holiday
54
Mar 18
Coompletion of the
ADC Shield
A Curious and Applicable
Software and Hardware
Algorithm

53
Mar 17
Continuation of the
ADC Shield

DDBv6.13.3

Session 6 (9 Classes): AVR Register-Level Interrupt Coding of The Dolgin Development Platform (DDP) Shields
CLASS SUPPLEMENTARY CONCEPTS PROJECTS SUBMISSIONS
52
Feb 26
ISP Previews
SA, L R-C
DDP: Legacy Shield

3.20.2
51
Feb 25
ISP Previews
PB, AG, JS, JV
Universal Shield: USv1, USv2
3.20.2
50
Feb 24
Meet Guest:
Ethan McAuliffe (ACES '18, McMaster '23)
Continuation of the
ADC Shield
49
Feb 23
ADC Shield
Exploring your second DDBv6 Shield
ADC Shield
Part 1. WDTwithSleepADC
DDBv6.13
48
Feb 22
Completion of your first DDBv6 Shield
Intersection Shield
DDBv6.12
DDBv6.13
47
Feb 19
Exploring your first DDBv6 Shield
Intersection Shield
DDBv6.12
46
Feb 18
NASA's Perseverance...
Mars Landing Today
Finishing...
Power Management Prototype
with scheduling for ADC...
DDBv6.11
45
Feb 17
Intersection Shield Meet Guest:
Ethan Peterson (ACES '18, Queen's '22)
Continuing with ...
Power Management Prototype
DDBv6.11

Terminology
3.20.2
44
Feb 16

Watchdog Timer (WDT) Interrupt
(§9.8, p.39)
WDT support for:
Power Management

Power Down Sleep Mode
Kevin Darrah's...
Low Power Arduino! Deep Sleep Tutorial
DDBv6.11

3.20.2
FEBRUARY 15: FAMILY DAY
Session 5 (10 Classes): AVR Register-Level Programming of the ATtiny84 on the Dolgin Development Board (DDB)
CLASS SUPPLEMENTARY CONCEPTS PROJECTS SUBMISSIONS
43
Jan 29

More with less ...
Charlieplexing
The RSGC ACES'
CharlieStick
DDBv6.10
Charlieplexing the 8x7 Matrix
Charlieplex Matrix
3.4 Pin Change Interrupt
SA*, PB*, AG**
LR-C, JS*, JV*
41b
Jan 28
Again, Technoblogy...
ATtiny85 Function Generator
ACES' Frame Player: Waveforms
Sine, Triangle, Sawtooth, Square,
Rectangle, Pulse, Chainsaw, Noise

3.4
41a
Jan 28
Wolfram Demonstration...
Gray vs Binary Code

Rotary Encoders
Terrific Blog: Technoblogy...
Bounce-Free Rotary Encoder

Another good blog...
Rotary Encoders

DDBv6.9
Jan 27
No Teaching By Order of Management :) (Optional ISP Q&A Session)
40
Jan 26
Adding DDBv6 library support for
Register-Level ShiftOut
Exploring
DDBv6 support for
The Morland Bargraph V3
DDBv6.8 3.4
39
Jan 25
Concept:
Interrupt-Driven Coding
Adding DDBv6 library support for
Pin Change Interrupt(s)
exploiting the RSGC ACES'

Button Debouncer v2
with confirmation on the DDBv6's OnBoard LED

DDBv6.7
38b
Jan 23
Adding DDBv6 library support for
SoftwareSerial IO
to the IDE's Serial Monitor and Plotter
DDBv6.6

3.4
38a
Jan 22
Register-Level Coding of
Reset Sources
DDBv6.5
3.4
37
Jan 21
Further development of the
DDBv6 Software Library
keywords.txt
DDBv6.4

3.4
Jan 20
No Teaching By Order of Management :)
36
Jan 19
The OnBoard LED (PB2 - D8)
Reusable code...
Establishment of your Arduino
DDBv6 Software Library
Arduino Library Specification
keywords.txt Format

DDBv6.3

35
Jan 18
Dolgin Dev. Plat.
The Dolgin Development Platform (V6)

AVR Optimization ...
Big O Notation
of Algorithms

DDBv6.1
DDBv6.2

DECEMBER BREAK
Session 4 (8 Classes): ISP Presentations and Introduction to Mid (Register)-Level Programming
CLASS SUPPLEMENTARY CONCEPTS PROJECTS SUBMISSIONS
34
Dec 16
Project 3.3 Final Preparations ...
Exercises: PlayByte, outShift()


Project 3.3. Mid-Level Matrix

'595 Timing:
3.3 Keypad Matrix Echo
SA, PB*, AG
LR-C, JS, JV


33
Dec 15
  Mid-Level Coding Exercises
... on the ATtiny84
3.3
32
Dec14
Mid-Level Coding Exercises
... on the ATtiny84
3.3
31
Dec 11
ATmega328p
Summary, Full
Mid-Level Coding Exercises
... on the ATtiny84
30
Dec 10
Review homework ...
BitManipulation.ino
Mid-Level Coding Exercises
... on the ATtiny84
29
Dec 9
Further AVR Optimization...
Mid-Level
Programming

C++ Operator Precedence (p. 140)
BitManipulation.ino

GPIO Ports
Recall
#include iom328p.h
28
Dec 8
Cohort B on campus, so ...
Cohort A ISP Presentation (@home)

Peer ISP Evaluation Form
download and
rename 6 copies
to: YYmm.docx
3.10.4 Short ISPs
SA, PB, AG
LR-C, JS, JV
3.10.3
27
Dec 7
Cohort A on campus, so ...
Cohort B ISP Presentation (@home)
PARENT TEACHER INTERVIEWS - SESSION BREAK
Session 3 (7 Classes): CHUMP (EEPROMs, ALU, RAM, Software)
CLASS SUPPLEMENTARY CONCEPTS PROJECTS SUBMISSIONS
26
Nov 19

Electronics' Club
74LS Logic ICs
3.2. CHUMP II:
SA, PB, AG
LR-C, JS, JV
3.2.4 - 3.2.8
25
Nov 18
Shirriff: 181 ALU
Active High Operations
3.2.4 - 3.2.8
24
Nov 17
CHUMP: Branch Control Logic

Be sure to add a 2.2 KΩ Pullup
on ALU's A=B pin (14) (Open Collector)

CHUMP A=B Pin Explored
CHUMP: Shift Left User Instruction
NOVEMBER BREAK
SHORT ISP (8 weeks) : Sep-Oct
23
Nov 12
CHUMP Build Sessions
Initial Placement of ICs
Supply Access (5V-red?, GND-black?)
Color-coded Buses (Address?, Data?, Control?)
22
Nov 11
21
Nov 10
CHUMP
RSGC's 1st Computer (Jan 7, 1980 @ $25K)
Our PDP-11/03 Minicomputer
(SN74LS181 as the ALU!)
3.2.4 - 3.2.8
20
Nov 9
EEPROM Shield
Burner Code
*Additional Programs...
Shield Custodians:
SA, PB, AG, LRC
CHUMP
Control EEPROM Codes

CHUMPControlCodesWorksheet.docx
Feinberg's CHUMP Code Running
Feinberg Code:

SESSION BREAK
Session 2 (9 Classes): CHUMP (Code, Clock, and Counter)
CLASS SUPPLEMENTARY CONCEPTS PROJECTS SUBMISSIONS
19
Oct 23
ISP Preview (Home Cohort)
CHUMP
3.10.2 Short ISP Prevs:
SA, PB, AG
LR-C, JS, JV
3.2. CHUMP I:
SA, PB, AG*
LR-C, JS, JV
LR-C: Falstad Logic
18
Oct 22
ISP Preview (Home Cohort)
CHUMP (ACES' EEPROM Enhancement)
Feinberg Example:
82 10 21 62 A0
3.2.1, 3.2.2, and 3.2.3
17
Oct 21
Build/Guidance Session CHUMP / ISP
3.2.1, 3.2.2, and 3.2.3
16
Oct 20
Build/Guidance Session
Swapping Variables
Program Code

Shield Burner Code
CHUMP / ISP

Shield Burner's
Flashing of
Feinberg's Sample Code

BB Burner's
Flashing of
Swapping Variables
CHUMPanese Code
15
Oct 19
Build/Guidance Session
Feinberg Example Code
CHUMP / ISP


3.2.1, 3.2.2, and 3.2.3
Program and Control
EEPROMs
(AT28C16)
14
Oct 16
Build/Guidance Session CHUMP / ISP
Early Preview of the
AT28C16 EEPROM and Paging
13
Oct 15
Build/Guidance Session CHUMP / ISP
K. Shirriff's Blog...
Inside the vintage 74181 ALU chip:
How it works and why it's so strange
3.2.1, 3.2.2, and 3.2.3
12
Oct 14
Curr. Night
7:30 PM
Build/Guidance Session
Curriculum Night
CHUMP / ISP 3.2.1, 3.2.2, and 3.2.3
CHUMP Loaner:
Two RSGC ACES'
EEPROM Burner Shields
11
Oct 13
CHUMP:
Clock (NE555)
+TTL Logic: AND (74LS08), and OR (74LS32)
+ Program Counter (74LS161) (JV)
with /CLR feature
+ External NAND (74LS00) (LOAD)
CHUMP Supplements:
(no-charge)
0.3" and 0.4" (100 each)
red, yellow, green
rectangular LEDs (32 each)

Session Break
Session 1 (10 Classes): Introduction to CHUMP (Cheap Homebrew Understandable Minimal Processor)
CLASS SUPPLEMENTARY CONCEPTS PROJECTS SUBMISSIONS
10
Sep 25

Chumpanese: If..else Correction
SMT Assembly Service
(PB Machine V3)

Parts Library
3.1. GB Machine:
SA, PB, AG
LR-C, JS, JV
9
Sep 24
First (only?) look at the...
TL866II EEPROM Programmer
Curriculum Night @ 7
Service/Skills Request :)
JV to Solicit Feedback

Chumpanese Example:
if..then..else
 
8
Sep 23

Falstad Simulation:
555 with Internals
Ethan McAuliffe
First Look:

Chumpanese Example:
Swapping Memory Locations
M. McCutcheon's Build
R. Fletcher's Bots
7
Sep 22

CHUMP: Clock

B. Eater's terrific 4-part video series:
Part 2: Monostable, Part 3: Bistable
Part 4: Clock Logic
555 Tutorial
3.1
6
Sep 21
Check 'em out!...


CHUMP: Clock

For Discussion:
Calendar Modifications and ISP Weightings
B. Eater's terrific 4-part video series:
Part 1: Astable
5
Sep 18

Alan Turing's
Famous Paper:
(paving the way for the modern computer)

"On Computable Numbers
With an Application
to the
Entscheidungsproblem"
CHUMP
Cheap Homebrew Understandable
Minimal Processor

The CHUMPANESE Language, Reflections

CHUMP
IC Assignments
3.10.1
4
Sep 17
A Simple and Affordable TTL Processor
for the Classroom
-
D. Feinberg
pp. 4-5
CHUMP
Cheap Homebrew Understandable
Minimal Processor

Control Logic
3.10.1
3
Sep 16
pp. 3-4 CHUMP
Cheap Homebrew Understandable
Minimal Processor

Instruction Set

Reorder Details
3.1
and
3.10.1
2
Sep 15
pp. 1-2 CHUMP
Cheap Homebrew Understandable
Minimal Processor
RSGC ACES'
Common SMT Parts
3.1
and
3.10.1
1
Sep 14
Short ISP Proposal
Due Saturday@midnight

Student Outline
Mr. D's Timetable

AVR Optimization


TA Day Assignments


Short ISP Options, Discussion, and (High) Expectations
Starters are a dime-a-dozen...
20/21 ICS4U:
SMT Focus on Thin...



The
MorlandBargraphV4
in action
3.1

0
Sep 10
Short ISP Proposal
Due Saturday@midnight

Student Outline
Mr. D's Timetable

AVR Optimization


TA Day Assignments

2020/2021 ACES' Program
Our ACES' Program: Contradictions
ACES Hall of Fame: E. McAuliffe ('18)
E. Peterson ('18)
Mariano Elia ('15)
Hackster.io,
Argon Prototypes


I have no formal training in electronics or electrical engineering - I'm just really interested in this field. The knowledge and skill I have has been largely acquired over the last few years from learning alongside many talented Georgians and I look forward to expanding my capabilities by working with you this year.
I ask six things of my ACES (for most other things I'm usually flexible):
1. Do not cheat.
2. Show respect for adult visitors that enter the DES by immediately stopping what you are doing, standing and facing the individual(s).
3. Show respect for the lab by not eating in the DES. You may go into the hallway for a quick bite if you need to.
4. Show respect for the lab's resources by not wasting or misusing them.
5. Show respect for others that use the lab by putting your projects away and leaving your bench area tidy when you leave.
6. Show respect for yourself by looking (and speaking) your best. It's the little things keep the doors of opportunity open.
Growing Success, p. 29
Responsibility, Organization, Independent Work, Collaboration, Initiative, Self-Reliant Growing Success. p.11.

It is worth noting, right from the start, that assessment is a human process, conducted by and with human beings, and subject inevitably to the frailties of human judgment.
However crisp and objective we might try to make it, and however neatly quantifiable may be our "results", assessment is closer to art than science.
It is, after all, an exercise in human communication.
Knowledge: Subject-specific content acquired in each course (knowledge), and the comprehension of its meaning and significance (understanding).
Thinking: The use of critical and creative thinking skills and/or processes, as follows:
Communication: The conveying of meaning through various forms, as follows:
Application: The use of knowledge and skills to make connections within and between various contexts.