Se afișează postările cu eticheta CP2102. Afișați toate postările
Se afișează postările cu eticheta CP2102. Afișați toate postările

marți, 25 martie 2014

Utilizare placa Arduino cu interfata USB defecta

   In timpul testelor la un indicator date mediu pentru masina (temperatura exterioara citita de un senzor DS18B20, temperatura si umiditatea interioara citite de un senzor DHT11, tensiunea bateriei masurata cu un divizor rezistiv si afisare date pe un ecran LCD alfanumeric cu 16 coloane si 2 randuri) cand am alimentat placa Arduino cu 12V dintr-o sursa stabilizata, datorita consumului mare al perifericelor si a diferentei mari de tensiune (tensiune de intrare si cea stabilizata de 5V pentru alimentarea microcontrolerului ATmega328P-PU si a interfetei USB), am depasit puterea suportata de stabilizatorul de pe placa Arduino.
   Din pacate, incercam sa fac un filmulet de prezentare si nu am mai verificat temperatura stabilizatorului de tensiune, asa ca de pe placa Arduino Uno R2 am "prajit" interfata USB realizata cu ATmega8u2 si microcontoler-ul ATmega328P-PU.. nerealizand problema, am incercat sa mai fac un film cu alta placa Arduino Uno (de data asta R3), dar am reusit sa fac acelasi lucru si la asta, unde s-au "dus" interfata USB realizata cu ATmega16u2 si microcontoler-ul ATmega328P-PU.
   Solutia eleganta este inlocuirea microcontrolerului ATmega8u2 (sau ATmega16u2) si reprogramarea ca interfata USB, dupa cum e prezentat inclusiv pe site-ul Arduino in articolul Updating the Atmega8U2 and 16U2 on an Uno or Mega2560 using DFU, utile fiind si informatiile din discutia de pe forum-ul Arduino numita [Solved] Wipe out sketch from arduino the hard way - 8U2 firmware bug.
   Detaliat se prezinta pasii reprogramarii la Bring your dead Uno/Mega back to life! How to fix ATMEGAXXU2 issues.
   Respectivele microcontroler-e se gasesc in Romania la TME, cel putin acolo am gasit cautand pe net.
    Interfata USB folosita de mine este cu integratul CP2102 si am prezentat-o in articolul Arduino de casa cu interfata USB CP2102
   Schema de conectare este:
   Aceasta varianta a functionat la una din placi, cealalta are scurt in interfata USB cu ATmega16u2 si trebuie intai eliminat...
   Am facut si 2 filmulete:
   Deci, cand se folosesc mai multe periferice (afisaje, senzori, etc) trebuie folosit un stabilizator extern pentru 5V din care sa fie alimentati acestia...de exemplu cu LM7805 (vezi articolul 78xx) sau cu LM317 (vezi articolele LM317 si/sau Stabilizator reglabil de tensiune (1,2..12V) cu LM317T).
   Pentru a intelege mai bine partea de adaptare, puteti studia schemele placilor Arduino Uno:
Arduino Uno R1
Arduino Uno R2
- Arduino Uno R3

27.03.2014
   Ca exemplu, la placa Arduino Uno R3, conectarea interfetei USB cu CP2102 se poate face in 2 etape:
- eliminarea (dezlipirea) integratului/microcontrolerului ATmega16u2
- realizarea unor legaturi (strapuri) pe cablajul unde au fost pinii 8 cu 11, respectiv 9 cu 10, pentru a se aprinde LED-urile care indica comunicatia cu USB-ul 
- lipirea unor conductoare/fire: DTR de la modulul USB la fostul pin 13, TxD la fostul pin 9, RxD la fostul pin 8
- lipirea unor fire de la mufa USB de pe modul la mufa USB de la placa Arduino (la asta se poate renunta si se face comunicatia si alimentarea pe mufa modului): USB5V se leaga la fostul pin 31, GND la GND, D- la fostul pin 30, iar D- la fostul pin 29.

miercuri, 20 noiembrie 2013

Arduino de casa cu interfata USB CP2102

   Fata de articolul similar din iunie, numit Arduino de casa cu interfata USB PL2303HX, in care am prezentat un modul care nu are pinul DTR/RESET si la incarcarea unui sketch in Arduino trebuia sa tin apasat butonul RESET de pe placa, acum am sa prezint un modul care se bazeaza pe integratul CP2102 fabricat de Silicon Labs si are disponibil si pinul DTR/RST.
   Modulul se numeste STE13-007 si e fabricat de o firma BAITE... din pacate nu am gasit poza exacta a acestuia, asa ca am facut unele cu telefonul (decat deloc mai bine ceva...)
   Ulterior, am facut si cu un aparat foto serios:
   Dupa instalarea driver-ului disponibil pe pagina fabricantului, cand se conecteaza interfata la calculator vor gasi pe portul 15 (in cazul meu) Silicon Labs CP210x USB to UART Bridge:
  Modul de conectare la o placa Arduino de casa (sau una fara interfata USB) foarte simplu:
   Ca sa nu se interpreteze gresit, eu am avut interfata USB cu integratul PL2303HX fara pinul de reset (RST/DTR), dar pe piata exista si cu... iar corespondenta din tabelul de mai sus este valabila pentru toate interfetele USB...
  Am facut si un scurt filmulet numit Arduino de casa cu interfata USB pe baza integratului CP2102
   Sketch-ul modificat folosit in filmulet este:
/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
  This example code is in the public domain. 

   sketch modified by niq_ro for testing a home-made Arduino
 for more details see http://nicuflorica.blogspot.com/
   Craiova, 11.2013
*/
 
 
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);               // wait for 100ms
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(100);               // wait for 100ms
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);               // wait for 100ms
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(100);               // wait for 100ms
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);
}