Sari la conținut

Attiny1616 (nou) - de la zero


Postări Recomandate

Salutare forum,

Saptamana trecuta am incheiat un proiect (schema/pcb/software/asamblare/test) pentru un client care a contractat o lucrare cu noi. M-am hotarat sa impartasesc din experienta avuta poate ajuta pe cineva.

1. Proiectul relativ simplu un mcu 2 senzori magnetici hall (de pozitie) - MCU actioneza un motor de DC cu reductor (3V) sau un motor pas cu pas bipolar, motorul trebuie sa poata fi comandat in ambele sensuri. Totul trebuie sa fie ieftin si mic (de marimea unui timbru postal) - toata treaba se alimenteaza din baterii (3x AA) si trebuie sa aiba un curent de stanby sub 20uA.

2. Alegerea MCU - am avut doua optiuni - un Cortex M0 (STM32L0....) sau un Attiny de la AVR.

  • din punct de vedere tehnic ambele capabile cu brio, curent mic in sleep, viteza de executie suficienta
  • pretul - attiny a castigat detasat fiind cu 40% mai ieftin (aprox 0.60 Eur) fata de 0.98 Eur la STM32.
  • interfata de programare attiny1616 (e o serie ceva mai noua de la AVR) are interfata de programare UPDI (o chestie noua) si STM32xxx are SWDIO. - nu auzisem de UPDI si chestia asta era un pic nasoala - iar SWDIO eram familiar cu tool-rilie cablurile etc.
  • Tool-uri IDE, la attiny1616 aveam la dispozitie AtmelStudio (ce care nu l-am indragit niciodata) si un configurator online (web) care se numeste ATMEL Start de care nu auzisem pana nu am dat de el din intamplare intr-un tutorial pe Youtube. In concluzie toata logistica de a incepe un proiect cu tool-uri necunoscute devenea un risc. De partea celealta STM32 - tool de configurare MXCube, iar IDE Eclipse (AtollicStudio dar se pot folosii si altele si arata cam la fel) - conosteam tool-urile pe care le foloseam zilnic deci risc minim.
  • Cablu de programare - aveam cateva cabluri MkiI prin sertare iar la STM32 avem cam pe fiecare birou cate unul deci nu erau probleme. - aici nu mi-am facut temele....

Ca sa facem viata mai frumoasa am ales attiny1616 (link la datasheet http://ww1.microchip.com/downloads/en/DeviceDoc/ATtiny3216_ATtiny1616-data-sheet-40001997B.pdf) chiar daca nu eram familiar cu tool-urile.

Ca driver de motor am ales un circuit dedicat care poate actiona doua moroare de DC sau un motor pas cu pas (are doua punti H cu mosfet si circuite de protectie) nimic nou sub soare. Totul fain si frumos, fac schema, fac pcb, trimit pcb-urile la facut si comand piesele si un stencil de pasta. Pana aici totul super. Vin placile le dau la un tehnician din firma si le asambleaza fara probleme.

Aici incepe calvarul.

Interfata de programare UPDI (pe pare lumea o numeste sarcastic Undefined Programing Interface) find relativ noua, nu o foloseste multa lume si nici informatii nu sunt prea multe. Fac o paranteza - interfata foloseste pinul de RESET al mcu (si evident Vcc si Gnd) si singurul cablu de programare comercial este atmel ICE (e si debugger si merge si cu seria SAM) costa aprox 80 Euro.

Alt cablu alterntiv (de hobby)  era un poiect de pe net care folosea un Arduino UNO care programat cu un binar si devine programator. Din pacate proiectul respectiv era plin de "nu stim daca ..." si de "nu l-am testat cu...." si cel mai igrijorator era ca folosea o versiune modificata a lui AVR Dude care era testata cu un singur tip de Attiny. - era de fapt un hack neterminat.

Viata e prea scurta (asta o simti de la 50 incolo) asa ca, comand cablul. Dupa doua zile soseste cablul, desfac cutia rosie pe care scrie Microchip si vad ca are un singur adaptor care din fericire are terminatie ISP (ca la vechiie cabluri Atmel) - adaptorul asta are niste conectori imposibili de mici si o panglica minuscula (probabil ca o sa reziste 1 luna maxim doua)  - firicel de floare alabastra.

Fac un adaptor cu 3 pini sa-l leg la placuta mea - deschid datasheet-ul de la cablu, unde invat ca panglica adaptor se numeste cumva pe prima pagina (exista mai multe tipuri pe care poti sa le comanzi si separat) - iar mai jos in documentatie se numaste cu totul diferit. Confuzie toatala, totusi ma ghidez dupa numarul de pini si gasesc o pagina unde e un tabel cu pinii - victorie. Victorie scurta ca pinul 1 din tabel nu se potriveste cu marcajul de pe plasticul conectorului - ci e taman in partea opusa (e un desen tampit in datasheet care clarifica asta) - deci va recomand sa tineti data sheet-ul aproape sa sa faceti o eticheta si s-o lipiti pe carcasa ca sa nu umblati cu datasheet-ul dupa voi.

Fac adaptorul cu trei fire conectez placuta, pornesc AtmelStudio - recunoaste cablul, recunoaste MCU - gata, sunt pe cai mari.

Fac o pauza. - in episodul doi a sa scriu despre experienta cu Atmel Start si AtmelStudio (care a fost in general buna) - asta in caz ca e cineva interesat si nu am adormit pe nimeni cu ce am scris mai sus.

RR

Editat de roadrunner
corectura
  • Like 2
  • Thanks 2
Link spre comentariu
https://www.tehnium-azi.ro/forums/topic/6981-attiny1616-nou-de-la-zero/
Distribuie pe alte site-uri

Interesanta experienta cu Attiny1616 (am auzit si eu recent de acest MCU) dar as fi vrut sa citesc exact modelul de punte dubla tip H la care ai facut referire ! Si poate ar fi util pentru toti utilizatorii ceva mai multe informatii despre modul (schema) de programare, acel UPDI (in acest sens se poate deschide si un topic separat, daca doresti) !!!

Link spre comentariu
https://www.tehnium-azi.ro/forums/topic/6981-attiny1616-nou-de-la-zero/#findComment-77965
Distribuie pe alte site-uri

Am atasat imaginea cu driverul  - A3916 (link la datasheet https://www.allegromicro.com/~/media/Files/Datasheets/A3916-Datasheet.ashx)

din pacate nu pot pune toata schema - ea apartine clientului acum.

Nu are nimic special driverul asta si costa putin 0.90 Eur dar s-a potrivit exact cu ce trebuia sa faca.

RR

A3916.png

  • Like 1
  • Thanks 1
Link spre comentariu
https://www.tehnium-azi.ro/forums/topic/6981-attiny1616-nou-de-la-zero/#findComment-77966
Distribuie pe alte site-uri

Acum 6 ore, roadrunner a spus:

Interfata de programare UPDI (pe pare lumea o numeste sarcastic Undefined Programing Interface) find relativ noua, nu o foloseste multa lume si nici informatii nu sunt prea multe. Fac o paranteza - interfata foloseste pinul de RESET al mcu (si evident Vcc si Gnd) si singurul cablu de programare comercial este atmel ICE (e si debugger si merge si cu seria SAM) costa aprox 80 Euro.

Am gasit o interfata seriala- uPDI destul de interesanta pe avrfreaks.net

Vcc                     Vcc
                        +-+                     +-+
                         |                       |
 +---------------------+ |                       | +--------------------+
 | Serial port         +-+                       +-+  AVR device        |
 |                     |      +----------+         |                    |
 |                  TX +------+   4k7    +---------+ UPDI               |
 |                     |      +----------+    |    |                    |
 |                     |                      |    |                    |
 |                  RX +----------------------+    |                    |
 |                     |                           |                    |
 |                     +--+                     +--+                    |
 +---------------------+  |                     |  +--------------------+
                         +-+                   +-+
       
                        GND                   GND

Python UPDI driver for programming "new" tinyAVR and megaAVR devices:

https://github.com/mraardvark/pyupdi

Si un doc interesant in problema asta:

http://ww1.microchip.com/downloads/en/AppNotes/00002466B.pdf

Link spre comentariu
https://www.tehnium-azi.ro/forums/topic/6981-attiny1616-nou-de-la-zero/#findComment-77968
Distribuie pe alte site-uri

@prog

am vazut si proiectul de mai sus in python pe avr-freaks si mi se pare mai bine facut decat cel cu Arduino UNO facut programator (care are multe gauri). 

Din pacate am avut numai 12 ore alocate pentru tot proiectul si am evitat sa cad experimente interminabile, am preferat sa dau 80 euro. Un alt pericol era sa ametesc fuse biti din cauza tool-urilor experimentale si sa trebuiasca sa inlocuiesc MCU pe placi. Cand faci lucrurile astea pentru salariu nu vrei sa-ti asumi riscuri inutile.

RR

 

  • Thanks 2
Link spre comentariu
https://www.tehnium-azi.ro/forums/topic/6981-attiny1616-nou-de-la-zero/#findComment-77970
Distribuie pe alte site-uri

Acum 20 ore, roadrunner a spus:

Fac o pauza. - in episodul doi a sa scriu despre experienta cu Atmel Start si AtmelStudio (care a fost in general buna) - asta in caz ca e cineva interesat si nu am adormit pe nimeni cu ce am scris mai sus.

RR

N-am adormit. Aștept.

  • Like 1
Link spre comentariu
https://www.tehnium-azi.ro/forums/topic/6981-attiny1616-nou-de-la-zero/#findComment-77971
Distribuie pe alte site-uri

La 19.05.2019 la 11:25, roadrunner a spus:

@prog

am vazut si proiectul de mai sus in python pe avr-freaks si mi se pare mai bine facut decat cel cu Arduino UNO facut programator (care are multe gauri). 

Din pacate am avut numai 12 ore alocate pentru tot proiectul si am evitat sa cad experimente interminabile, am preferat sa dau 80 euro. Un alt pericol era sa ametesc fuse biti din cauza tool-urilor experimentale si sa trebuiasca sa inlocuiesc MCU pe placi. Cand faci lucrurile astea pentru salariu nu vrei sa-ti asumi riscuri inutile.

RR

 

Te inteleg. Oricum apreciez experienta impartasita in acest topic. Va fi utila multor incepatori si nu numai.

Succese maxime!

Link spre comentariu
https://www.tehnium-azi.ro/forums/topic/6981-attiny1616-nou-de-la-zero/#findComment-78004
Distribuie pe alte site-uri

  • 4 weeks later...

Salut Forum,

Imi cer scuze pentru intarziere - am revenit cu impresii despre Atmel Studio si design-ul cu attiny1616

Am cumpaat cablul de programare care a fost recunoscut de Atmel Sudio fara probleme. Cablul vine cu niste conectori destul de ciudati (foarte mici) ai niste panglici cu firicele minuscule (nu cred ca o sa reziste prea mult dar se pot cumpara si separat). Unul din cablurile adaptoare are un conector ISP cu 6 pini (2.54mm) la fel ca pe placile de arduino.

Attiny1616 are interfata de programare cu 3 pini (Vcc, Gnd, Reset) si am facut un mic adaptor cu 3 fire, l-am conectat la placa si MCU a fost detectat fara probleme.

La partea de software am folosit un tool pe web https://start.atmel.com/ unde poti sa-ti configurezi pinii, clock-ul si intreruperile.

practic alegi MCU cu care vrei sa lucrezi, dupa care se deschide o interfata cu 3 tab-uri principale - Dashboard, Pinmux,Clocks.

Pinmux - e pentru alegerea pinilor (si redenumirea lor cu nume mai prietenoase si usor de inteles) - alegerea tipului de pin (intrare/iesire) - pull-up sa fara, intreruperi generate de pin si eventual tipul intreruperilor.

Clocks - alegerea clock-ului principal si a ocilatorului intern. (sun doua la device -ul asta)

Dashboard - Aici mai sunt cateva setari ale cpu, bod si modurilor de sleep care pot fi de trei tipuri idle, stand-by, power down.

tot in dashboard se pot adauga ceva biblioteci si dirivere pentru I2C, SPI, Serial etc. si multe altele.

Dupa ce am facut toate alegerile putem inspecta codul generat automat (scheletul viitorului software) - daca ne place cum arata pana aici nu me mai ramane decat sa generam proiectul cu toate fisierele si tipul de tool-uri pe care le vom folosii mai departe. (eu am selectat Atmel Studio)

*******

De aici incolo Folosim Atmel studio cu proiectul creat mai sus - deci am deschis proiectul in Atmel Studio.

Revin cu continuarea (sa speram ca astazi)

RR

  • Thanks 1
Link spre comentariu
https://www.tehnium-azi.ro/forums/topic/6981-attiny1616-nou-de-la-zero/#findComment-78109
Distribuie pe alte site-uri

  • 7 months later...

Astazi ...dupa 8 luni,

Am deschis noul proiect in Atmel Studio (care pe un laptop decent tot 1 minut vrea ca sa porneasca ca acum 10 ani) - primul lucru dau un build sa vad daca se compileaza. Se compileaza fara probleme dupa care incerc sa-mi gasesc reprezentarea proiectului cu fisierele aferente care evident ca se numeste "solution" nu project (la fel cum software-ul se numeste "App" in zilele noastre)

Fereastra care arata proiectul se afla in dreapta ecranului nu in stanga ca la toata lumea (evident am mutat-o in stanga)

De aici experienta a fost buna - am conectat cablul de programare cumparat (80 Euro) am scris ceva cod, compilat, programat fara probleme mari.

Imi place interfata asata noua (UDPI) ca are numai 3 pini (VCC, GND, Reset) si e relativ rapida sau mai bine zis suficient de rapida cand codul e putin (sub 1K codul .bin in cazul meu) - se programeaza in aprox 2 secunde.

O chestie care a mers din prima dupa ce am consultat niste exemple (Atmel Studio are si exemple destul de bune) a fost partea de sleep la MCU. In priectul meu sunt alimentat din baterie si stau in starea de sleep pana sunt alertat de un eveniment extern. (mai precis de o intrerupere externa)

in starea "sleep" semnalul de ceas (clk) este oprit complet si din cauza asts nu poti avea intreruperi pe fronturi (edge interrupt) ci numai pe nivel (level change) - deci atentie cand alegeti tipul intreruperii pentru trezirea MCU din sleep. Partea cu intrarea in sleep si revenirea la viata a mers si am reusit 9uA consum in sleep (cu tot cu regulatorul de tensiune de la 6v-3V3 si driverul de motor pas cu pas (si el in shutdown evident).

Am facut ceva modificari pana a mers cum trebuia am schimbat prin cod niste delay-uri ca sa mearga mototrul mai lin si sa consume cat mai putin si era ca si facut.

Marea dezamagine a fost cand si-a instalat clientul meu Atmel Studio (aceeasi versiune ca si mine) i-am dat proiectul si nu a vrut sub nici o forma sa se compileze la el. Nu era treaba mea sa vad de ce nu se compileza asa ca a luat hex-ul. Totusi din treaba asta clientul meu a ramas cu un gust amar ca are senzatia ca nu i-am dat tot codul sursa.

Concluzia a fost ca a meritat efortul sa folosesc noul ATTiny1616 rezutatul a fost bun pacat ca Atmel Studio a ramas de rahat ca odinioara.

S-auzim numai de bine,

RR

Link spre comentariu
https://www.tehnium-azi.ro/forums/topic/6981-attiny1616-nou-de-la-zero/#findComment-78874
Distribuie pe alte site-uri

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.
×
×
  • Creează nouă...

Informații Importante

Folosim cookie-uri și tehnologii asemănătoare pentru a-ți îmbunătăți experiența pe acest website, pentru a-ți oferi conținut și reclame personalizate și pentru a analiza traficul și audiența website-ului. Înainte de a continua navigarea pe www.tehnium-azi.ro te rugăm să fii de acord cu: Termeni de Utilizare.

ATENTIE !!! Functionarea Tehnium Azi depinde de afisarea de reclame.

Pentru a putea accesa in continuoare site-ul web www.tehnium-azi.ro, va rugam sa dezactivati extensia ad block din browser-ul web al vostru. Dupa ce ati dezactivat extensia ad block din browser dati clic pe butonul de mai jos.

Multumim.

Apasa acest buton dupa dezactivarea extensiei Adblock