Care este diferența dintre magistrala USB și I2C?


Răspunsul 1:

I2C: necesită doar doi pini (ceas și date) și puteți avea multe cipuri care toate împărtășesc aceleași două linii. Asta înseamnă că, dacă aveți o mulțime de dispozitive care trebuie să comunice, aveți nevoie de mai puține urme pe placa de circuit decât dacă au fiecare conexiune independentă. Fiecare dispozitiv de pe un autobuz I2C are o adresă, care este modul în care controlați la care vă duceți la un moment dat. Cu toate acestea, I2C este destul de lent și nu funcționează bine pe distanțe mari (datorită designului electric).

I2C este utilizat frecvent pentru senzori precum accelerometrele care nu au nevoie de rate mari de date. Drivere LED, senzori de temperatură, genul acela de lucru.USB: Pentru programare puteți utiliza USB doar pentru că există un program de încărcare a cablului care deja instalează sistemul, primește binarul și face programarea propriu-zisă. Dacă nu aveți acel bootloader în loc, programarea USB nu este o opțiune.

Pe de altă parte, ICSP este, în esență, prost-proof. În scurt timp de a arunca siguranțele sau daune fizice, acesta va programa dispozitivul. Aceasta este de fapt una dintre cele două metode utilizate pentru a obține bootloaderul de pe placă, astfel încât să puteți utiliza USB-ul dvs. fantezist.

ICSP folosește pini privilegiați diferiți de ceilalți pentru a susține această operație; nu doar orice pin poate fi folosit pentru a programa uC. De obicei, aceștia împărtășesc alte funcționalități, dar sunt adesea defalcate într-un antet, deoarece capacitatea de a se recupera dintr-un bliț rău este mai util decât 3-5 pini de I / O în plus.

e: Multe dispozitive oferă, de asemenea, depanare în circuit prin hardware-ul de programare ICSP. Nu este atât de important dintr-o perspectivă Arduino, ci o caracteristică absolut crucială atunci când lucrați într-un cod de dezvoltare complet IDE pentru un uC.