TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: todopic en 27 de Septiembre de 2003, 19:30:00
-
esto me lo envio el amigo Dennis Crawley

------------8<------------------8<---------------8<-------------
Utilizando RA4 con un pull up, podemos aprovecharnos de la posibilidad de
modificar los estados del pin.
Mientras se esperan los tiempos entre bit y bit se intercalan las rutinas de
un buffer circular de 37 caracteres,... ese era el desfío.
Para obtener los tiempos correctos se eligió un cristal de 18.432Mhz ya que
es divisible por potencia de dos, dando fracciones exactas para 115kpbs, o
dicho sea de paso, para casi cualquier baudrate. Utilizando estas fracciones
sólo resta elaborar el receptor y transmisor serial.
No está muy comentado pero seguro alguno encontrará una forma de mejorarlo.
Con un programa de terminal tipo Hyperterminal se recibirá el saludo y a
continuación se podrá enviar un texto de 37 caracteres.
Este texto deberá salir como echo, una vez que se termine de recibir el
caracter 37.
que lo aprovechen!.
El sitio de donde saqué el gráfico es www.bitscope.com.
Saludos
Dennis
------------------8<--------------------8<----------------8<-------
Grande Dennis!!!, esto estaba en el foro, pero por una lamentable perdida de datos en el servidor.... asi que ahora nuevamente disponible
-
esta es la rutina para la transmicion serial por un pin cualquiera de cualquier micro pic y el retardo para transmitir a 9600bps .
TX_DATA
BSF tx ;tx es el puerto que escogiste
CALL TIME
CALL TIME
MOVLW 8
MOVWF CONT8
BCF STATUS,C ;LIMPIAMOS EL CARRY
BCF tx
CALL TIME ;BIT DE START
BIT2
RRF TXDATA,F ;ROTO EL DATO A LA DERECHA
BTFSS STATUS,C ;ES 1 EL CARRY?
BCF tx
BTFSC STATUS,C ;ES 0 ES CARRY?
BSF tx
CALL TIME
DECON
DECFSZ CONT8,F ;DECREMENTO EL CONTADOR DE BIT
GOTO BIT2
BSF tx ;BIT DE STOP
CALL TIME
CLRF TXDATA ;LIMPIO REGISTRO DE TRANSMICION
CALL RETA
RETURN
;********************************************
TIME
MOVLW 1 ;RETARDO 104uS
MOVWF REG1
T3
MOVLW .28
MOVWF REG2
T4
DECFSZ REG2,F
GOTO T4
DECFSZ REG1
GOTO T3
NOP
NOP
RETURN
-
Yo tengo una duda, es posible implemetar la transmision serial (pic a pic) pero por un solo pin? usando el modulo usart que trae el pic , puenteando los cables y claro realizando las rutians necesarias ASM? o la unica ,manera de hacerlo es como se expone en el codigo de ejmplo que muestras.
-
Hola.
Es perfectamente factible! Yo lo estoy haciendo entre muchisimos PICs, pero pasando de RS232 a RS485(gracias MGLsoft!).
Saludos!
-
VOY A PROBARLA, MUCHAS GRACIAS
-
esto me lo envio el amigo Dennis Crawley <img border=0 src="http://pics.miarroba.com/caretos/bounce.gif">
------------8<------------------8<---------------8<-------------
Utilizando RA4 con un pull up, podemos aprovecharnos de la posibilidad de
modificar los estados del pin.
Mientras se esperan los tiempos entre bit y bit se intercalan las rutinas de
un buffer circular de 37 caracteres,... ese era el desfío.
Para obtener los tiempos correctos se eligió un cristal de 18.432Mhz ya que
es divisible por potencia de dos, dando fracciones exactas para 115kpbs, o
dicho sea de paso, para casi cualquier baudrate. Utilizando estas fracciones
sólo resta elaborar el receptor y transmisor serial.
No está muy comentado pero seguro alguno encontrará una forma de mejorarlo.
Con un programa de terminal tipo Hyperterminal se recibirá el saludo y a
continuación se podrá enviar un texto de 37 caracteres.
Este texto deberá salir como echo, una vez que se termine de recibir el
caracter 37.
que lo aprovechen!.
El sitio de donde saqué el gráfico es <a href="http://www.bitscope.com" target="_blank">www.bitscope.com[/url].
Saludos
Dennis
------------------8<--------------------8<----------------8<-------
Grande Dennis!!!, esto estaba en el foro, pero por una lamentable perdida de datos en el servidor.... asi que ahora nuevamente disponible <img border=0 src="http://pics.miarroba.com/caretos/bounce.gif">
lo que seria muy interesante no solo pensar el RS232 sino todas forma de protocolo de comunicacion y no solo en PC,
a ver si usted se anima y pone en el foro implementaciones de protocolo de diverso tipo I2c,RS232,DMX ISP ETC
asi no tendria las gente que preguntar, es mi opnion :mrgreen:
ya me gustaria cooperar para que este Foro sea mas amplio en todos Aspecto electronico informatico
:mrgreen:
Solo le digo que cuente conmigo para cualquier cosas
-
Hola norberto!
haber si tu me da una idea muy corta de usar TX y RX en DMX, como se haria el Baudrate y la division etc, no quiero que lo haga tan largo, claro he vistos tantos por
ahi pero ni idea tengo en microchip :mrgreen:
Un saludo :-/ :-/
-
hola , bueno mi consulta es que distancia podre lograr en rs232 sin los max232 , ya que siendo pic a pic no creo necesitarlos saludos
-
muy interezante el tema de comunicacion via un solo hijo serial eso lo he visto en el protocolo de comunicacion que usan para programar algunos micro motorola de la serie hcs12, dicho protocolo que sito lo llaman BDM y es muy comoda su conecion ya que es un standars.
Saludos y me animo a estar perdiente del tema.
Atten.
Alexander Santana.
Venezuela-Barcelona
-
hola , bueno mi consulta es que distancia podre lograr en rs232 sin los max232 , ya que siendo pic a pic no creo necesitarlos saludos
Un simple aclaración sobre los términos que usamos.
Entre PIC y PIC puedes comunicarlos mediante una comunicación serie sin un MAX232 pero entonces tenemos una comunicación serie digital a nivel TTL, ceros y unos se representan con 5V y 0V, pero no podemos hablar en este caso de RS-232 que consistiría en una comunicación serie digital a nivel V.24/EIA-232-E, ceros y unos se representan con +12V y -12V.
La diferencia es solo de qué niveles de tensión son los que representan los ceros y unos, pero es una diferencia importante y podemos llevar a engaño a algún amigo que esté empezando. Y es mejor utilizar los términos correctamente y dentro de su ámbito de validez. :mrgreen:
Con RS-232-C no se aconseja una distancia mayor de 15 metros, a nivel TTL nunca se han de sobrepasar los 5 metros
http://perso.wanadoo.es/pictob/comserie.htm#enlace_ttl
¡¡¡ Cogno !!! He puesto en San Google "distancia máxima comunicaciones TTL" y el primer resultado que me da es un post mio en este Foro Teoría y praxis de las comunicaciones serie TTL con los PIC's 16F ... (http://www.todopic.com.ar/foros/index.php?topic=23222.0) Ja, ja, ja :D :D :D
-
:D :D Entonces, si el maestro Diego lo dice... pues así sera ja ja ja :D :mrgreen:
(mientras no se demuestre lo contrario) :mrgreen:
Norberto
-
¡¡¡ Cogno !!! He puesto en San Google "distancia máxima comunicaciones TTL" y el primer resultado que me da es un post mio en este Foro Teoría y praxis de las comunicaciones serie TTL con los PIC's 16F ... (http://www.todopic.com.ar/foros/index.php?topic=23222.0) Ja, ja, ja :D :D :D
¿Como que no? ja, ja, ja :D :D :D
Lo que pasa es que no se si en otras ediciones nacionales de San Google ocurrirá lo mismo.
(http://picmania.garcia-cuervo.net/images/distancia_ttl_google.jpg)
-
Pues en México también eres autoridad Redpic :D
http://www.google.com.mx/#hl=es&source=hp&q=distancia+m%C3%A1xima+comunicaciones+ttl&btnG=Buscar+con+Google&meta=&aq=f&oq=distancia+m%C3%A1xima+comunicaciones+ttl&fp=e46a928a38f756f4
-
Pues en México también eres autoridad Redpic :D
http://www.google.com.mx/#hl=es&source=hp&q=distancia+m%C3%A1xima+comunicaciones+ttl&btnG=Buscar+con+Google&meta=&aq=f&oq=distancia+m%C3%A1xima+comunicaciones+ttl&fp=e46a928a38f756f4
Si, ja ja ja :D :D :D veo que los cambios empiezan a partir del segundo resultado :mrgreen: :mrgreen: :mrgreen:
-
Idem para Argentina...
(http://img696.imageshack.us/img696/968/busquedagoogleredpic.jpg)
-
Pues, acá en Colombia, el señor RedPic también es la autoridad :mrgreen: ... el que es bueno, es bueno, sin importar donde este.
(http://img199.imageshack.us/img199/7239/redpic.png)
-
esta rutina
TX_DATA
BSF tx ;tx es el puerto que escogiste
CALL TIME
CALL TIME
MOVLW 8
MOVWF CONT8
BCF STATUS,C ;LIMPIAMOS EL CARRY
BCF tx
CALL TIME ;BIT DE START
BIT2
RRF TXDATA,F ;ROTO EL DATO A LA DERECHA
BTFSS STATUS,C ;ES 1 EL CARRY?
BCF tx
BTFSC STATUS,C ;ES 0 ES CARRY?
BSF tx
CALL TIME
DECON
DECFSZ CONT8,F ;DECREMENTO EL CONTADOR DE BIT
GOTO BIT2
BSF tx ;BIT DE STOP
CALL TIME
CLRF TXDATA ;LIMPIO REGISTRO DE TRANSMICION
CALL RETA
RETURN
;********************************************
TIME
MOVLW 1 ;RETARDO 104uS
MOVWF REG1
T3
MOVLW .28
MOVWF REG2
T4
DECFSZ REG2,F
GOTO T4
DECFSZ REG1
GOTO T3
NOP
NOP
RETURN
Sirve para comunicar 2 PIC's? osea puedo enviar datos con esta rutina y que el pic contrario reciba los BIT en su registro RCREG? para leerlos como si fuera UART?
es algo que no se y es un poco frustrante, ambos pic trate de comunicarlos y estan trabajando a una velocidad de 4Mhz con FOSC interno y son un PIC16F1827 y un PIC12F1822, hice una liga para ver si respondian pero sigo buscando mientras alguien contesta :/
http://www.todopic.com.ar/foros/index.php?topic=38918.msg324136#msg324136
-
Ya pude con mi problema gracias de todas formas, voy a publicar el algoritmo en la liga que mencione antes
-
hola.
he aquí mi programa y el esquema al que refiere este mensaje . Saludos!.