Jump to content
Sign in to follow this  
roadrunner

Attiny1616 (nou) - de la zero

Recommended Posts

Posted (edited)

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

Edited by roadrunner
corectura
  • Like 1
  • Thanks 2

Share this post


Link to post
Share on other sites

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) !!!

Share this post


Link to post
Share on other sites

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

  • Thanks 1

Share this post


Link to post
Share on other sites

Am inteles, e suficient schema driver-ului. Mersi.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

@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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We use cookies and related technologies to improve your experience on this website to give you personalized content and ads, and to analyze the traffic and audience of your website. Before continuing to browse www.tehnium-azi.ro, please agree to: Terms of Use.