Gestione seriale evoluta

11 Anni 3 Mesi fa #1 da Picboy
Gestione seriale evoluta è stato creato da Picboy
Devo fare un progettino di una schedina che trasmette dei dati su RS-232.
Voi direte: quanto di più facile. Ma la cosa si complica quando sono necessarie diverse velocità di comunicazione e diversi standard per adattarsi a diverse macchine (il tutto settabile tramite microswitch). Con parità o senza, 7 o 8 bit, 1 o 2 bit di stop. Il tutto per 8 diverse velocità di comunicazione. Allora il discorso delle velocità di comunicazione l'ho fatto subito. Ma poi ho scoperto che il PIC (nel mio caso un 16F628, ma il discorso è uguale per tutti i PIC) gestisce solo comunicazioni del tipo 8N1, al massimo 7E1 tramite le funzioni del linguaggio PICBasic che utilizzo.
Come faccio ad implementare comunicazioni del tipo 8E1, 8E2, 7N1, 7N2, ecc? Ho guardato anche gli altri linguaggi di programmazione che uso (C18, MikroC), ma queste funzionalità non sono implementate.
Non dovrò mica farmi la comunicazione seriale "a mano" in assembler??

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Picboy
  • Junior Member
  • Junior Member
Di più
11 Anni 3 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Gestione seriale evoluta
Ciao,

il modello di PIC che hai selezionato supporta solo un bit di stop per cui volendo avere due bit di stop dovrai implementare una comunicazione via software o eventualmente usare qualche artificio combinando hardware e controllo software del pin di ricezione per verificare il secondo bit di stop.
Ovvero quando la UART riceve il primo bit di stop considera il byte valido.
A quel punto potresti controllare se arriva il secondo bit di stop e determinare se il byte e´ realmente valido.

Personalmente ho sempre usato un solo bit di stop.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
11 Anni 3 Mesi fa #3 da Picboy
Risposta da Picboy al topic Gestione seriale evoluta
Ciao Mauro, grazie della risposta! Riguardo al 2° bit di stop, ho risolto. Basta aggiungere una pausa con uscita dati alta (o bassa a seconda dei casi) pari a 1/Baud prima della successiva comunicazione. Per il bit di parità invece niente da fare, bisogna implementare la cosa via sw.. :(

Già che ci sono altra domanda: io volevo usare un 4066 (quad digital switch) per interrompere una RS232 o meglio deviarla da un dispositivo ad un altro. Però ho visto che la cosa non funziona perchè questo switch lavora solo tra 0 e 5V, mentre la seriale arriva anche a -/+15V. Cosa mi suggerisci? Esistono switch digitali che arrivano a -/+15V, o mi conviene usare un mini-relè a doppio scambio?

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Picboy
  • Junior Member
  • Junior Member
Di più
11 Anni 3 Mesi fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Gestione seriale evoluta
Ciao,

alcuni Mux analogici hanno tensioni duali, potresti far riferimento alla seguente lista:

www.ti.com/general/docs/lit/getliteratur...ratureNumber=slyb125

Potresti anche controllare Maxim Integrated o Analog Devices.

In alternativa se non vuoi avere una tensione duale potresti usare un max232 per lavorare sui 5V e rialzare poi i livelli.

Sul lato PIC hai i 5V e metti il mux. Il MAX232 lo metti dopo.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
11 Anni 3 Mesi fa #5 da Picboy
Risposta da Picboy al topic Gestione seriale evoluta
Ragionandoci un pò ho risolto senza aggiungere altri componenti al circuito. In pratica ho sfruttato, come dicevi anche tu, il MAX232 per traslare i livelli del segnale che entra, passa a 0-5V, passa par lo switch e poi rientra nel MAX e riesce a livello -/+10V :)

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Picboy
  • Junior Member
  • Junior Member
Di più
Moderatori: Mauro LaurentiStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login