ee 478 final project
DESCRIPTION
EE 478 Final Project. 49-key MIDI keyboard. Jonathan Feucht, Whitney James. Introduction. 49-key touch insensitive keyboard Utilizes the ATSAM2195 Low-power Single Chip Synthesizer with Effects Adjustable settings using an LCD 16×2 character Crystalfontz CFA-533 display. Introduction. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/1.jpg)
EE 478 Final Project
49-key MIDI keyboard
Jonathan Feucht, Whitney James
![Page 2: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/2.jpg)
Introduction
49-key touch insensitive keyboard Utilizes the ATSAM2195 Low-power
Single Chip Synthesizer with Effects Adjustable settings using an LCD 16×2
character Crystalfontz CFA-533 display
![Page 3: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/3.jpg)
Introduction
Topics covered in this presentation: Project description Design specification Hardware / Software implementation Design procedure Challenges encountered Design improvement ideas
![Page 4: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/4.jpg)
Design requirements
Low key latency (< 800 µs) USB or battery powered (< 2.5 Watts total) Adjustable volume, reverb, chorus levels Adjustable reverb / chorus types Pitch-bend mode Transposition Selection of 100+ instrument sounds 3.3 V 150 mA supply for keyboard controller / Atmel
synthesizer chip 5 V supply for LCD screen, audio amp, and
speakers.
![Page 5: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/5.jpg)
Design requirements
Communication protocols Parallel communication with
ATSAM2195 chip I²C communication between Keyboard
controller and LCD driver LCD menu master Keyboard controller slave
RS-232 communication with LCD screen
![Page 6: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/6.jpg)
Hardware implementation
Keyboard controllerPIC18LF4525
(I²C Slave)
78
I²C
SynthesizerATSAM2195 Speaker
Audio Amplifier
49 Keys, organized as button matrix with 7 columns, 8 rows
User InterfaceATMEGA328(I²C Master)
LCD / Keypad Module
CFA-533RS232
Row dataColumn selector
8Parallel MIDI
Pitch Bend Optoelectronic Device
2Y0A21
![Page 7: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/7.jpg)
Hardware implementation
Crystalfontz CFA-533 LCD 16×2 character Uses 19200 RS-232 6 navigation buttons
![Page 8: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/8.jpg)
Hardware implementation
User front end - Seeeduino 16 MHz ATMEGA328P Controls LCD display EEPROM used for saving settings after
powerdown I2C Master
![Page 9: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/9.jpg)
Hardware implementation
ATSAM2195 Atmel synthesizer chip QFN-44 package with ground plane
Measures 0.7×0.7×0.2 cm3
![Page 10: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/10.jpg)
Hardware implementation
Operates 3.3 V supply 2.2 Vpp analog output signal Configured in parallel implementation
![Page 11: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/11.jpg)
Hardware implementation
Amplifier stage for driving on-board speakers:
![Page 12: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/12.jpg)
Software implementation
Crystalfontz CFA533 driver Data sent out and received in
“packets” Command Data length Data CRC checksum
For every command sent out, return packet is sent back
![Page 13: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/13.jpg)
Software implementation
Buttons used for navigating tree-style menu Left: Follow to parent menu Right: Follow to child menu Up: Navigate up the menu list Down: Navigate down the menu list Okay: If selectable, execute command or select
setting; otherwise, navigate to child menu Cancel: Go to main menu
![Page 14: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/14.jpg)
Software implementation
Button polling Command is issued to display to return
states of buttons Return packet is 3 bytes, indicating:
Buttons pressed down since last poll Buttons released since last poll Buttons currently being held down
Data ended up being NOISY Filtered data by debouncing keys Adjusted for smooth menu navigation
![Page 15: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/15.jpg)
Software implementation
![Page 16: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/16.jpg)
Software implementation
Tree menu Implemented as tree of menu nodes Used for modifying all keyboard settings Each menu node consists of a complex
data structure Each node has pointers to parent node,
and an array of pointers to children nodes
![Page 17: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/17.jpg)
Menu node data structure:
![Page 18: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/18.jpg)
Software implementation
![Page 19: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/19.jpg)
Software implementation
I2C Arduino / Pic communication Synchronization on boot-up Arduino sends settings to PIC using 2
bytes of data After sending setting, Pic sends
acknowledge code back
![Page 20: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/20.jpg)
Design procedure
![Page 21: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/21.jpg)
Design procedure
![Page 22: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/22.jpg)
Design procedure
![Page 23: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/23.jpg)
Design procedure
![Page 24: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/24.jpg)
Design procedure
![Page 25: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/25.jpg)
Design procedure
![Page 26: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/26.jpg)
Design procedure
![Page 27: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/27.jpg)
Design procedure
![Page 28: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/28.jpg)
Design procedure
![Page 29: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/29.jpg)
Design procedure
![Page 30: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/30.jpg)
Design procedure
![Page 31: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/31.jpg)
Design procedure
![Page 32: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/32.jpg)
Design procedure
![Page 33: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/33.jpg)
Design procedure
![Page 34: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/34.jpg)
Design procedure
![Page 35: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/35.jpg)
Design procedure
![Page 36: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/36.jpg)
Design procedure
![Page 37: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/37.jpg)
Design procedure
![Page 38: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/38.jpg)
Results
![Page 39: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/39.jpg)
Results
Measurements Key polling: Max 250 µs I2C setting transfer: 179 ms Power consumption: 1.2 Watts
Keyboard controller / synth chip: 0.216 Watts Speakers / audio amplifier: 0.200 Watts LCD display: 0.505 Watts Seeeduino board: 0.279 Watts
![Page 40: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/40.jpg)
Challenges encountered
Reflow soldering for QFN-44 package Procedure Testing
3.3 V vs. 5 V Using program memory for menu drivers ATSAM2195 initialization LCD driver communication Frustrations with Arduino environment
No μs delays Arduino environment I²C drivers would not trigger
interrupts on the PIC during reads
![Page 41: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/41.jpg)
Project status
Working as is Planning to add more features;
perhaps include second instrument package, enable drum patch, or something else.
![Page 42: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/42.jpg)
Ideas for improvement
More keys!!! More features Free up pins on the
keyboard controller Touch-sensitive key
action Incorporate
everything on only one microcontroller
![Page 43: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/43.jpg)
Conclusion
We successfully implemented a prototype for a keyboard instrument for midgets
Still has room for more features and creativity
Our project is way cooler than Torin, Daniel, and Russell’s project
![Page 44: EE 478 Final Project](https://reader033.vdocuments.site/reader033/viewer/2022051516/56812d1d550346895d9215f6/html5/thumbnails/44.jpg)
DEMO