home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca

 
FORUM: Pic Micro
Tutto quanto riguarda questi microprocessori... progetti, suggerimenti, aiuti, discussioni...ecc


MIKROBASIC I2C
     
Autore Messaggio opzioni
gliderpilot





postato il:
06.10.2021, alle ore 18:33
MIKROBASIC I2C 

utilizzo Mikrobasic da diversi anni, sto tentando di utilizzare il protocollo I2c per leggere A e B dallo Slave 1, e C e D dallo Slave 2, il micro è il PIC18F27K42, utilizzo questo Pic perchè ho inteso dall'aiuto in linea che solo i K42 indirizzano lo slave.
qualcuno è in grado di aiutarmi ad indicare la sequenza per leggere le variabili dagli Slave?
inoltre dalla libreria non rilevo come inviare ACK e NACK.
Tralascio la configurazione del Master e Slave da datasheet, mi servirebbe un aiuto sui comandi che indirizzando uno Slave sono un pò nebulosi.

Siete in grado di moderare questo argomento?

Grazie.
MB54




una ogni 100 livelli


postato il:
06.10.2021, alle ore 19:20
gliderpilot:
utilizzo Mikrobasic ...il micro è il PIC18F27K42,

.


Un anno fa ci ho provato per due settimane ad usare l' I2C con questo PIC. Senza nessun risultato ed alla fine mi sono arreso. L' HELP per lo specifico PIC non è chiaro ed anche sul forum di ME non ho trovato nulla di utile. E' il primo PIC che mi ha sconfitto sull' uso dell' I2C.


Spero che tu ci riesca e che voglia condividere...
M.
gliderpilot





postato il:
07.10.2021, alle ore 09:44
grazie per la risposta, mi confermi le difficoltà che ho incontrato anche io.
la mia applicazione necessita di comunicare con tre slave che inviano valori di tensione e corrente, visto le difficoltà mi oriento sulla comunicazione rs-485 più facile da gestire in Mikrobasic, guarda la libreria se può essere utile per la tua applicazione.

MG
MB54




una ogni 100 livelli


postato il:
07.10.2021, alle ore 10:15
L' I2C dei PIC 'tradizionali' funziona senza problemi con gli slave. Senza problemi si fa per dire.
I PIC con pin riconfigurabili richiedono prima la configurazione dei pin, ed anche questo non da particolari problemi.

Il maledetto PIC18F27K42 (e sua famiglia) è invece particolare, come dice anch l' Help del MB per l' I2C. Provai seguendo il datasheet a configurare preliminarmente ogni possibile settaggio, senza alcun risultato. Sul forum di MB ci sono un paio di 3d (mi pare nella sezione microC) per problemi abbastanza simili, ma alla fine non sono arrivato a nulla.
Chiesi lumi anche sul forum di Grix, senza risultati. Puoi dare un occhiata quì:
http://www.grix.it/forum/forum_thread.php?id_forum=3&id_thre…

Purtroppo è passato un anno, ho poca memoria ed ho voluto cancellare la 'frustrazione' (... termine esagerato)
Buone prove
Mauro
MB54




una ogni 100 livelli


postato il:
07.10.2021, alle ore 19:06
double_wrap:
qualche anno fa ho implementato la gestione I2C su un BAsicstampII, un micro molto ma molto primitivo.
Ho usato le routine scritte da Parallax per connettere due RTC (con due indirizzi diversi). Io le ho usate al buio, ma hanno funzionato subito. NNon dovrebbero usare i registri interni perche' perchè funzionano su tutti i pin (0 ed 1 ma anche 14 e 15 del BS2)
Magari posso esserti utili per provare a trasportale sul tuo micro

questi sono i link
https://forums.parallax.com/discussion/62633/i2c-code-for-th…
http://www.grix.it/UserFiles/double_wrap/File/siderale/ok_si…
http://www.grix.it/viewer.php?page=9636


Hai probabilmente per errore inserito nel vecchio 3d la risposta 'citata sopra'. Riprendo qui.
Le prove con il PIC18F27K42 le feci a gennaio 2020, per cui vado 'a memoria'.
Con altri PIC rimappabili relativamente recenti direi che un primo problema è nelle librerie I2C dell' epoca di mikroBasic. Il pin SDA (o lo SCL, non ricordo) può essere impostato con le funzioni I2C_remappable della libreria MB. con il pin SCL (o forse era lo SDA) la funzione della libreria non 'funzionava' ed era stato necessario impostare manualmente i registri. Poi però I2C funzionava.
Con il PIC18F27K42 invece non funzionava. Avevo eliminato impostato i registri per eliminare tutte le possibili interferenze, impostando le funzioni attive e le priorità sui pin. Nulla da fare: con questo chip non sono riuscito a far funzionare I2C.
Visto che non ho voglia di finire altri lavoretti in corso, proverò a riprendere il tutto con l' Analog Discovery, cosa che a suo tempo non feci per ottusa caparbietà.

Direi che non è un problema della libreria mB I2C nella sua implementazione base (mai avuto problemi, se non per limiti miei di comprensione delle necessità specifiche degli slave) quanto delle funzioni di rimappatura dei pin o piu' probabilmente della errata o non completa esclusione di funzioni HW che agiscono sugli stessi pin .... il datasheet completo del PIC è enorme e può darsi che mi sia sfuggito qualche cosa.
Voglio riprendere l' argomento perchè è un PIC interessante: fa di tutto e velocemente; la cosa più interessante per me era l' ADC a 12 bit.

Per un attimo ho sperato in gliderpilot

Mauro

double_wrap




una ogni 100 livelli
una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli


postato il:
07.10.2021, alle ore 19:32
mi sono espresso male: il codice per I2C che usai con il basicstampII non usa un HW interno dedicato (e relativi registri) ma usa solo le istruzioni di lettura e scrittura dei pin con opportune temporizzazioni. In pratica e' un emulatore SW dell'HW I2C.


"se peso cado, ma se cado non peso"
adamatj.altervista.org
MB54




una ogni 100 livelli


postato il:
07.10.2021, alle ore 20:02
double_wrap:
In pratica e' un emulatore SW dell'HW I2C.


l' I2C SOFTWARE della libreria mB sembrerebbe funzionare anche con questo PIC; con una emulazione software si perdono però tutti i vantaggi di usare questo PIC.
Ho dato una rapida occhiata al forum di mikroElektronica, ed il problema al 2021 pare NON risolto o solo parzialmente risolto .
Nella sezione mikroBasic non c'è praticamente nulla (pochi usano mB ed ancora meno con questo PIC), ma nella sezione mikroC ci sono alcuni post di lamentele ->spiegazioni -> soluzioni almeno parziali.

https://forum.mikroe.com/search.php?keywords=PIC18F27K42+&te…


Un utente disperato alla fine si è scritto una sua libreria per l' uso di I2C hardware:
http://paulfjujo.free.fr/_18F27K42_47K42/BASE_18F27K42_mini_…

Devo però leggere il tutto con calma. La vedo dura


segui questo thread con grixFC, per questa funzione devi aver installato il software grixFC

torna su
     

Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito




 

 
 
indietro | homepage | torna su copyright © 2004/2022 GRIX.IT - La community dell'elettronica Amatoriale