0
Λοιπόν, η συνδεσομολογία είχε προβλήματα οπότε έφτιαξα νέο κύκλωμα. Χρησιμοποίησα αυτή τη φορά MAX232 και ανέβασα και το σχηματικό (οι 2 πυκνωτές στο κρύσταλλο είναι 22nF ο καθένας).
Ο κώδικας σε assembly είναι ο εξής:
και το αρχείο initmc.asm είναι το εξής:Κώδικας:LIST P=16F688 INCLUDE P16F688.INC INCLUDE INITMC.ASM ERRORLEVEL -302,-205,-207 __CONFIG _FCMEN_OFF & _IESO_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_ON & _XT_OSC ORG H'00' GOTO RESET ORG H'20' RESET CALL INITIALIZE BSF PORTA,2 ;rts BTFSS PORTC,3 ;check if a cts has arrived GOTO $-1 ;else check again MOVLW 'A' MOVWF TXREG CALL TXWAIT MOVLW 'T' MOVWF TXREG CALL TXWAIT MOVLW '+' MOVWF TXREG CALL TXWAIT MOVLW 'C' MOVWF TXREG CALL TXWAIT MOVLW 'P' MOVWF TXREG CALL TXWAIT MOVLW 'I' MOVWF TXREG CALL TXWAIT MOVLW 'N' MOVWF TXREG CALL TXWAIT MOVLW '=' MOVWF TXREG CALL TXWAIT MOVLW 0x31 ;1 MOVWF TXREG CALL TXWAIT MOVLW 0x32 ;2 MOVWF TXREG CALL TXWAIT MOVLW 0x33 ;3 MOVWF TXREG CALL TXWAIT MOVLW 0x34 ;4 MOVWF TXREG CALL TXWAIT MOVLW 0x0D ;CR MOVWF TXREG CALL TXWAIT BCF PORTA,1 GOTO $ TXWAIT BTFSS TXSTA,TRMT GOTO $-1 RETURN END
Το δοκίμασα αρχικά συνδέοντας το κύκλωμα στο PC και λαμβάνει χωρίς πρόβλημα την ακολουθία των χαρακτήρων.Κώδικας:ERRORLEVEL -302,-205,-207 ORG H'50' INITIALIZE MOVLW B'00000111' ;ΑΠΕΝΕΡΓΟΠΟΙΗΣΗ ΣΥΓΚΡΙΤΗ MOVWF CMCON0 MOVLW B'00011001' ;CHANNEL 6, AtoD ON MOVWF ADCON0 BSF STATUS,RP0 BCF TRISA,2 ;PORTA,1 OUTPUT BSF TRISC,3 ;PORTC,3 INPUT MOVLW B'01110000' ;ΕΚΤΟΣ ΤΩΝ ΑΝ4-6 ΟΙ ΑΛΛΕΣ ΑΝΑΛΟΓΙΚΕΣ ΕΙΣΟΔΟΙ ΝΑ ΜΕΤΑΒΟΥΝ ΣΕ ΨΗΦΙΑΚΕΣ MOVWF ANSEL MOVLW B'01010000' ;Fosc/16,ΡΥΘΜΟΣ ΜΕΤΑΤΡΟΠΗΣ MOVWF ADCON1 BCF STATUS,RP0 MOVLW B'00100110' ;TX ENABLE,HIGH SPEED MOVWF TXSTA MOVLW B'10010000' MOVWF RCSTA ;ΕΝΕΡΓΟΠΟΙΗΣΗ ΣΕΙΡΙΑΚΗΣ,ΛΗΨΗ MOVLW B'00001000' ;16BIT BAUD GENERATOR MOVWF BAUDCTL ; MOVLW D'8' ;115200BPS MOVWF SPBRG RETURN
Μέτρησα επίσης τη τάση στο pin Tx στο βύσμα DB9 και έχει τιμή 4.3V αν δώσω 1 στο Tx pin του PIC και 0.09V αν δώσω 0.
Παρ'όλα αυτά αν το συνδέσω με το modem δεν καταφέρνω να το κάνω να δεχτεί την ΑΤ εντολή για να μπει στο δίκτυο.
Παρατήρησα επίσης κάτι ακόμα: τα pin 2 και 6 στο MAX232 δίνουν έξοδο -14 με -16.4V και τα 2 αντί για 8.5V και -8.5 αντίστοιχα όπως αναφέρει το datasheet. Γιατί συμβαίνει αυτό;