Friday, July 22, 2011

Membuat Sendiri Wav Player ATMEGA 16

Berawal dari rasa penasaran akan bagaimana cara membuat wav player. Setelah saya browsing dan mendapatkan beberapa referensi, akhirnya saya mencoba membuat Wav Player Berbasis ATMEGA 16.

Berikut adalah gambar skematik rangkaian asli dari sumber yang saya dapatkan :
Dengan Modal Keberanian Akhirnya saya wujudkan Wav Player. Kemudian membuat Reader MMC bermodalkan membeli Card Reader.
Berikut Rangkaian Jadi Yang telah saya Buat :
Hmm setelah rangkaian Jadi ternyata ada kendala, mmc sudah dapat diproses oleh Mikrokontroller tpi suara tidak keluar hanya terdengar kemresek seperti Radio tidak siaran he he..... ^_^ setelah dicek semua sepertinya memang referensi yang ada tidak benar2 100% memberikan contoh yang benar, berdasarkan data sheet yang ada akhirnya coding dimodifikasi dan akhirnya Wav Player bernyanyi dengan kerasnya ^0^

Nah Untuk Lebih Tahu hasilnya Berikut Videonya :




Harap maklum ya video hanya dg kamera Hp jadi suara n gamb ar kurang jelas E_^

Program Menggunakan Bahasa Basic dengan Compailer Bascom AVR berikut programnya:

$regfile = "m16def.dat"
$crystal = 11059200 '



Config Pinc.4 = Input
Pause Alias Pinc.4
'-------------------------------
Config Pinc.5 = Input
Kelid Alias Pinc.5
'--------------------------------
Config Pinc.6 = Input
Kelid2 Alias Pinc.6
'-------------------------------
Config Pinb.4 = Output


Config Pind.5 = Output
Set Portd.5
'---------------------------------
Config Debounce = 20
'-------------------------------------
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 1
Pwm1a = 255
Pwm1b = 255

Const Msbl = 0
Const Msbh = 1
Const Dly = 2
Const Bits8 = 8
Const Bits16 = 16
Const Bits32 = 32

'Dim
Dim Dat As Byte
Dim Resp As Byte
Dim I As Word
Dim Addr As Long
Dim Adres As Long
Dim Tanzim As Byte
Dim Ali As Byte
Dim Test As Long
Dim Copy As Long
Dim Shomare As Long
Dim Hassan As Byte
'Alias
Cs Alias Portb.0
Mosi Alias Portb.1
Clk Alias Portb.3
Miso Alias Pinb.2

'Deklarasi
Declare Sub Minit
Declare Sub Mread(byval Addr As Long )
Config Pinb.1 = Input


Waitms 300
Config Spi = Soft , Din = Pinb.2 , Dout = Portb.1 , Ss = Portb.0 , Clock = Portb.3

Enable Interrupts
Enable Spi

Spiinit


Reset Portd.5
Main:
'Inisialisasi MMC
Minit
Adres = 1048576
Ali = 0
Reset Portd.5

Inja:
Toggle Portb.4
Mread Adres

Debounce Pause , 1 , Stop_play , Sub
Debounce Kelid2 , 1 , Jolo2 , Sub
Debounce Kelid , 1 , Jolo , Sub

Adres = Adres + 512


If Ali = 0 Then
Adres = Adres + 5120000
Test = 512 * 7800

Adres = Adres - Test
Ali = 1

Test = Adres
End If
'-------------------------------------------------------------------
Goto Inja

Xloop:
Set Cs
Shiftout Mosi , Clk , Dat , Msbl
Endloop:
Goto Endloop
End

' Sub rutin'

Sub Minit
Set Cs

Dat = &HFF
For I = 1 To 10
Shiftout Mosi , Clk , Dat , Msbl
Next I

Resp = 255
Reset Cs

Cmd0:
Dat = &H40
Shiftout Mosi , Clk , Dat , Msbl

Addr = &H00000000
Shiftout Mosi , Clk , Addr , Msbl

Dat = &H95
Shiftout Mosi , Clk , Dat , Msbl

While Resp <> &H01
Shiftin Miso , Clk , Resp , Msbl
Wend

Set Cs
Waitms 50
Reset Cs
Dat = &HFF

Cmd1:
While Resp <> &H00

Set Cs
Shiftout Mosi , Clk , Dat , Msbl
Shiftin Miso , Clk , Resp , Msbl
Reset Cs
Dat = &H41
Shiftout Mosi , Clk , Dat , Msbl
Addr = 0
Shiftout Mosi , Clk , Addr , Msbl
Dat = &HFF
Shiftout Mosi , Clk , Dat , Msbl
Shiftout Mosi , Clk , Dat , Msbl
Shiftin Miso , Clk , Resp , Msbl
Wend

Dat = &HFF
Set Cs
End Sub

Sub Mread(byval Addr As Long)
Set Cs
Dat = &HFF
Shiftout Mosi , Clk , Dat , Msbl
Shiftin Miso , Clk , Resp , Msbl
Reset Cs

Dat = &H51
Shiftout Mosi , Clk , Dat , Msbl
Shiftout Mosi , Clk , Addr , Msbl

Dat = &HFF
Shiftout Mosi , Clk , Dat , Msbl
Shiftin Miso , Clk , Resp , Msbl


While Resp <> 0
Shiftin Miso , Clk , Resp , Msbl
Wend

While Resp <> &HFE
Shiftin Miso , Clk , Resp , Msbl
Wend

For I = 1 To 512
Shiftin Miso , Clk , Resp , Msbl

Pwm1a = Resp
Pwm1b = Resp
Waitus 29
Next I

Shiftin Miso , Clk , Resp , Msbl
Shiftin Miso , Clk , Resp , Msbl
Set Cs

End Sub



Jolo:
Adres = Adres + 153600

For Shomare = 1 To 500
If Kelid = 0 Then Return
Waitms 1
Next

Adres = Adres + 972800

Return


Jolo2:
Adres = Adres - 153600

For Shomare = 1 To 500
If Kelid2 = 0 Then Return
Waitms 1
Next


Adres = Adres - 972800

If Adres < Test Then Adres = Test
Return


Stop_play:
Set Portd.5
Pwm1a = 255
Pwm1b = 255
Copy = Adres
Do
Debounce Pause , 1 , Play
Loop
Play:
Reset Portd.5
Adres = Copy
Return

Nb: MMC yang bisa dibaca oleh wav player hanya yang berukuran 1G
Format Wav yang dapat dibaca : PCM 22.050 kHz, 8 Bit, Mono.

Trimakasih atas kunjungannya....

sumber: http://www.avrprojects.info/avr-projects/mmc-card-based-wav-player/

Monday, July 4, 2011

Desain PCB Dengan OrCAD 9

A. PEMBUATAN SKEMATIK

1. Klik Capture CIS pada All Program > Orcad Release 9.1

2. Untuk membuat project baru gunakan file > New > Project > Beri nama Power Regulator > OK

3. Klik Add Library > Add semua yg ada diluar Folder > OK . Place Part

Ambil CON2 3BUAH, CAP 2BUAH, LM7805C/TO, LM7812C/TO220, LED, RESISTOR.

4. Susun Komponen dan hubungkan dengan Toolbar Place ware disebelah kanan

5. Minimaze Skematik dan clik pada Schematik page 1 > Tools > Create Netlist > Pilih Layout > OK setelah Proses selesai jangan tutup program Capture CIS


A. PEMBUATAN LAYOUT

  1. Klik Layout Plus pada All Program > Orcad Release 9.1

  1. Untuk membuat Layout Klik file > New > Open Folder Data pada file Default.TCH

  1. Load Netlist Source di Folder CAPTURE. Save file as > save

  1. Link Footprint to Component

  1. Setelah proses selesai akan keluar gambar berikut :

Atur Tata Letak Komponen sesuai keinginan / Serapi mungkin

  1. Klik menu > Tool > Layer > Select From Spreadsheet

  1. Unused Semua Layer Kecuali BATTOM

  1. Klik Tool > Net (Lebar Jalur)> Select From Spreedsheet

  1. Klik pada Width Min Con Max isi 30 > OK

  1. Klik Tool > Padstak > Select From Spreadsheet

  1. Klik Pad Width isi dengan 80 > OK

  1. Klik Auto > Autoroute > Board

  1. Maka Layout telah jadi secara otomatis


A. PRINT LAYOUT

  1. Klik Option > Post Process Settings

  1. Klik Device > Plot output name BOT > Print Manager > Force Black & White.

  1. Klik Device > Plot output name BOT > Print to Print Manager.

  1. Klik Print