Pages: [1]   Go Down
Author Topic: piedinatura avr  (Read 336 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 2
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

buona sera a tutti,
come da titolo del post avrei bisogno di qualche dritta sull'associazione dei pin degli avr con il nome dato a loro dall'ide.
In questo periodo sono preso con un piccolo progetto utilizzando un ATtiny 84 che sono riuscito a programmare grazie alle guide di Michele "Michele Menniti" e "Leo72" (complimenti sinceri per il lavoro svolto). Utilizzando appunto le guide sopracitate ho aperto il file "pins_arduino.h" e sono riuscito a programmare il controllore utilizzando correttamente i vari pin, così ho deciso di creare varie tabelle, come ormai quella celebre del 328, per altri avr così da rendere più rapida la consultazione.
Il problema è che non riesco a capire come vengono discriminati i digital I/O dagli analog e quali pin possono lavorare in PWM. Ho scaricato anche alcuni datasheet e mi sembra di intuire che i digital son marchiati PCINTX, gli analog ADCX e i pwm con OCXX, ma obiettivamente le mie capacità non sono così alte da potermi permettere di eseguire tutta una costruzione di tabelle per poi scoprire che le mie intuizioni erano completamente sbagliate. smiley-cry smiley-roll-sweat
Mi piacerebbe essere aiutato in questa piccola impresa, o magari venire a conoscenza del fatto che qualcuno nella comunità ha già eseguito un lavoro del genere  smiley-razz

Grazie

Meluino
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Le piedinature che trovi nei file pins_arduino dei vari core ti illustrano come sono mappati i pin.
I pin digitali sono marchiati con D e seguiti da un numero. Stessa cosa con i pin analogici, marchiati con A ed un numero.
ecc...

Questo è facile. Ma se vuoi capire la piedinatura di un datasheet, devi usare altri sistemi, basati sulle funzioni dei pin.
Come hai giustamente osservato se vedi ADCxx quello è un pin che può fungere anche da ingresso analogico (il numero indica il canale che viene gestito dall'ADC).
Se vedi OCRxA/B/C quello è un canale riferito ad un timer, e quindi quel pin può generare segnali PWM.
PCINTxx indica gli interrupt di cambio di stato dei pin, i PCINT.
Se vedi MOSI/MISO/SCK, quei pin sono l'SPI.
Se vedi SDA/SCK quei pin sono l'I2C
Eccc...

Alla fine le funzioni sono sempre quelle, le impari.

Logged


Offline Offline
Jr. Member
**
Karma: 2
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie Leo72 per la velocità nella risposta,
quindi se ho ben capito, nella lettura del datasheet sono sulla giusta strada? Posso utilizzare questo metodo per metter giù delle tabelle di comparazione?!
in merito al file menzionato devo fare una rettifica, ho sbagliato a scrivere in quanto per i nomi dei pin ho fatto riferimento al file "core_pins.h", ma comunque sia in questo file che nell'altro non riesco a capire dove sono le sigle D e A alle quali fai riferimento, il file che sto usando l'ho scaricato insieme alla tua guida e si chiama "guidaATtiny 00 22-1. smiley-wink.
Logged

Offline Offline
Jr. Member
**
Karma: 2
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

OK,
mentre provavo a controllare il file a cui facevo riferimento prima, ho trovato la soluzione al "mistero".
Il file giusto dove fare riferimento non è "arduino_pins.h" ma "arduino_pins.c", qui effettivamente le cose sono scritte in modo che anche un principiante come me non può sbagliare.
Grazie per la risposta, mi è stata utile per riuscire a venire a capo del problema.
Buona notte e Buona Natale a tutti

Meluino

Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

OK,
mentre provavo a controllare il file a cui facevo riferimento prima, ho trovato la soluzione al "mistero".
Il file giusto dove fare riferimento non è "arduino_pins.h" ma "arduino_pins.c", qui effettivamente le cose sono scritte in modo che anche un principiante come me non può sbagliare
Dipende dal core.
Se parliamo del core Tiny, l'architettura del core prevede la piedinatura nel file pins_arduino.c contenuto in /hardware/tiny/cores/tiny però questa struttura dei file è obsoleta. Con la nuova IDE 1.x il file della piedinatura del micro va in /hardware/arduino/variants. Ad esempio, quello dei chip delle schede 2009 ed UNO (Atmega168/328) è in /hardware/arduino/variants/standard mentre quello dell'Atmega32U4 è in /hardware/arduino/variants/leonardo
ecc...
Logged


Offline Offline
Jr. Member
**
Karma: 2
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
però questa struttura dei file è obsoleta

Effettivamente sarà il caso di passare ad una versione più aggiornata...... smiley-red
Logged

Pages: [1]   Go Up
Jump to: