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.

Niciun comentariu:

Trimiteți un comentariu