Autore Topic: controllo di SPI, I2C (e GPIO)  (Letto 3694 volte)

Offline roberto2

  • Gamberetto
  • *
  • Post: 3
    • Mostra profilo
controllo di SPI, I2C (e GPIO)
« il: 02 Novembre 2018, 18:02:44 »
Salve ,

mi sono avvicinato da poco a Gambas3 e ho realizzato qualche programma, devo dire con soddisfazione, usando come piattaforma hardware una scheda embedded ARM gestita da una distribuzione GNU/Linux.

Noto però delle carenze in Gambas3, inerentemente le linee seriali gestibili: intendo dire, le seriali in stile "rs232" sono gestite tramite SerialPort, ma non c'e' altro.

Viceversa, le attuali schede embedded (friendlyarm, olimex e così via) dispongono anche di linee seriali con protocolli SPI e I2C, due tipi di connessione che aprono la porta a tutta una serie di periferiche (es: convertitori Analogico/Digitali, memorie EEPROM, ecc) che al momonto non sono gestibili direttamente tramite Gambas3.

D'accordo che Gambas nasce in ambito PC, ma ormai da anni sono presenti nuove potenzialità ed è veramente un peccato non poterne usufruire: mi sono trovato nella condizione di dover programmare un microcontrollore che acquisisce dei dati analogici, tramite il suo convertitore ADC interno li converte in digitale e poi invia il risultato tramite connessione seriale rs232 verso la scheda embedded al programma scritto in gambas: una inutile sequela di passaggi.

Questa carenza è ai miei occhi una disgrazia in quanto vincola Gambas ad un mondo PC-centrico mentre avrebbe molto da dire anche in ambito "embedded" per il controllo dei vari segnali: per un nuovo progetto che ho in mento mei trovo ancora nella necessità di controllare una periferica in SPI ma non potrò farlo se non metto tra essa e la scheda embedded un microcontrollore che "traduca" il protocollo RS232 in SPI e questo e' veramente una inutile complicazione dato che Linux gia' espone in /dev/ le periferiche SPI e I2C.

Quanto sopra detto vale naturalmente anche per i GPIO per quanto attiene a eventuali linee di Input/output presenti sul bus di espansione.

Ho cercato un po' in giro ma pare non esistano moduli (uso gambas 3.9.1) che pilotino il bus di espansione GPIO ne' le seriali non sr232, ne' esiste qualcuno che ci stia lavorando (nota: il canale IRC #gambas su freenode e' a di poco asfittico con giusto 6-7 persone connesse: per un programma come gambas, mi aspettavo un canale molto piu' frequentato e palpitante e invece no, pazienza)

Cercando ancora, ho trovato questo forum dove almeno posso parlatre la mia lingua e quindi ho deciso di iscrivermi per porre la questione.

Ho trovato l'interessante argomento http://www.gambas-it.org/wiki/index.php/Come_creare_un_componente sul quale mi sono però presto arenato (al momento sono solo un "praticone" che usa l'IDE cosi' come e' senza saper andare oltre).

Insomma, la situazione e' questa: mancano i componenti necessari per SPI e I2C e sarebbe bello che venissero integrati in una nuova versione di Gambas perchè secondo me aiuterebbero a dare la "spallata" per farlo entrare nel mondo delle schede embedded e renderlo utile di tutta quella massa di applicazioni per "acquisizione e controllo dati".

Come si possono richiedere nuove caratteristiche? Occorre scrivere a qualcuno? Fare richiesta al Sig. Benoît Minisini? Altro?

Grazie,
Roberto2

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re:controllo di SPI, I2C (e GPIO)
« Risposta #1 il: 02 Novembre 2018, 19:46:39 »
Nella piattaforma Raspberry ( per le altre non lo so) è possibile gestire gli I/O con la libreria Wiring-PI
Si tratta di integrare la libreria nel progetto e utilizzare le sue funzioni
Se è a questo che ti riferisci si può approfondire il discorso
nel Forum è presente una sezione "Piattaforme alternative" e si può continuare li
 
"e il naufragar m'è dolce in questo mar"

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:controllo di SPI, I2C (e GPIO)
« Risposta #2 il: 02 Novembre 2018, 20:05:31 »
Citazione
Ho trovato l'interessante argomento http://www.gambas-it.org/wiki/index.php/Come_creare_un_componente sul quale mi sono però presto arenato (al momento sono solo un "praticone" che usa l'IDE cosi' come e' senza saper andare oltre).

Solo per quanto riguarda il componente, potresti provare a (ri)creare questo qui che è semplice, se hai delle domande specifiche sono a tua disposizione.

 :ciao: :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline roberto2

  • Gamberetto
  • *
  • Post: 3
    • Mostra profilo
Re:controllo di SPI, I2C (e GPIO)
« Risposta #3 il: 02 Novembre 2018, 21:56:21 »
Nella piattaforma Raspberry ( per le altre non lo so) è possibile gestire gli I/O con la libreria Wiring-PI
Si tratta di integrare la libreria nel progetto e utilizzare le sue funzioni
Se è a questo che ti riferisci si può approfondire il discorso
nel Forum è presente una sezione "Piattaforme alternative" e si può continuare li

Le schede di mio interesse sono quelle di friendlyarm.com, qui qualche esempio:
http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO
http://wiki.friendlyarm.com/wiki/index.php/NanoPi_Fire2A
http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO_Plus2

se non sbaglio, hanno integrato anche loro la libreria wiring-PI o ne hanno sviluppata una propria, devo leggere meglio il loro sito.
D'accordo per spostare la discussione dove più consono, fammi sapere.
« Ultima modifica: 02 Novembre 2018, 23:05:08 da roberto2 »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.720
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:controllo di SPI, I2C (e GPIO)
« Risposta #4 il: 05 Novembre 2018, 11:18:34 »
Occorre scrivere a qualcuno? Fare richiesta al Sig. Benoît Minisini?
Sì, attraverso la mailing list ufficiale di Gambas.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re:controllo di SPI, I2C (e GPIO)
« Risposta #5 il: 06 Novembre 2018, 10:46:33 »
Le librerie WiringNP sono derivate da WiringPI
http://wiki.friendlyarm.com/wiki/index.php/WiringNP:_NanoPi_NEO/NEO2/Air_GPIO_Programming_with_C
Tempo fa avevo provato ad usarle su raspberry con PiFace(http://www.piface.org.uk/products/piface_digital/) da un programma gambas e funzionavano
La creazione di un oggetto per gestire gli I/O è interessante
provo a rispolverare la vecchia Piface
"e il naufragar m'è dolce in questo mar"

Offline sandro66

  • Gamberetto
  • *
  • Post: 4
    • Mostra profilo
Re:controllo di SPI, I2C (e GPIO)
« Risposta #6 il: 26 Febbraio 2019, 22:59:56 »
CIao,
per quanto riguarda le schede FrindlyArm ho provato le librerie WiringNP e funzionano bene,
fate solo attenzione perchè non supportano tutte le schede ma solo quelle con SoC Allwinner (H2/H3 etc.) e questi chip non supportano velocità delle usart a bordo superiori ai 115Kb.
Per le altre schede è consigliabile scaricare le librerie matrix  anche se scritte in C sono abbastanza comprensibili,
purtroppo il manuale è solo in cinese, ma dagli esempi in C è abbastanza facile "wrappare" le funzioni necessarie.
Un tizio , degno di lode, ha convertito le librerie anche per la versione con SoC Samsung S5P4418 (Fire2A e Core4418), purtroppo ha implementato solo la lettura/scrittura dei GPIO digitali e la parte SPI. Personalmente ho provato solo i GPIO e funzionano bene, la trovate qui.
Spero di esservi stato di aiuto..