come cambiare il baudrate della seriale emulata?

11 Anni 8 Mesi fa #6 da shinshi
Ho appena fatto la seguente prova con Freedom light:
Ho preso l' Esempio 1: Classe CDC, Input Output Demo che fa parte della documentazione di Freedom light.
Nella sezione "INCLUDE" ho aggiunto
#define LCD_DEFAULT
#include <LCD_44780.h>
#include <LCD_44780.c>
#include <delay.c>

Nella funzione main ho aggiunto:
OpenLCD (48);
WriteStringLCD ("Hello World");
BacklightLCD (TURN_ON_LED);
ShiftLCD (RIGHT,2);
Line2LCD ();

Ho modificato poi invece di far accendere i led scrivo nella seconda linea del display 1 oppure 2.

Ho usato MPLABX, le librerie v2.5 di Mauro per il display e delay e il MAL è del 15/2/2012.

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

  • shinshi
  • Avatar di shinshi
  • Elite Member
  • Elite Member
Di più
11 Anni 8 Mesi fa #7 da Mauro Laurenti
Risposta da Mauro Laurenti al topic come cambiare il baudrate della seriale emulata?
Ciao.

per il clock devi far uso della frequenza che mandi alla CPU.
Facendo uso del PLL (necessario per l'USB) mando la meta' di 96MHz, ma potrebbe cambiare da esempio ad esempio.

Facendo uso della classe CCD, se cambi il baudrate sul terminal (Per esempio RS232 Terminal), il baud rate si riflette in automatico sul PIC. La trasmissione reale via USB potrebbe essere poi molto piu' veloce e dipende dallo standard USB, ma dal lato terminale ed in uscita dell'UART hai la frequenza impostata.

Per il display bisogna fare attenzione al fatto che le funzioni di scrittura hanno dei delay interni di tipo bloccante che potrebbero creare problemi allo stack USB creando dei ritardi (personalmente non ho fatto test). Bisognerebbe inviare i caratteri all'LCD senza creare blocchi.

...vedo che non volete usare la libreria 3.0!
La libreria LCD ha nuovi nome per le funzioni ma rendono il codice molto piu' leggibile anche senza commenti.
Per questo ho deciso di cambiarle.
Inoltre ho aggiunto anche le funzioni goto_line_LCD e goto_xy_LCD.
E ho tolto Line2LCD ();

goto_line_LCD (2) credo sia meglio che non Line2LCD (). Inoltre funziona per tutte le righe 1-4.

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 8 Mesi fa #8 da shinshi
Infatti ora vorrei riprovare da capo con le librerie 3.0. Mi trovo prò in difficoltà ripartendo da zero con un nuovo progetto per la classe CDC. Ho aperto in MPLABX il progetto all'interno della cartella C:\Microchip Solutions v2012-10-15\USB\Device - CDC - Serial Emulator.
Con Set Configuration seleziono PICDEM_FSUSB, scrivo la funzione main. Il compilatore non da errori ma attaccando l'USB non si installa la COM che invece con l'esempio della Freedom Light funziona.
Come si fa per creare un progetto con la classe CDC?

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

  • shinshi
  • Avatar di shinshi
  • Elite Member
  • Elite Member
Di più
11 Anni 8 Mesi fa #9 da StefA
@shinshi: anche io ho fatto una cosa simile per fare prove. Il dubbio è nato dal fatto che funzionava anche una frequenza doppia.
Riguardo il tuo problema, non ho visto il progetto con mplax x, ma in quello per mplab devi stare attento a una cosa, la gestione dell'usb è in polling e non con l'interrupt, se non cambi questa impostazione e riscrivi completamente il main, lui non "controlla" più l'usb...c'è una funzione da richiamare di cui adesso non ricordo il nome. A scanso di equivoci parti dal progetto originale, compilalo ed eseguilo e vedi se va (sicuramente funziona), poi inizi a modificarlo e ogni volta lo ricompili e riesegui. Comunque dai uno sguardo a questo tutorial di Mauro per vedere di quali modifiche ha bisogno la Freedom II e la MAL, anche questo è un punto di partenza funzionante. Poi dovrai "adattarlo" alla light, ma on penso sia difficile.

@Mauro: Grazie. Leggendo il tuo tutorial avevo più o meno capito la frequenza e infatti provando 48MHz il tutto funzionava; poi per curiosità ho provato anche 96MHz e funziona ugualmente. Da lì il dubbio. Volendo realizzare un convertitore RS232-USB per poter dialogare dal pc con una "cosa" seriale, basterebbe impostare il baud rate necessario dal software del pc..giusto? perché se utilizzo la usb come seriale emulata..posso utilizzare contemporaneamente anche la USART del pic?
Utilizzerò le nuove librerie, promesso :) in questo caso ho solo copiato una parte di programma già fatto in precedenza e facevo prove su quello per una questione di rapidità.

Ste

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]

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

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
11 Anni 8 Mesi fa #10 da Mauro Laurenti
Risposta da Mauro Laurenti al topic come cambiare il baudrate della seriale emulata?
Ciao,

mettendo 96MHz funziona comunque ma la routine del delay viene "ingannata" ed e' piu' lenta.
Il display visualizza i messaggi leggermente piu' lentamente (impiega il doppio del tempo).

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
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