Make Your Own Development Board
ATMega8 series for example
StarNight @ 2014.4.21 JuluOSDev
After sharing Simple Scheduler @ OSDC.tw 2014,
it is a good chance to talk about the hardware implementation of
Simple Osilloscope
1. 符合規格 (Highest Order)Meet the specification.
2. 最小成本
Smallest cost.
3. 最短完成時間
Finish it in shortest time.
by 王迺慤老師
工程師的三個核心價值
Boundary Conditions!!!
Lessons Learned from PMP (Partial)
● Initiating○ Develop project charter
● Planning○ Collect requirements○ Define scope○ Plan Quality○ Estimate costs○ Develop schedule
● Excuting● Monitoring & controlling● Closing
The specification going to be met.
Find the smallest cost.Find the shortest time.
The Specification of osilloscope
● Signal range: 0 ~ 5V
● Sampling frequency: 100 Hz
● Sampling channels: 6 ~ 8 channels
● Connects to computer with UART
● Communication protocal: Modbus
學校作業通常是從定義域去找值域,但工程師要做的是從值域去找定義域。
Students’ homework is a practice which finds the f(x) from x. However, engineers’ work is
a problem which finds the x from f(x).
by 王迺慤老師
The Cost and Time
● I can use:○ The ADC channels of AVR.○ The timer of AVR for periodic sampling.○ The USART function of AVR.
● I can buy an AVR with the money that I can afford.
● I am familiar with AVR, which shorts development time.
● There are open source resource for AVR, ex: toolchain, programmer ...
Read Datasheet
Reference from: ATmega328 datasheet
Build a development board
That will be an oscilloscope.https://github.com/starnight/ATmega328-Board
Tools
● Toolchain:avr-gcc
● Libc:avr-libc
● Downloader/Uploader:avrdude
● Prgrammer:USBtinyISP, USBasp ...
I flashedSimple Oscilloscope
firmware into the development board.
https://github.com/starnight/Simple-Oscilloscope
Function Generator for SignalsSchmitt Trigger Integrator
Could reference: http://www.pcbheaven.com/circuitpages/Triangle_Wave_Generator/
Function Generator
Oscilloscope Console by python + pyserial + matplotlib
All Circuits Analysis Begins with
● On - Off
● For a resistor:v(t) = i(t) × r(t)
● For a capacitor:q(t) = C(t) × v(t)
● For an inductor:v(t) = d ( L(t) × i(t) ) / dt
Lessons Learned from Oscilloscope
Nyquist Frequency / Aliasing
http://en.wikipedia.org/wiki/Aliasing
學校教了我們很多東西,而我們應要知道,如何將這些知識應用在實做,而不只是封存在腦袋中。
We need to integrate the knowledge learned from school and use it when implementation.
Build your own tools ~
That’s maker !!!!!
自己的國家自己救!
自己的工具自己做!
Thank you and Q & A
https://github.com/starnight/ATmega328-Board