Semua Tentang Belajar Teknologi Digital Dalam Kehidupan Sehari - Hari

  • IC Timer 555 yang Multifungsi

    IC timer 555 adalah sirkuit terpadu (chip) yang digunakan dalam berbagai pembangkit timer, pulsa dan aplikasi osilator. Komponen ini digunakan secara luas, berkat kemudahan dalam penggunaan, harga rendah dan stabilitas yang baik

  • Ayo Migrasi TV Digital

    Kami bantu anda untuk memahami lebih jelas mengenai migrasi tv digital, apa sebabnya dan bagaimana efek terhadap kehidupan. Jasa teknisi juga tersedia dan siap membantu instalasi - setting perangkat - pengaturan antena dan distribusi televisi digital ke kamar kos / hotel

  • Bermain DOT Matrix - LOVEHURT

    Project Sederhana dengan Dot Matrix dan Attiny2313. Bisa menjadi hadiah buat teman atau pacarmu yang ulang tahun dengan tulisan dan animasi yang dapat dibuat sendiri.

  • JAM DIGITAL 6 DIGIT TANPA MICRO FULL CMOS

    Jika anda pencinta IC TTL datau CMOS maka project jam digital ini akan menunjukkan bahwa tidak ada salahnya balik kembali ke dasar elektronika digital , sebab semuanya BISA dibuat dengan teknologi jadul

  • Node Red - Kontrol Industri 4.0

    Teknologi kontrol sudah melampaui ekspektasi semua orang dan dengan kemajuan dunia elektronika, kini semakin leluasa berkreasi melalui Node Red

Rabu, 12 Desember 2012

BELAJAR ACCESS SD CARD CARA SIMPLE DENGAN ATTINY2313 - PART2


Disclaimer : collected from various source on Google, writer read and modify for educational purpose only. Free to use !


Silahkan Baca Part1 terlebih dahulu agar tidak kebingungan


SPI via USI



SPI merupakan serial peripheral interface yang dapat mengkomunikasikan antara master dan slave. Kecepatan transfer data bergantung dari pembagian clock yang diberikan . Sedangkan USI adalah SPI mode simple, dimana clock diberikan manual secara software atau input dari luar. Pin SS (slave select ) juga tidak disediakan tapi bisa di akali dengan PIN & software



dari gambar diatas dapat dilihat mode 3 wire USCK, DO (MOSI) , DI (MISO)
USCK diberikan secara software (manual) dengan toogling register USICR pada USICLK dan USITC
ada 3 buah register yg perlu diperhatikan yaitu USIDR = Data register , USICR =Control register dan USISR = Status Register

Berikut script untuk inisialisasi dari USI sebagai SPI

Code:
//definisi port

#define SPI_DDR DDRB

#define MOSI (1<<PB6)

#define MISO (1<<PB5)

#define SCK (1<<PB7)



#define CS_DDR DDRD

#define CS (1<<PD6) // PD6 sebagai slave/chip select

#define CS_ENABLE() (PORTD &= ~CS)

#define CS_DISABLE() (PORTD |= CS)



//inisialisasi port SPI

void SPI_init() {

 CS_DDR |= CS; // SD card circuit select as output

 SPI_DDR |= MOSI + SCK; // MOSI and SCK as outputs

}



//Pembacaan SPI

unsigned char SPI_write(unsigned char ch) {

    USIDR = ch; // data yang akan dikirim

    USISR |= (1<<USIOIF); // aktifkan interrupt Overflow

 

 do {

//Kirim USCK8 x

 USICR |= (1<<USIWM0) | (1<<USICS1) | (1<<USICLK) | (1<<USITC);

 _delay_us(100);

       } while((USISR & (1<<USIOIF)) == 0); // selesai jika overflow

 return USIDR; // baca data reply yg masuk

}






gampang bukan ? selanjutnya kita dapat mengirim perintah ke SD card melalui port USI dan kita siap untuk membaca data dari SD CARD.

Jika bahan-bahan sudah siap dan tersusun di breadboard (jangan lupa set fusebit memakai clock 8MHZ , clk_div jangan dipake, bisa meakai xtal atau internal RC) kita akan membaca file text yang telah dicopy ke dalam SD card

Pertama kita bahas cara read (CMD 51) dari isi file SDCARD , langkahnya seperti berikut:

1. Pull CS low (select)
2. Send 0×51
3. Send 0x00000000 (Sector x 512)
4. Send 0×FF
5. Baca data yg dikirim 520 kali (sambil kirim 0xFF ke kartu)
6. Pull CD low (deselect)

kenapa 520 kali ? karena format reply per sector seperti ini :



yang garis merah diatas merupakan header awal (6 byte) yang menyatakan data ready, jadi di script nantinya kita akan mendeteksi 00 dan FE , sedangkan 2 terakhir merupakan CRC yang bisa di abaikan.

jadi kita susun script seperti berikut :

Code:
void SD_command(unsigned char cmd, unsigned long arg, unsigned char crc, unsigned char read) {

 unsigned char i;

 //berfungsi mengirim perintah ke SD card

 CS_ENABLE();

 SPI_write(cmd);

 SPI_write(arg>>24); //geser byte

 SPI_write(arg>>16);//karena format

 SPI_write(arg>>8);//0x00000000

 SPI_write(arg);//alias 4 bit argumen

 SPI_write(crc);

  

 for(i=0; i<read; i++) SPI_write(0xFF); //kirim & baca

 CS_DISABLE();  

}



char SD_init() {

    char i;

//berfungsi inisialisasi SD card        

    CS_DISABLE();

    for(i=0; i<10; i++) SPI_write(0xFF);   

     _delay_ms(500);

// langkah 1  0x40

    SD_command(0x40, 0x00000000, 0x95, 8);

        _delay_ms(500);

// langkah 2  0x41                        

    SD_command(0x41, 0x00000000, 0xFF, 8);

        _delay_ms(500);

// langkah 3  0x50           

    SD_command(0x50, 0x00000200, 0xFF, 8);  

    _delay_ms(500);

        

    return 0;

}



void SD_begin(unsigned long  sector) {

    uint8_t i = 0;

//berfungsi untuk membaca data SD card    

    CS_ENABLE();

 SPI_write(0x51); //perintah baca 0x51

     //selanjutnya geser2 byte sector

        SPI_write(sector>>15); // sector*512 >> 24

 SPI_write(sector>>7);  // sector*512 >> 16

 SPI_write(sector<<1);  // sector*512 >> 8

 SPI_write(0);          // sector*512

        SPI_write(0xFF);

    

    for(i=0; i<10 && SPI_write(0xFF) != 0x00; i++) {} // wait for 0

    for(i=0; i<10 && SPI_write(0xFF) != 0xFE; i++) {} // wait for data start

    

    // baca SD& kirim melalui serial

    for(i=0; i<512; i++)   USART_Tx(SPI_write(0xFF));

    //2 kali checksum

    SPI_write(0xFF);

    SPI_write(0xFF);    



    CS_DISABLE();   

}








Yah..begitulah...ga terlalu susah ....hanya masalah creativitas, ntar munculnya di layar (jika dihubungkan dengan serial via putty/hyperterminal) seperti ini :



atau jika data langsung dibaca, bisa langsung membaca text. Sesuai percobaan bahwa sector paling depan tempat file disimpan adalah sector 96,

kenapa ? karena SD CARD yang aku pake jadul , memakai system FAT12




sedangkan jika memakai Format pc terbaru maka otomatis menjadi system FAT16 dan File pertama berada di sector 555. Jadi sesuaikan dengan jenis format yang dipakai



semua source code dapat didownload dimari , untuk dapat membaca wav file dan memainkan suara kita lanjut ke post berikut disini


SELAMAT MENCOBA
Share:

BELAJAR ACCESS SD CARD CARA SIMPLE DENGAN ATTINY2313 - PART1


Disclaimer : collected from various source on Google, writer read and modify for educational purpose only. Free to use !


SD card merupakan media penyimpanan data yang sering dijumpai, memiliki flash memory yang di format sesuai dengan standar FAT dari microsoft. Jadi cara accesnya hampir mirip dengan acces floppy disk ataupun hardisk dengan standar yg cocok kita pakai untuk interfacing dengan AVR adalah FAT16.


PINOUT




cara access hardware menggunakan cara SPI 3 wire, dimana microcontroller 8bit sekelas AVR memiliki fasilitas ini. Ingat Level tegangan yang digunakan adalah 3,3 volt, jadi memerlukan regulator seperti AIC 1722-33 untuk merubah ke vcc 3,3 v. Untungnya ATTINY masih bisa disupply dengan tegangan 3,3v sehingga tidak butuh logic converter 5 vs 3,3

FILE SYSTEM

Gunakan software winhex untuk membuka SD card yang diformat FAT, sehingga muncul tampilan image dari sebuah SD card



waduh pusing ya liatnya ....TS saja berpikiran seperti itu, tapi google memberikan banyak resource untuk belajar seperti disini dan penjelasan melalui artikel BUS PIRATE

Kali ini tidak akan membahas pembacaan nama file, awal dan akhir file dan sebagainya, mengingat memory ATTiny2313 yang lumayan mini, jadi kita akan membaca secara mentah data yang ada di SD CARD


oke kita berpatokan pada penjelasan di BUS PIRATE, dan singkat saja jika kita ingin melakukan akses ke sebuah SD card melalui SPI mengikuti aturan seperti berikut :

inisialisasi SPI:

1. Pull CS high (deselect)
2. Read 10 bytes (basically sends CLK pulse 80 times to give SD card time to initialize)
3. Pull CS low (select)
4. Send 0×40 (“go to SPI mode” command, CMD0)
5. Send four zero bytes (SD protocol has 4-byte arguments)
6. Send 0×95, the CRC checksum of the command and argument just sent
7. Read eight bytes and print them out (while sending 0xFF to the card)
8. Pull CD low (deselect)

inisialisasi kartu :

1. Pull CS low (select)
2. Send 0×41
3. Send 0x00 4kali
4. Send 0×FF
5.Baca data yg dikirim 8 kali (sambil kirim 0xFF ke kartu)
6. Pull CD low (deselect)

Inisialisasi besar transfer data / sector:

1. Pull CS low (select)
2. Send 0×50
3. Send 0x00000200 (desimal 512 , dikirim per byte)
4. Send 0×FF
5. Baca data yg dikirim 8 kali (sambil kirim 0xFF ke kartu)
6. Pull CD low (deselect)

Selanjutnya adalah proses pembacaan data (dibahas berikutnya)

jika benar, maka response dari SDcard seharusnya seperty ini :



wahh kok bisa keluar sepeti itu ? sebaiknya kumpulkan bahan-bahan seperti berikut ini dulu :





Ada yang aneh dari ATTiny2313 , dimana ic ini tidak mempunyai fungsi SPI yang murni, sehingga memanfaatkan fungsi USI (unifersal serial Interface) sesuai Datasheet maka pin MOSI itu DI = Data Input ( MISO di SPI asli) dan MISO itu DO = Data Output (MOSI di SPI asli). Jadi perhatikan koneksi MISO - MOSI yang silang (kalau terbalik gpp, hanya data nya ga kebaca...tinggal dibalik saja GAN !!)

untuk konektor ke SD card, dapat menggunakan SDcard - micro SD adapter yang kemudian disolder




atau jika sayang adapternya rusak, pake cara TS aja dengan menggunakan Header 2 baris, kemudian salah satu baris kaki ditekuk kedalam, kemudian Adapter SD card di selipkan dan pastikan pin header yang ditekuk menyentuh pad SDcard dengan baik




Lanjut Ke Post Berikut disini
Share:

Kamis, 06 Desember 2012

DOWNLOADER IC EEPROM 24CXX


IC EEPROM serial 24CXX merupakan IC eeprom bebasis I2C yang umum digunakan dipasaran, terutamanya pada peralatan seperti memory TV atau gambar background VCD/DVD player buatan china. Jenis EEPROM yang serupa juga digunakan pada ECU pada mobil generasi EFI , dimana setting untuk utak-atik RPM maksimum disimpan pada EEPROM jenis ini. Bahan-bahan cukup mudah didapat dengan harga tidak lebih dari 50 rb.



BAHAN- BAHAN :



1. 3x Zenner 5,1V
2. 3x Diode 1N4148
3. 2x Resistor 4k7, 1x 100 ohm
4. 1x cap 100nF , 1x Elco 22uF
5. Socket ic 8 DIL atau bisa juga header Through Hole
6. Konektor DB-9 + Casing
7. PCB kecil, LED dan kabel kecil (wrap cable)


skematiknya aku edit dari berbagai sumber , dan rata-rata berasal dari programmer berbasis JDM / Serial PonyProg




kemudian susun komponen diatas pcb kecil, dengan menempatkan socket diluar . Kalo tanpa PCB soket harus di lem pada casing db-9 yang sebelumnya dibor. Untuk header through hole bisa menggunakan PCB karena kakinya cukup panjang. Komponen disolder sedemikian rupa sehingga pas pada socket dan tidak short antar kaki yg tidak diinginkan. Jika kesulitan, boleh saja dirangkai diatas PCB yg lebih besar


Ground (skematik paling bawah) sebaiknya disolderkan ke body DB9


Jika sudah, maka bisa menggunakan software downloader yang bisa didownload di website ponyprog (www.lancos.com) atau juga bisa menggunakan IC-Prog (http://www.ic-prog.com/index1.htm)

Berdasarkan pengalaman, ponyprog memerlukan port Serial MURNI ...artinya langsung nancep di motherboard seperti yang ada pada PC-Desktop. Untuk pemakaian laptop yg ga ada serialnya maka digunakan usb to Rs232 converter dan disarankan menggunakan software IC-PROG yang lebih pelan pogrammingnya. Sepertinya ponyprog mensetting clock lebih cepat sehingga tidak mampu dikendalikan oleh usb to serial converter.

Langkah pertama setelah download adalah melakukan setting comport sehingga nilainya tidak lewat dari com4 , caranya jika comportmu gede seperti gambar berikut :


ubah saja pada comport4 yang biasanya kosong.


Setelah download software IC-Prog selesai, maka lakukan setting hardware seperti pada gambar berikut :




selanjutnya mudah....tinggal mengikuti langkah-langkah pada GUI, yaitu pilih IC, LOAD FILE EEPROM, WRITE, dan tinggal tunggu sampai verified selesai




paling seneng kalo muncul beginian :







SELAMAT MENCOBA
Share:

Selasa, 27 November 2012

Pengganti Max232 menggunakan transistor

Jika membutuhkan konverter UART micro (TTL) ke RS232 dapat menggunakan rangkaian sederhana seperti ini ....




Rangkaian diatas memiliki prinsip merubah sinyal High (5v) menjadi sinyal negatif (-3 ~ -15v) dan sebaliknya . Seperti yang kita ketahui format tegangan RS232 memanfaatkan level tegangan + dan - sesuai dengan gambar berikut :

File:Rs232 oscilloscope trace.svg 


Karena yang kita butuhkan hanya jarak yang pendek, maka dengan memanfaatkan kapasitor 10uF dan dioda 1N4148 dapat diperoleh tegangan negatif. Jika membutuhkan jarak komunikasi serial yang panjang disarankan menggunakan ic yang sudah paten seperti MAX232.

Karena rangkaiannya simple, maka converter ini dapat dimasukkan langsung ke dalam kotak DB9.


Selanjutnya anda bisa mengikuti praktek komunikasi antara micro vs PC seperti  yang dibahas di kaskus dan disini







SELAMAT MENCOBA
Share:

Senin, 26 November 2012

JOULE THIEF : Menghidupkan LED dengan 1 Baterai 1,5V



Ga mungkin ahh ? kan LED biasanya hidup dengan 2 baterai 1,5v  ..


Jangan bingung...rangkai saja seperti gambar skematik berikut



Bahan- bahan mudah didapat, kumparan di peroleh dari bekas lampu hemat energi atau bekas power supply komputer. Kumparan sebelah kanan jumlah lilitannya banyak, sedangkan kumparan sebelah kiri lilitannya kecil. Jadi cara simple nya adalah melilitkan kawat enamel atau kabel tipis diantara lilitan bekas kanibal. Ingat lilitan sebaiknya memiliki inti ferit/ toroida didalamnya. Komponen lainnya cukup mudah didapat, transistor yang digunakan merupakan transistor NPN yang umum dan (BC 327 , 2N2222 dsb)


SELAMAT MENCOBA
Share:

Kontak Penulis



12179018.png (60×60)
+628155737755

Mail : ahocool@gmail.com

Site View

Categories

555 (8) 7 segmen (3) adc (4) amplifier (2) analog (19) android (12) antares (8) arduino (25) artikel (11) attiny (3) attiny2313 (19) audio (5) baterai (5) blog (1) bluetooth (1) chatgpt (2) cmos (2) crypto (2) dasar (46) digital (11) dimmer (5) display (3) esp8266 (25) euro2020 (13) gcc (1) iklan (1) infrared (2) Input Output (3) iot (58) jam (7) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (17) komputer (3) komunikasi (1) kontrol (8) lain-lain (8) lcd (2) led (14) led matrix (6) line tracer (1) lm35 (1) lora (5) MATV (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroler (1) mikrokontroller (14) mikrotik (5) modbus (9) mqtt (3) ninmedia (5) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (88) pcb (2) power (1) praktek (2) project (33) proyek (1) python (7) radio (17) raspberry pi (4) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (2) sharing (3) signage (1) sinyal (1) sms (6) software (18) solar (1) solusi (1) tachometer (2) technology (1) teknologi (2) telegram (2) telepon (9) televisi (167) television (28) transistor (2) troubleshoot (3) tulisan (93) tutorial (108) tv digital (6) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika