Go Down

Topic: controllo alimentatore agilent via seriale (Read 1 time) previous topic - next topic

aureliusss

sulla user's guide dello strumento ho trovato questo paragrafo
Quote
DTR/DSR Handshake Protocol
The power supply is configured as a DTE (Data Terminal Equipment)
device and uses the DTR (Data Terminal Ready) and DSR (Data Set Ready)
lines of the RS-232 interface to handshake. The power supply uses the DTR
line to send a hold-off signal. The DTR line must be TRUE before the power
supply will accept data from the interface. When the power supply sets the
DTR line FALSE, the data must cease within 10 characters.
To disable the DTR/DSR handshake, do not connect the DTR line and tie the
DSR line to logic TRUE. If you disable the DTR/DSR handshake, also select a
slower baud rate to ensure that the data is transmitted correctly.
The power supply sets the DTR line FALSE in the following cases:
1 When the power supply's input buffer is full (when approximately 100
characters have been received), it sets the DTR line FALSE (pin 4 on the
RS-232 connector).


cosa significa? che devo lasciare DTR flottante e DSR a -9V?

aureliusss

l'errore che mi segnala l'alimentatore dice che sovrascrivo il buffer di output, che nel frattempo non si è liberato(non invia i dati ad arduino);
duqneu il problema è che l'output buffer dello strumento non si svuota, non invia dati sulla porta.

potrebbe essere un problema dello sketch che ho scritto?

MauroTec

Stai usando una seriale software e una hardware, questa la usi come debug, giusto. Credo che il problema possa dipendere dalla velocità di 9600, prova con 2400.

Quote

To disable the DTR/DSR handshake, do not connect the DTR line and tie the
DSR line to logic TRUE.


Per disabilitare DTR/DSR, non collegare DTR e metti DSR a uno logico. TRUE è vero quindi 1 logico, ma non so se corrisponde a -9 o a +9, informati sulla interfaccia hardware RS232.

Poi dice che in caso di DTR/DSR disabilitato devi impostare la velocità bassa.

Il buffer dice che si riempie approsimativamente con 100 caratteri, quindi abbassa il baudrate anche sotto 2400, così dai il tempo alla logica di processare i dati senza che il buffer si riempia.

Ciao.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

aureliusss

fatto tutto, collegato il dsr a uno logico (da -6 a -15 per rs232), baud 1200, ma come diceva un mio amico "cristo si è fermato al buffer". non leggo la risposta, o meglio, lo strumento tiene per sè la risposta nell'output buffer ma non la invia sulla seriale

MauroTec

Vedi questo documento http://www.google.it/url?q=http://cp.literature.agilent.com/litweb/pdf/E3631-90011.pdf&sa=U&ei=WeL3UOvrJYGHswaBzoHAAQ&ved=0CBwQFjAB&usg=AFQjCNH1PpZ_JiUhEnw6XXGdNBGalipxXw

C'è un codice sorgente in basic, penso possa essere utile per verificare la validità del tuo codice C++.

Poi se tu potessi fare la query usando la seriale hardware al fine di verificare che l'agilent non sia troppo schizzinoso verso quella software, potresti provare se avessi più di una seriale hardware ho se hai un display connesso ad arduino, ma anche connettendo alcuni led dovresti avere conferma di ricezione della query e comunque anche senza nulla il display E3631 non deve mostrare nessun errore. ah ho supposto che al momento visualizza l'errore, la supposta è giusta? :P

Ciao.

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Go Up