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

  • Data Science

    Mengulik Digitalisasi data statistik dengan bantuan python untuk pemanfaatan di bidang transportasi, kesehatan, keuangan dan masih banyak lagi

  • Artificial Intelligence - Pengenalan Object

    Menghadirkan pemanfaatan AI dengan praktek-praktek yang mudah diikuti - cocok untuk mahasiswa yang mencari ide tugas akhir

  • 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, 18 Agustus 2021

ATtiny2313 vs DHT11 - Jangan pernah pakai library arduino, kembali ke dasar koding GCC !

 


Pembahasan kali ini sudah pernah saya tulis sebelumnya 8 tahun yg lalu, dimana DHT11 merupakan sensor sejuta umat yg sangat umum dipakai untuk belajar IOT. Sensor ini memiliki sistem komunikasi serial 1 bus wire, dimana semua datanya dikirim melalui 1 buah jalur data dengan pembeda 1 dan 0 nya berdasarkan lebar pulsa atau timer dari level logicnya. Jadi untuk pemahaman dasar pembacaan sensornya dapat dibaca di sini : https://www.aisi555.com/2013/05/dht-11-sensor-suhu-dan-kelembaban-murah.html

Jadi jika ingin mengirimkan pembacaan DHT11 menuju serial com di PC, maka scriptnya lumayan memusingkan untuk dilihat, terutama dibagian pembacaan pulsanya.


Namun jangan lupa baca dulu  pembahasan pengaturan fusebit nya disini : https://www.aisi555.com/2021/08/attiny2313-vs-arduino-library-bagaimana.html


#define F_CPU 8000000UL //frek clock internal
#include <avr/io.h>
#include <util/delay.h>
#include <avr/pgmspace.h> 
#include <string.h>
#include <stdlib.h>


//rumus penentuan baudrate

#define USART_BAUDRATE 9600  // baudrate 9600 bps
#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)

//deklarasi menu & tulisan .
//gunakan memori flash(PROGMEM) biar cukup


const char suhunya[] PROGMEM = " suhu : ";
const char huminya[] PROGMEM = "C - kelembaban : ";



void init_usart(void)

{

	UCSRB |= (1 << TXEN);   // kirim aja
	UCSRC |= (1 << UCSZ0) | (1 << UCSZ1);
	UBRRL = BAUD_PRESCALE;
	UBRRH = (BAUD_PRESCALE >> 8);
}


//function untuk mengirim char

void USART_Tx(unsigned char data)

{	

	while (!(UCSRA & (1<<UDRE)));{} 
	UDR = data; // Send data to the computer


}



//function untuk kirim kalimat dari flash Progmem


void kirim_text(const char *data)

{

	while (pgm_read_byte(data) != 0x00)
	USART_Tx(pgm_read_byte(data++));

}

void kirim(char *data) //kirim teks dari ram

{

	while (*data != 0x00)
	USART_Tx(*data++);

}


uint8_t hitung(void)
{

	uint8_t a,counter,hasil;

	counter=0;
	hasil=0;

	for (a=8;a>0;a--) // 8 kali tiap perhitungan
	{


		while(counter <100) // deteksi saat LOW ( tidak ada perhitungan)
		{
			_delay_us(1);
			counter++;
			if (bit_is_set(PIND, 3)) break; //tunggu sampai high dan keluar loop
		}

		counter=0;

		while(counter <100)
		{
			_delay_us(1);
			counter++; // counter mendeteksi lebar pulsa
			if (bit_is_clear(PIND, 3)) break; //jika low maka keluar dari loop
		}

		// perhitungan 8 bit decimal dengan geser-geser bit
		//jika lebih 25us =1 , kurang < 25 us = 0
		
		if(counter > 25) hasil += (1 << (a-1)) ;

		counter=0;

	}

	return hasil;


}

void baca_sensor()
{

	char dum;  // variabel sementara

	int suhu;
	int suhuu;
	int humi;
	int counter=0;

	DDRD|=(1<<PD3); //PD3 sebagai output
	_delay_ms(250);

	PORTD &=~(1<<PD3); // nolkan PD3
	_delay_ms(18); //tunggu 18 ms

	PORTD |=(1<<PD3); // naikkan PD3
	_delay_us(40); //tunggu 40us


	DDRD &=~(1<<PD3); //PD3 sebagai input

	//tunggu response dari DHT11

	while(counter <100)
	{
		_delay_us(1);
		counter++;
		if (bit_is_set(PIND, 3)) break;
	}

	counter=0;

	while(counter <100)
	{
		_delay_us(1);
		counter++;
		if (bit_is_clear(PIND, 3)) break;
	}


	//baca data setelah response, lihat script di pembahasan selanjutnya untuk routine hitung()

	//8 bit pertama ( puluhan kelembaban )
	humi=hitung();
	//8 bit kedua( satuan kelembaban ), tidak usah di baca karena nilai selalu 0 untuk DHT11
	hitung();
	//8 bit ketiga ( puluhan suhu )
	suhu=hitung();
	//8 bit keempat ( satuan suhu ), tidak usah di baca karena nilai selalu 0 untuk DHT11
	suhuu=hitung();
	
	kirim_text(suhunya);
	itoa(suhu,&dum,10);
	kirim(&dum);
	USART_Tx('.');
	itoa(suhuu,&dum,10);
	kirim(&dum);
	USART_Tx(0xF8);
	kirim_text(huminya);
	itoa(humi,&dum,10);
	kirim(&dum);
	USART_Tx('%');
	USART_Tx('\n');
	USART_Tx('\r');
	
	
	
	
}




int main(void)

{
	
	
  init_usart();

  while(1) //muter tiada henti
	{

	baca_sensor();
	_delay_ms(5000);

	}

}









Wah ..segitu panjangnya, padahal jika dilihat kembali cara pembacaan DHT11 pada arduino, cukup mengikuti library buatan adafruit yg banyak contohnya beredar di internet dan cukup hanya beberapa baris coding saja. 

Namun ini dapat menjadi masalah besar saat ATtiny2313 yang digunakan, lalu bagaimana memampatkan nya di attiny menggunakan sketch arduino ? Bayangkan pembahasan sebelunya dimana attiny full hanya dengan script yg mengerjakan komunikasi serial, jadi jika menggunakan library DHT dari adafruit yg biasa dipakai pada arduino, dijamin flash memori akan melebihi 100% . Ada lagi yg penting yaitu butuh penanganan clock yang jauh berbeda. Dan hasilnay script saya diatas tidak berjalan  seperti yg diinginkan. Jadi pengaturan clock untuk mencari pewaktu 1 microseconds sangatlah critical.



Berikut ini script Attiny vs DHT11  pada  sketch arduino  :


#define USART_BAUDRATE 9600  // baudrate 9600 bps
#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)

const char suhunya[] PROGMEM = " suhu : ";
const char huminya[] PROGMEM = " C - kelembaban : ";



int DHT11_Pin = 5; // DHT11 ke pin PD3

int Humidity = 0;
int Temp = 0;
int TempComma = 0;
bool DHTError = false; // Checksum Error

// a Delay routine. Call DelayTimer(time in uSec)

void DelayTimer(long int DelayValue){
long int DelayTime = micros();
do {

}while (micros()-DelayTime < DelayValue);
}
// Main DHT Void

void DHT11(){

long int DataTime = 0;

byte Result[45];
byte DataArray = 0;
byte DataCounter = 0;
byte DHTData[4];

bool BlockDHT=false;

// Trigger Sensor (described in the Datasheet)

pinMode(DHT11_Pin,OUTPUT);
digitalWrite(DHT11_Pin,HIGH);
DelayTimer(250000); //Wait 250millisec
digitalWrite(DHT11_Pin,LOW);
DelayTimer(30000); //Wait 30millisec
digitalWrite(DHT11_Pin,HIGH);
DelayTimer(50); //Wait 50microsec
pinMode(DHT11_Pin,INPUT);
// read the Bits and put them into a Result array (It will count 42 bits. The first two one are useless due my code)

do {
if (digitalRead(DHT11_Pin) == 0 && BlockDHT == false) {BlockDHT = true;Result[DataArray]=(micros()-DataTime);DataArray++;DataTime=micros();} //If DHT pin is low, go to next Dataset
if (digitalRead(DHT11_Pin) == 1) {BlockDHT = false;} // As long as DHT pin is Hight add time in Microseconds to Result

}while((micros()-DataTime) < 150); // if DTH Sensor high for more than 150 usec, leave loop

// Asign 1 or 0 to Result variable. If more than 80uS Data as “1”
// Starting at Data set 02. First two Datasets are ignored!

for (int i=2; i< DataArray; i++) {
if (Result[i] <= 90) Result[i]=0; else Result[i]=1;

}


for (int j=0; j< 5; j++){ // redo it for the 5 Bytes (40 Databits /8 = 5)
for (int i=0; i< 8; i++) {bitWrite(DHTData[j], 7-i, Result[i+2+(j*8)]);} // Create 5 Databytes from the 40 Databits (Ignoring the 2 first Databits)

}
// check checksum }

if (DHTData[4] == (DHTData[0]+DHTData[1]+DHTData[2]+DHTData[3])){Humidity = DHTData[0];Temp = DHTData[2];TempComma = DHTData[3];DHTError=false;} else DHTError=true; //If Checksum is worng, Temp=99 (Dataset 0-3 in addition = Dataset 4 = Checksum OK)

}



  void init_usart(void)

{

  UCSRB |= (1 << TXEN);   // kirim aja
  UCSRC |= (1 << UCSZ0) | (1 << UCSZ1);
  UBRRL = BAUD_PRESCALE;
  UBRRH = (BAUD_PRESCALE >> 8);

}

 void USART_Tx(unsigned char data)

{

 

  while (!(UCSRA & (1<<UDRE)));{} // wait till transmit Data register is empty

  UDR = data; // Send data to the computer



}



//function untuk kirim kalimat



void kirim_text(const char *data)

{

  while (pgm_read_byte(data) != 0x00)

  USART_Tx(pgm_read_byte(data++));

}

void kirim(char *data)

{

  while (*data != 0x00)
  USART_Tx(*data++);

}



void setup() {
  // put your setup code here, to run once:
init_usart();

}

void loop() {
char dum;  
DHT11();
if (DHTError == false)
{ kirim_text(suhunya);
  itoa(Temp,&dum,10);
  kirim(&dum);
  USART_Tx(',');
  itoa(TempComma,&dum,10);
  kirim(&dum);
  kirim_text(huminya);
  itoa(Humidity,&dum,10);
  kirim(&dum);
  USART_Tx('%');
  USART_Tx('\n');
  USART_Tx('\r');
  } 
  else kirim("Error");


DelayTimer(1000000); //wait 1 sec
}



Wew...jadi kembali ke dasar koding GCC yuk...wong sama aja ribetnya...
Share:

Attiny2313 vs Arduino Library, bagaimana solusinya agar tidak habis memorynya ?

 



Seperti yang saya sudah kira sebelumnya kalau platform bernama arduino ini,  memang dirancang untuk IC AVR dengan memory baik flash maupun RAM yang ukurannya berlimpah. Sekelas board arduino UNO menggunakan ATmega328 dengan kapasitas flas 32Mb dan memory SRAM sebanyak 2Kb. Jadi para pembuat library lumayan leluasa untuk berkreasi. Bagaimana dengan Attiny2313 yg hanya flash 2Kb dan memory ram 128 bytes? Ya lihat saja gambar diatas, untuk melakukan pengiriman serial pun sudah menghabiskan memory ram 70% dan ini dijamin akan membuat proses tidak berjalan.

Solusi yang diperlukan untuk mengatasi masalah ini adalah kembali ke model bit banging pada register yg khusus berhubungan dengan komunikasi serial, yang pada attiny2313 berada pada bagian  :

  1. UCSR A/B/C
  2. UBRR L/H
Selengkapnya bisa dilihat pada datasheet dan saya sarankan bisa baca pada project pengenalan USART atau komunikasi serial disini : https://www.aisi555.com/2013/06/tutorial-komunikasi-serial-pada.html .

Jika anda menggunakan  USART atau komunikasi serial pada ATtiny 2313 maka butuh clock yang akan mudah dibagi dengan baudrate umum semisal 9600. Jadi karena dengan adanya DIV8 pada Fusebit ATtiny, maka butuh mengubah setting clock div8 agar attiny menggunakan clok internal 8Mhz. Caranya seperti pada gambar berikut ini :




Mungkin hal ini lebih mudah dilakukan jika kamu menggunakan programmer / dowloader AVR ISP MK2 yg bisa langsung merubah fusebit di atmel studio, seperti yg pernah dibahas disini : https://www.aisi555.com/2013/02/pejelasan-mengenai-fusebit-dari-avr.html . Jadi karena kita menggunakan USBasp maka diingat nilai yg didapat pada kalkulator fusebit tadi yaitu : 

  • LOW = 0xE4
  • HIGH = 0xDF
  • Extended = 0xFF
Lalu bisa dilanjutkan pada Avrdude versi Gui yang lebih gampang dan menghindari kesalahan saat melakukan setting fusebit.





Selanjutnya dengan memasukkan script pada pelajaran komunikasi serial sebelumnya, maka kirim-kiriman serial attiny menggunakan sketch arduino dapat berlangsung dengan lancar.


#define USART_BAUDRATE 9600  // baudrate 9600 bps
#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)
void init_usart(void)

{

  UCSRB |= (1 << TXEN);   // kirim aja
  UCSRC |= (1 << UCSZ0) | (1 << UCSZ1);
  UBRRL = BAUD_PRESCALE;
  UBRRH = (BAUD_PRESCALE >> 8);

}

void USART_Tx(unsigned char data)

{
  
  while (!(UCSRA & (1<<UDRE)));{} // wait till transmit Data register is empty
  UDR = data; // Send data to the computer


}


void setup() {
  init_usart();


}

void loop() {
  USART_Tx('h');USART_Tx('a');USART_Tx('l');USART_Tx('0');USART_Tx('\n');
  delay(1000);

}





Lalu apa bedanya dengan programming atau koding pada atmel studio ? Ya begitulah tak ada kemewahan library pada chip microcontroller versi mungil seperti attiny, jadi butuh kembali ke dasar pemahaman mengenai register dan proses geser-geser bit, yang akan kita dalami kembali di bagian berikutnya saat attiny akan dicoba mengirim data serial berupa pembacaan sensor DHT11.

Share:

Selasa, 17 Agustus 2021

USB ASP vs Arduino Sketch - Mampu nggak ya ? Kita gunakan packages ATTinyCore

Saat arduino muncul dengan library opensource nya yg beragam dan kemudahan kodingnya, inilah menjadi awal keengganan orang elektro menggunakan IC microcontroller dasar. Padahal fungsi yang sama dengan arduino dapat diraih dengan penggunaan resource ( memori flash dan RAM ) yang lebih irit. Namun ketika IC cloning Atmel 328 muncul dari produsen negara api, semua kemudahan itu menjadi pilihan para mahasiswa yg belajar mikrokontroller.



Lalu bagaimana dengan nasib pencinta IC AVR dasar yang menginginkan kemudahan koding pada sketch arduino? Ternyata diluar sana ada github yg khusus menyediakan platform penerjemah sketch ke avr sekelas attiny yaitu : https://github.com/SpenceKonde/ATTinyCore . Gambar diatas merupakan penerjemahan port I/O yg biasa dikenal di arduino menjadi port pada attiny 2313. Lalu langkah instalasi packagenya bagaimana ?


1. Ubah board manager tambahan dengan pilihan preferences seperti pada gambar 



Pada Additional board tambahkan : http://drazzy.com/package_drazzy.com_index.json 


2.  Pilih Boards manager  




3. Install boards bernama ATTinyCore



4. Pastikan sketch Arduino kamu sudah paling terbaru, sehingga menu boards attiny core muncul seperti gambar 



Ic avr yg kita gunakan adalah ATTiny 2313 A , jadi pilih pada menu yang benar.



5. Hubungkan USB ASP dan pilih jenis programmer yang digunakan 




6. Kita coba scriptnya, dengan Led pada #B0 atau I/O # 9 dan Tombol pull up pada port #B1 atau  I/0 # 10 .



int ledPin = 9; // pin untuk LED
int inPin = 10;   // input pin (tombol)
int val = 0;     // var pin status



void setup() {
  pinMode(ledPin, OUTPUT);  // LED sebagai output
  pinMode(inPin, INPUT);    // tombolsebagai input
  digitalWrite(ledPin, LOW);
}

void loop()
{

val = digitalRead(inPin);  // read input value

  if (val == HIGH) {         // cek tombol
    digitalWrite(ledPin, LOW);  // LED OFF
  } 
  else {
    digitalWrite(ledPin, HIGH);  //  LED ON
  }
}

7. Compile pada arduino scketch dan bisa di unduh menuju attiny melalui usbasp, baik menggunakan sketch langsung atau menggunakan avrdude.



Walau muncul warning seperti diatas, jangan khawatir karena ini merupakan missmatch firmware  saat perintah merubah clock USBasp. Warning ini muncul juga kok di penjelasan sebelumnya  : https://www.aisi555.com/2021/08/usb-asp-avrdude-cara-flash-ic.html


Untuk script lainnya kita bisa gunakan mode tombol toogle terhadap LED.



int ledPin = 9; // pin untuk LED
int inPin = 10;   // input pin (tombol)
int val = 0;     // var pin status
bool nyala = false; // status toogle


void setup() {
  pinMode(ledPin, OUTPUT);  // LED sebagai output
  pinMode(inPin, INPUT);    // tombolsebagai input
  digitalWrite(ledPin, LOW);
}

void loop()
{

val = digitalRead(inPin);  // read input value

 if (val == LOW && nyala == false) {     //toogle
    digitalWrite(ledPin, HIGH);  // LED ON
    nyala=true;
    delay(50);
  } 
  else if (val == LOW && nyala == true){
    digitalWrite(ledPin, LOW);  //  LED OFF
    nyala=false;
    delay(50);
  }
}

Perlu diingat bahwa sketch arduino sangat bergantung pada library yang sangat memakan memory, sedangkan attiny merupakan ic yg minimalis. Jadi penggunaan library sangat dihindari agar mengatasi error akibat memori habis, terutama RAM.

Pada penjelasan selanjutnya akan kita coba membaca DHT11 tanpa library pada attiny 2313.


Share:

USB ASP & AVRDUDE - Cara flash IC Microcontroller AVR

Masih ingat project mikrokontroller pertama kita ? Yah..yang itu bikin led dan tombol ? Jadi saya ingin melewati batas waktu kembali ke 10 tahun yang lalu saat blog ini mulai disusun,  dimana kamu bisa baca kembali disini project dasar mikrokontroller: http://www.aisi555.com/2011/08/basic-output-input-dengan-attiny-2313.html . 




Dengan menggunakan attiny 2313 , led dan tombol saya telah buat panduan agar bisa mempelajari dasar pemrograman dan bahasa GCC dari atmel studio, namun kali ini saya menggunakan alat downloader USB ASP yang lebih murah namun memiliki keterbatasan dalam koneksinya dengan tools IDE milik atmel.

Jangan lupa untuk merakit rangkaian pada projectboard, dan hubungkan PIN USB ISP dengan hubungan kabel seperti berikut :


*) LED pada ISP dapat diabaikan


Kali ini LED dihubungkan pada port #B0  (pin 12) dan kita akan blink LED sederhana saja.


#define F_CPU 1000000UL // frekuensi clock internal 8mhz div 8 
#include <avr/io.h> // definisi standar io port
#include <util/delay.h> // definisi include untuk delay


int main(void)

{



	DDRB=0b1 ; // Inisialisasi bahwa port B0 adalah output



	while(1)

	{

		PORTB=0b1; //port B0 = 1 atau nyala

		_delay_ms(100); //delay

		PORTB=0b0; //port B0 = 0 atau mati

		_delay_ms(100); //delay

	}
	
}

Lalu dimana tempat hexnya di keluarkan saat di build melalui atmel studio ? Ada kok, kira-kira pola direktori nya seperti berikut :


C:\Users\NAMA PC\Documents\Atmel Studio\7.0\nama_project\nama_project\Debug




Lanjut kita akan menggunakan AVRDUDEyang sudah terkenal itu, saya pilihkan saja yg mudah yaitu AVRDUDESS 2.13 Download disini,  pilihan lainnya bisa juga disesuaikan selera anda.





  1. Langkah pertama pastikan koneksi ISP ke port RST-MISO-MOSI-SCK sudah benar ke IC, dengan melakukan signature check IC yang digunakan.
  2. Kalau mau lihat fusebit juga boleh, ini berhubungan dengan pengaturan clock. Lakukan jika anda sudah paham dengan fusebit yaitu membaca ini : https://www.aisi555.com/2013/02/pejelasan-mengenai-fusebit-dari-avr.html . Hati-hati jangan utak-atik karena bisa membunuh ic avr kamu.
  3. Pilih file hex pada directory yg sesuai dan pencet GO. 





Perhatikan output dibawah sebagai monitoring progress download file HEX. Jangan khawatir ada pesan error muncul mengenai perubahan clock speed, tapi ini tidak critical hanya firmware usbasp yg saya gunakan kelihatannya sedikit jadul.


Mudah bukan ? Selanjutnya kita akan bahas USBASP versus arduino sketch, apakah bisa buat download langsung ke IC AVR ?


Share:

USB ASP - ISP Programmer untuk AVR - Bagaimana cara install drivernya ?

Bagaimana kalau kita kembali flashback, ke jaman mikrokontroller AVR singel chip ? Jaman dimana dunia micro tanpa bootloader, yang selalu berhubungan dengan programmer bernama ISP. Ya IC microcontroller AVR sekelas attiny atau ATmega yang saya dalami sejak 2008 silam tidak jauh-jauh dari sebuah hardware bernama ISP atau In Sistem Programming - nama keren nya downloader. 



klik gambar biar lebih jelas

Salah satu alat downloader yg banyak dibicarakan pada saat awal dulu (walau bagi saya sempat menjengkelkan juga) adalah USB ASP. 10 tahun kemudian alat ini masih diperlukan bagi mereka yg belajar mikrokontroller secara dasar, atau yg ingin mendesain mikrokontroller dengan "mode irit" baik biaya maupun resource chip nya disaat pandemi dan perang chip antara amerika vs china, yg membuat pasokan chip semakin langka.


USBasp adalah programer in-circuit dengan interface USB untuk melakukan kontrol dan pemrogramman IC Atmel AVR. Ini hanya terdiri dari ATMega88 atau ATMega8 dan beberapa komponen pasif. Pemrogram menggunakan driver USB khusus firmware, tidak diperlukan pengontrol USB khusus. Dibanding versi komersial yg merupakan ISP dengan approval dari pembuat IC nya langsung yaitu ATMEL, usb asp ini tidak memerlukan lisensi khusus dan semuanya gratis dibagikan di websitenya https://www.fischl.de/usbasp/. Harganya pun jauh sangat murah dibanding downloader sekelas STK500 atau AVR ISP MKII namun ada beberapa perhatian :


  1. Memerlukan instalasi driver secara manual berupa win-lib usb 32
  2. Menggunakan software downloader terpisah berupa AVRDUDE atau versi GUI
  3. Tidak support download software langsung melalui tools Atmel studio, jadi butuh manual mengambil file hex (atau mengarahkan ke direktory file hex setelah compile/build) lalu di flashing menggunakan avrdude.


Sebenarnya, ada dua cara untuk menginstal driver USB ASP di komputer Anda. Cara yang lebih sulit adalah dengan mendownload dan install manual. Memang akan ada warning digital signaturenya, sehingga saya akan merekomendasikan untuk tidak melakukannya


Ada cara yang lebih sederhana dan super mudah untuk menginstal driver libusb yang "signature" nya sudah benar, menggunakan penginstal driver Zadig ( https://zadig.akeo.ie/ ). Zadig menginstal versi libusb yang lebih baru sehingga mungkin tidak berfungsi dengan versi avrdude yang versi jadul. Saya hanya mengujinya dengan versi avrdude terbaru dan berfungsi dengan baik


Dan sekarang untuk petunjuk instalasi:





Usb asp  anda jangan  dicolokkan dulu ke port USB pada PC.



Unduh Zadig dari http://zadig.akeo.ie/ dan jalankan file yang dapat exe nya. Ketika Anda sudah menjalankan aplikasi Zadig, colokkan programmer USBasp.





Pilih libusb-win32 seperti pada gambar diatas, kadang jika terlanjur salah install  anda juga bisa melakukan replace driver seperti gambar dibawah.



Cara menampilkannya dengan memilih options dan list all device. Pilih juga usb asp pada daftar hargware di dropdown menu paling atas. Dan ketika dilihat pada Device manager akan muncul device seperti berikut :



Jika menggunakan AVRDUDE dan koneksi usbasp ke IC benar (akan dibahas pada tulisan selanjutnya) akan muncul signature IC yg benar seperti gambar berikut:


AVRDUDE versi GUI yg paling mudah, silahkan googling untuk mencarinya GRATIS !

Untuk cara pemrograman buka saja link berikut : https://www.aisi555.com/2021/08/usb-asp-avrdude-cara-flash-ic.html

Share:

Senin, 09 Agustus 2021

Analog Switch Off Tahap Pertama Batal 17 Agustus 2021 - Ditunda karena pandemi ?

Asosiasi Televisi Siaran Digital Indonesia (ATSDI) menyayangkan keputusan pemerintah menunda suntik mati TV analog untuk beralih ke TV digital Tahap 1 pada 17 Agustus 2021.

Kementerian Komunikasi dan Informatika (Kominfo) mengumumkan akan melakukan penyesuaian waktu penghentian migrasi TV analog ke siaran digital atau dikenal dengan Analog Switch Off (ASO).



"ATSDI tentunya sangat menyesalkan sikap pemerintah yang terlalu terburu-buru penyesuaian tahap pertama ASO yang seharusnya berlangsung 17 Agustus nanti," ujar Ketua Umum ATSDI Eris Mundandar kepada detikINET, Senin (9/8/2021).


Padahal sebelumnya, anggota asosiasi hingga penyelenggara multikpleksing menyatakan kesiapan menjalankan proses Tahap 1 migrasi ke siaran TV digital ini.


Berkaitan dengan alasan bahwa saat ini pemerintah fokus terhadap penanganan pandemi, Eris mengungkapkan Undang-Undang Cipta Kerja yang jadi payung hukum ASO justru juga dikerjakan saat pandemi berlangsung.


"Saya rasa bukan alasan yang tepat, karena selama ini sosialisasi dilakukan secara masif oleh pemerintah sendiri dan lembaga penyiaran. Kalaulah karena alasan fokus terhadap pandemi harusnya Kominfo menyampaikannya minimal saat penetapan PPKM darurat sebulan yang lalu," Kata Eris.


Adapun, penundaan suntik mati TV analog salah satunya juga ada masukan dari publik, ATSDI meminta Kominfo untuk menjelaskan masukan seperti apa yang berasal dari publik yang menyebabkan Tahap 1 ASO ini harus disesuaikan.



"ATSDI sesungguhnya melihat Tahap 1 pelaksanaan ASO pada tanggal 17 Agustus di beberapa wilayah sudah sangat siap," ungkapnya.


Dengan pembatalan suntik mati TV analog Tahap 1 pada 17 Agustus 2021, ATSDI saat ini menunggu berkaitan dengan penyesuaian tahapan penghentian TV analog melalu revisi Peraturan Menteri Kominfo Nomor 6 tahun 2021.




"ATSDI pun berharap dengan terjadinya penyesuaian ini harus dijadikan momentum bagi pemerintah untuk segera membuat skema sosialisasi yang lebih masif dan terukur dengan melibatkan unsur di daerah, menggandeng kampus-kampus dan memaksimalkan Lembaga Penyiaran itu sendiri sebagai garda terdepan sosialisasi TV digital," pungkasnya.






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 (14) antares (11) arduino (28) 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 (26) euro2020 (13) gcc (1) gis (3) gsm (1) iklan (1) infrared (2) Input Output (3) iot (78) 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 (11) lorawan (2) MATV (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroler (2) 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 (9) radio (28) raspberry pi (9) 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) statistik (5) tachometer (2) technology (1) teknologi (2) telegram (2) telepon (9) televisi (167) television (28) telkomiot (5) transistor (2) troubleshoot (3) tulisan (94) tutorial (108) tv digital (6) tvri (2) unesa (8) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3) yolo (9)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika