Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Meretas Qualcomm (Pengisian Cepat) QC 2.0/3.0 Dengan ATtiny85

Komponen dan persediaan

Teknologi Microchip ATtiny85
× 1
Regulator 3.3V SparkFun LM1117
× 1
SparkFun USB Male A
× 1
Resistor 10k ohm
× 2
Resistor 2.21k ohm
× 1
Arduino Proto Shield
× 1
Sakelar Tombol Tekan SparkFun 12mm
× 1
Bank Daya atau Pengisi Daya QC
× 1
Jumper Umum (0,1")
× 8
Male-Header 36 Posisi 1 Baris- Panjang (0,1")
× 1
Resistor 0,05 ohm
× 10
Arduino UNO
× 1
Kabel Jumper Pria/Wanita
× 7
LED (generik)
× 1
Resistor 22.1k ohm
× 1

Alat dan mesin yang diperlukan

Besi solder (generik)

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Pendahuluan

Banyak perangkat elektronik konsumen bertenaga USB telah membangun solusi Qualcomm QC (Pengisian Cepat) untuk pengisian cepat pada voltase berbeda daripada voltase biasa 5,0 volt. Hal ini memungkinkan peluang untuk menggunakan Power Bank yang kompatibel dengan QC untuk proyek yang membutuhkan lebih banyak daya atau voltase lebih tinggi seperti 9/12 volt.

Tujuan dari proyek ini adalah untuk mengembangkan perangkat yang dapat meretas protokol QC dan memungkinkan penghobi, pengembang, insinyur untuk menggunakan bank daya mereka untuk tegangan/daya yang lebih besar untuk proyek haus daya berikutnya.

Gambar di atas menunjukkan output 5, 9, 12 Volt dari power back yang kompatibel dengan QC 2.0 yang memberi daya pada resistor 10 Ohm 5 Watt.

Mengembangkan Peretasan * Perangkat

Seluruh perangkat memiliki dua komponen aktif - regulator tegangan LM1117 3.3V dan ATtiny85 MCU untuk mengontrol. Semua bagian lainnya adalah resistor, sakelar tekan, konektor, jumper, header, terminal, protoboard, dll.

Untuk membangun perangkat, komponen pertama ditempatkan dalam tata letak yang rapi, kemudian disolder. Beberapa link pendek 0 ohm digunakan untuk menghubungkan bagian yang berbeda.

Ada jumper untuk menonaktifkan sirkuit onborad dan mengaktifkan pemrograman. Karena, jalur pemrograman (SPI - MOSI, MISO, SCK) juga bertindak sebagai GPIO selama pengoperasian perangkat.

Pemrograman ATtiny85 dengan ISP

Sebelum memprogram ATtiny85, ATtiny85 dihapus dari IC Base dan ditempatkan di papan tempat memotong roti. Untuk memprogram ATtiny85, papan Arduino UNO diubah menjadi programmer ISP dengan mengunggah "ArduinoISP" dari File> Contoh> ArduinoISP sketsa. Sketsa ini tersedia di Arduino IDE.

Pemrograman ATtiny85 memerlukan langkah-langkah berikut:

  • Menginstal dukungan ATtiny untuk Arduino IDE (terima kasih kepada David A. Mellis )
  • Membakar Bootloader untuk ATtiny85 menggunakan Arduino UNO sebagai ISP
  • Mengembangkan dan Mengupload Kode menggunakan Arduino UNO sebagai ISP

Sirkuit berikut disiapkan untuk memprogram ATtiny85:

ISP = dalam pemrogram sistem

Sebagai alternatif, ATtiny85 dapat diprogram untuk disimpan pada perangkat dengan melepas semua jumper di sekitarnya.

Pengoperasian Perangkat

Untuk menggunakan perangkat, pertama-tama perangkat harus terhubung ke Bank Daya (atau Pengisi Daya) yang kompatibel dengan QC. Secara default, tegangan USB QC Power Bank akan menjadi 5,0 volt.

Semua jumper harus terhubung setelah mengupload kode, sehingga MCU dapat berkomunikasi melalui D+/- ke sumber QC.

Regulator LM1117 3.3 V akan memberi daya dan memberi daya ke ATtiny85. MCU ini akan mulai mengeksekusi kode. 4 pin I/O ATtiny85 dihubungkan ke resistor pembagi tegangan yang akan digunakan sebagai Output High dan Low. Pin I/O lain terhubung ke sakelar yang akan diinisialisasi sebagai input Pull Up. Sakelar ini mengambil input pengguna untuk mengubah tegangan sumber QC.

Sekarang, sebelum masuk ke detail, penting untuk mengetahui bagaimana Output akan berubah. Setidaknya ada 4 jalur/kabel yang umum untuk setiap jenis USB ( USB A, B, C, 1.1, 2.0, 3.0+).

Ini adalah :-

  • VBUS (Vcc +5V secara default)
  • H +
  • D -
  • Tanah

Pada Charger/Power Bank biasa VBUS bersifat tetap, karena itu penyaluran daya dibatasi oleh arus yang dapat masing-masing 500 mA, 1 A, 2 A menghasilkan 2,5 Watt, 5 Watt, dan 10 Watt.

Tapi di perangkat sumber daya QC, ada konverter boost internal yang dapat memompa tegangan tergantung pada permintaan (PD) perangkat penerima daya !!!

QC 2.0 (juga 3.0) menggunakan D+ dan D- dari USB untuk berkomunikasi dengan PD. PD mengirimkan sinyal tegangan pada D+ dan pengisi daya D- dan QC akan mengirimkan daya yang sesuai dengan mengubah tegangan VBUS. Menurut Datasheet CHY ini, berikut adalah tabel yang menjelaskan pasangan sinyal apa pada D+/D- dari PD akan membuat QC memberikan output tegangan apa:

Dukungan QC 2.0 dimulai ketika tegangan pada D+ dan D- sama dengan nilai pada baris ke-4 tabel ini dan bertahan setidaknya 1,25 detik. Jika D+ menjadi 0,0 volt (sebenarnya di bawah 0,325 Volt) dukungan QC akan berhenti dan Output akan menjadi 5,0 volt. Dengan mengatur voltase sesuai tabel ini, output pada VBUS dapat diubah.

Di sini, 4 Output ATtiny85 terhubung ke 2 jaringan pembagi tegangan yang terdiri dari dua resistor 10k dan dua 2.2k untuk menghasilkan sinyal tegangan ini untuk saluran D+/D-.

Misalnya, untuk membangkitkan 3,3 V pada D+, resistor atas dan bawah yang dihubungkan ke dua pin Output ATtiny85 PB3 dan PB4, keduanya akan dibuat High dari kode.

Demikian pula, untuk menghasilkan 0,6 V pada D-, kedua resistor atas dan bawah yang terhubung ke dua pin Output ATtiny85 lainnya (PB1 dan PB3) akan dibuat Tinggi dan Rendah masing-masing.

Dengan cara ini, pengisi daya/bank daya QC 2.0 menerima permintaan perubahan tegangan dan perubahan yang sesuai. Sakelar Push dikonfigurasi sebagai PULLUP Input, saat tidak ditekan, sakelar tersebut dibaca TINGGI oleh MCU dan eksekusi kode bertahan dalam loop sementara yang mencegah perubahan voltase yang disetel. Saat pengguna menekan Push Switch, saat loop putus dan voltase berikutnya diatur. Kemudian lagi, eksekusi kode memasuki loop while berikutnya untuk menahan tegangan VBUS saat ini.

Terdapat LED yang menyala redup (5V), ringan (9V), dan terang (12V) untuk memberikan representasi visual dari tegangan output kepada pengguna.

Kemungkinan Aplikasi

  • Mengemudikan Garis LED 12V
  • Menghidupkan pemancar/penerima RF untuk jangkauan yang lebih jauh
  • Mengemudikan Relay 12V, Motor, dll
  • Dapatkan tegangan antara 1,25 hingga 10 volt menggunakan LM317 atau LM2596
  • Drive jarak jauh IR 9V
  • Kekuatan Mobil Robot
  • Mengisi Daya Laptop dengan 20V
  • Sistem apa pun hingga 18 Watt seperti perangkat WiFI, LTE, S2E untuk aplikasi IoT
  • Daya cadangan untuk sistem jarak jauh
  • Kebanyakan LCD, Monitor LED, Printer, Pemindai
  • PC portabel Berdaya Rendah

Dukungan untuk Kelas QC lainnya

Karena QC 2.0 Kelas B, QC 3.0 dan QC 4.0 kompatibel dengan QC 2.0 Kelas A, oleh karena itu perangkat ini dapat bekerja dengan semua pengisi daya dan bank daya terbaru. Tetapi opsi tegangan akan menjadi 5,0, 9,0 dan 12,0 volt. Jika tegangan keluaran lain diperlukan, harap baca lembar data CHY 100, 101, 103 dan ubah kode yang sesuai.

Peringatan!

  • Tinggi Kualitas Bank Daya atau Pengisi Daya QC dengan Perlindungan Sirkuit Pendek harus digunakan, external eksternal Beban Tidak boleh Melebihi 18 Watt . Hal ini dapat dipastikan dengan Memeriksa Label Peringkat Daya di Muat perangkat.
  • Keluaran 20 Volt Harus Dihindari sejak 1117 3v3 regulator dapat Menangani Maksimum 15 Volt , ini harus dihindari dari Kode MCU oleh Jangan pernah membiarkan D+ dan D-line memiliki 3,3 Volt Pada Saat Yang Sama .
  • Dalam kasus Diperlukan keluaran 20 Volt (didukung oleh QC 2.0 Kelas B dan QC 3.0, QC 4.0 ), regulator tegangan (LM317 dikonfigurasi untuk 3,3 V) yang dapat menangani lebih dari 20 Volt harus digunakan. Jika tidak, Regulator dan MCU akan Hancur !!!!
  • Perhatian Harus Diberikan ke Polaritas Tegangan Keluaran, +telah ditandai dengan MERAH dan -telah ditunjukkan oleh kabel kecil BIRU di sebelah Terminal Keluaran.
  • Lepas koneksi di USB Pria-Wanita pasangan harus menjadi Dihindari atau Panas akan dihasilkan sebagai konsekuensi dari Perlawanan Kontak dan Efisiensi Daya Akan Turun.
  • Selama Pemrograman ISP Semua Jumper Harus Dihapus untuk Mengisolasi PIN MOSI, MISO, SCK, VCC, GND, RESET dari sisa sirkuit di papan ke Hindari Interferensi dengan Pemrograman.
  • Modifikasi kode Tidak Harus Dilakukan tanpa Memahami dengan Jelas Protokol Pengisian QC, Desain Ini Terutama Ditujukan untuk Sumber Daya QC 2.0 (Kelas A) tapi bisa sebagian bekas untuk Lebih tinggi QC Standar
  • Retas Mungkin Tidak Kerja dengan beberapa Pengisi Daya QC/Bank Daya
  • Pengalihan GPIO Harus dilakukan di Urutan yang Benar ke Hindari Penghentian dari Mode Tegangan Tinggi

Catatan: Disarankan untuk tidak Mereplikasi Proyek ini jika Poin Di Atas Tidak Dipahami oleh seseorang, jika tidak Risiko dari Api Bahaya atau Kerugian dari Peralatan mungkin terjadi!

Dimungkinkan untuk mengubah voltase secara manual tanpa menggunakan mikrokontroler apa pun. Hanya diperlukan 4 kabel jumper untuk meniru kondisi tabel D+/D- dengan menghubungkan ke Vcc (3.3V) dan Gnd (0V) ke resistor dalam urutan yang benar. Karena menggunakan mcu mungkin berlebihan untuk transisi sederhana seperti itu.

Referensi

  • https://www.mouser.com/ds/2/328/chiphy_family_datasheet-269468.pdf
  • https://en.wikipedia.org/wiki/Quick_Charge
  • http://www.ti.com/lit/ug/tidu917/tidu917.pdf

Kode

  • Kode ATtiny85
Kode ATtiny85C/C++
Kontroler QC
///==========================Algoritma ========================/// /* Pertama, Hubungkan pin D+ ke tegangan 0,325 hingga 2 volt dan biarkan D-mengambang, lalu tunggu minimal 2 detik. Dua aksi terjadi selama 2 detik ini:Tegangan D+ dan D- sama dengan tegangan antara 0,325 hingga 2 volt selama 1,25 detik. (karena pin D+ dan D- terhubung bersama di dalam CHY100 pada awalnya) Kemudian D+ tetap pada tegangan antara 0,325 hingga 2 volt dan tegangan D- turun menjadi nol. (karena pin D+ dan D- terputus dan resistor di dalam CHY100 melepaskan D-)*** CHY100 adalah chip antarmuka Protokol QC 2.0 di dalam bank daya/pengisi daya ........ chip QC 2.0 lainnya mungkin serupa Buat D+ di atas 3,0 V terlebih dahulu lalu sambungkan D- ke tegangan antara 0,325 hingga 2 volt. VBUS melompat ke 9V. Sambil menjaga sambungan D- dengan tegangan antara 0,325 hingga 2 volt, buatlah D+ menjadi tegangan antara 0,325 hingga 2 volt. VBUS melompat ke 12V. (karena tegangan D+ dan D-nya antara 2V dan 0,325V) Putuskan sambungan D+ dari tegangan antara 0,325 hingga 2 volt . VBUS melompat ke 5V, Karena QC2.0 keluar dari mode pengubah tegangan dan VBUS masuk ke nilai default 5V. mulai dari awal ketika perlu masuk QC2.0 lagi)*/// ============CATATAN PENTING ================//// *** Urutan pembuatan pin TINGGI dan RENDAH itu penting // *** Jika D+ turun di bawah 0,325V selama transisi karena Urutan Pengalihan GPIO yang salah // *** QC 2.0 akan keluar dari Mode Tegangan Tinggi dan VBUS akan kembali ke 5 Volt // ============================================/ /#define PUSH_SWITCH 0#define Dp_2k2 4#define Dp_10k 3#define Dn_2k2 2#define Dn_10k 1int Press_Detect =0;void setup(){ pinMode(PUSH_SWITCH, INPUT_PULLUP); // Sekarang Memulai QC Handshake dengan membuat D+ 0,6 v menjaga D- pada Gnd Init_QC();}void loop(){ //// 5V //// while (digitalRead(PUSH_SWITCH) ==1) { } delay(250 ); //// 9v //// Set_9V(); while (digitalRead(PUSH_SWITCH) ==1) { } delay(250); //// 12v //// Set_12V(); while (digitalRead(PUSH_SWITCH) ==1) { } delay(250);// Set_5V();}///******************* Fungsi **********************///void Init_QC(){ //pinMode(Dn_2k2, INPUT); //pinMode(Dn_10k, INPUT); pinMode(Dp_2k2, OUTPUT); pinMode(Dp_10k, OUTPUT); digitalWrite(Dp_2k2, RENDAH); digitalWrite(Dp_10k, TINGGI); penundaan(3000); // sekarang protokol QC aktif}void Set_9V(){ pinMode(Dp_2k2, OUTPUT); pinMode(Dp_10k, OUTPUT); digitalWrite(Dp_10k, TINGGI); digitalWrite(Dp_2k2, TINGGI); pinMode(Dn_2k2, OUTPUT); pinMode(Dn_10k, OUTPUT); digitalWrite(Dn_2k2, RENDAH); digitalWrite(Dn_10k, HIGH);}kosong Set_12V(){ pinMode(Dp_2k2, OUTPUT); pinMode(Dp_10k, OUTPUT); pinMode(Dn_2k2, OUTPUT); pinMode(Dn_10k, OUTPUT); digitalWrite(Dn_2k2, RENDAH); digitalWrite(Dn_10k, TINGGI); digitalWrite(Dp_10k, TINGGI); digitalWrite(Dp_2k2, LOW);}void Set_5V(){ pinMode(Dp_2k2, OUTPUT); pinMode(Dp_10k, OUTPUT); digitalWrite(Dp_10k, TINGGI); digitalWrite(Dp_2k2, RENDAH); pinMode(Dn_2k2, OUTPUT); pinMode(Dn_10k, OUTPUT); digitalWrite(Dn_2k2, RENDAH); digitalWrite(Dn_10k, LOW);}void Set_20V(){// ubah Voltage Regulator !!!// resiko ditanggung sendiri }

Skema

https://circuits.io/circuits/5830928-qc-chargeing-hack

Proses manufaktur

  1. Qualcomm meningkatkan utilitas drone dengan platform drone berkemampuan 5G dan AI
  2. Panduan Singkat Menyegel FDM dengan Wawasan
  3. Peretasan Perangkat Keras dengan Markforged Mark Two di MakeMIT
  4. Giroskop Menyenangkan dengan NeoPixel Ring
  5. Kostum Cloud
  6. Sensor Kendala Sederhana dengan Arduino
  7. Minimal MIDI Drum Kit dengan Printer 3D
  8. Pengenalan dan Sintesis Ucapan dengan Arduino
  9. S-Meter Eksternal pada Radio Icom dengan Port CI-V
  10. Radio Stereo Mini dengan RDA5807