www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Usart (Fleury) Übertragungsprobleme.


Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe aktuelle ein Problem mit meiner RS-232 Schnittstelle. Ich 
verwende die Usart- Libary von peter Fleury, die in der Vergangenheit 
gut funktioniert hat. Neues Board, neues Glück. Diesmal ziert sich das 
Ganze ziemlich.

Ich bekomme nur kryptische Zeichen im HTerm angezeigt. Frequenz und 
Baudrate stimmen wahrscheinlich. 16 Mhz(Quarz) und Baudrate 9600 
erzeugen wohl nur einen Fehler von 0,2% lt. Datenblatt.

#define F_CPU 16000000UL
#define UART_BAUD_RATE      9600

Da ich ja Zeichen empfange schliesse ich mal einen Kabelfehler aus, 
wobei ich mir hier nicht sicher bin, ob GND verbunden werden muss, oder 
ob TX und RX reichen. Ich verwende den Atmega 128 und hier das Interface 
1 an den Ports D.2 und D.3

uart1_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) );
uart1_puts("Test");

Was kann falsch sein? bzw wo fang ich mit der Fehlersuche an?

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel F. schrieb:
> wobei ich mir hier nicht sicher bin, ob GND verbunden werden muss, oder
> ob TX und RX reichen.

Auf jeden Fall mit verbinden. GND ist das Bezugspotential.

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
naja egal obs dranhängt oder nicht, die ausgabe im terminal ist immer 
die gleiche. Ich hab jetzt auch schon die Baudraten varriiert, aber 
keine Änderung.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Läuft der uC wirklich mit 16MHz? Fuses!
Sind beim MAX232 auch VCC und GND angeschlossen?

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fuses ist auf
Ext Crystal/resonator High Freq Stat-up Time 16K CK + 64 ms gestellt.

Um den RS232 auf meinem Borad nutzen zu können, musste ich zwei 
Lötbrücken schliessen, das habe ich getan. Und da ja irgendwas 
übertragen wird, kann ich doch davon ausgehen, dass das alles korrekt 
läuft.

Yo?????<\0>V??<26>???<23>!<27>57?-#?Y[}e?Y<23><27>-#1?<25><23>!<27>57?-# 
?sg}Yo?????<\0>

Das ist die Ausgabe des Fleury Testprogramms.
/*************************************************************************
Title:    example program for the Interrupt controlled UART library
Author:   Peter Fleury <pfleury@gmx.ch>   http://jump.to/fleury
File:     $Id: test_uart.c,v 1.4 2005/07/10 11:46:30 Peter Exp $
Software: AVR-GCC 3.3
Hardware: any AVR with built-in UART, tested on AT90S8515 at 4 Mhz

DESCRIPTION:
          This example shows how to use the UART library uart.c

*************************************************************************/
#include <stdlib.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <util/delay.h>
#include <avr/pgmspace.h>
#include "glcd-Display3000-211.h"

#include "uart.h"


/* define CPU frequency in Mhz here if not defined in Makefile */
#ifndef F_CPU
#define F_CPU 16000000UL
#endif

/* 9600 baud */
#define UART_BAUD_RATE      9600      


int main(void)
{
    unsigned int c;
    char buffer[7];
    int  num=134;

    LCD_Init();  // caution: this also defines SPI for the display and also PortB (all ports but MISO are output)   
  Orientation = Portrait180;
  LCD_Cls(black); 

    /*
     *  Initialize UART library, pass baudrate and AVR cpu clock
     *  with the macro 
     *  UART_BAUD_SELECT() (normal speed mode )
     *  or 
     *  UART_BAUD_SELECT_DOUBLE_SPEED() ( double speed mode)
     */
    uart1_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) ); 
    
    /*
     * now enable interrupt, since UART library is interrupt controlled
     */
    sei();
    
    /*
     *  Transmit string to UART
     *  The string is buffered by the uart library in a circular buffer
     *  and one character at a time is transmitted to the UART using interrupts.
     *  uart_puts() blocks if it can not write the whole string to the circular 
     *  buffer
     */
    uart1_puts("String stored in SRAM\n");
    
    /*
     * Transmit string from program memory to UART
     */
    uart1_puts_P("String stored in FLASH\n");
    
        
    /* 
     * Use standard avr-libc functions to convert numbers into string
     * before transmitting via UART
     */     
    itoa( num, buffer, 10);   // convert interger into string (decimal format)         
    uart1_puts(buffer);        // and transmit string to UART

    
    /*
     * Transmit single character to UART
     */
    uart1_putc('\r');
    LCD_Print("Höhe:", 1, 160, 2, 1, 1, green, black);
    for(;;)
    {
        /*
         * Get received character from ringbuffer
         * uart_getc() returns in the lower byte the received character and 
         * in the higher byte (bitmask) the last receive error
         * UART_NO_DATA is returned when no data is available.
         *
         */
        c = uart1_getc();
        if ( c & UART_NO_DATA )
        {
            /* 
             * no data available from UART 
             */
        }
        else
        {
            /*
             * new data available from UART
             * check for Frame or Overrun error
             */
            if ( c & UART_FRAME_ERROR )
            {
                /* Framing Error detected, i.e no stop bit detected */
                uart_puts_P("UART Frame Error: ");
            }
            if ( c & UART_OVERRUN_ERROR )
            {
                /* 
                 * Overrun, a character already present in the UART UDR register was 
                 * not read by the interrupt handler before the next character arrived,
                 * one or more received characters have been dropped
                 */
                uart1_puts_P("UART Overrun Error: ");
            }
            if ( c & UART_BUFFER_OVERFLOW )
            {
                /* 
                 * We are not reading the receive buffer fast enough,
                 * one or more received character have been dropped 
                 */
                uart1_puts_P("Buffer overflow error: ");
            }
            /* 
             * send received character back
             */
            uart1_putc( (unsigned char)c );
        }
    }
    
}

//  Enhanced delay-routine (wait) as as the standard delay routine (_delay_ms) is not able to delay
//  more than 17 ms maximum as of the used 8-bit-timer (depending on used crystal)
void delay_ms(uint16_t period)   //delay routine (milliseconds)
{
  for(unsigned int i=0; i<=period; i++)
    _delay_ms(1);
}






Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#include "uart.h"


/* define CPU frequency in Mhz here if not defined in Makefile */
#ifndef F_CPU
#define F_CPU 16000000UL
#endif


Und woher bekommt uart.h seine F_CPU? Hoffentlich aus dem
makefile.

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
UART_BAUD_SELECT(baudRate,xtalCpu) ((xtalCpu)/((baudRate)*16l)-1)

Dieses Makro wird an die Init Methode übergeben.
und wenn ich das richtig deute, dann ist
>uart1_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) );
völlig in Ordnung.

Abgesehen davon steht im Makefile auch eine Baudrate von 16 Mhz
###############################################################################
# Makefile for the project uarttest
###############################################################################

## General Flags
PROJECT = uarttest
MCU = atmega128
TARGET = uarttest.elf
CC = avr-gcc

## Options common to compile, link and assembly rules
COMMON = -mmcu=$(MCU)

## Compile options common for all C compilation units.
CFLAGS = $(COMMON)
CFLAGS += -Wall -gdwarf-2 -std=gnu99 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d 

## Assembly specific flags
ASMFLAGS = $(COMMON)
ASMFLAGS += $(CFLAGS)
ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2

## Linker flags
LDFLAGS = $(COMMON)
LDFLAGS +=  -Wl,-Map=uarttest.map


## Intel Hex file production flags
HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature

HEX_EEPROM_FLAGS = -j .eeprom
HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings


## Objects that must be built in order to link
OBJECTS = uarttest.o uart.o glcd-Display3000-211.o font_f-5x8.o font_f-8x14.o 

## Objects explicitly added by the user
LINKONLYOBJECTS = 

## Build
all: $(TARGET) uarttest.hex uarttest.eep uarttest.lss size

## Compile
uarttest.o: ../uarttest.c
  $(CC) $(INCLUDES) $(CFLAGS) -c  $<

uart.o: ../uart.c
  $(CC) $(INCLUDES) $(CFLAGS) -c  $<

glcd-Display3000-211.o: ../glcd-Display3000-211.c
  $(CC) $(INCLUDES) $(CFLAGS) -c  $<

font_f-5x8.o: ../font_f-5x8.c
  $(CC) $(INCLUDES) $(CFLAGS) -c  $<

font_f-8x14.o: ../font_f-8x14.c
  $(CC) $(INCLUDES) $(CFLAGS) -c  $<

##Link
$(TARGET): $(OBJECTS)
   $(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)

%.hex: $(TARGET)
  avr-objcopy -O ihex $(HEX_FLASH_FLAGS)  $< $@

%.eep: $(TARGET)
  -avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@ || exit 0

%.lss: $(TARGET)
  avr-objdump -h -S $< > $@

size: ${TARGET}
  @echo
  @avr-size -C --mcu=${MCU} ${TARGET}

## Clean target
.PHONY: clean
clean:
  -rm -rf $(OBJECTS) uarttest.elf dep/* uarttest.hex uarttest.eep uarttest.lss uarttest.map


## Other dependencies
-include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*)


Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist mit der CKOPT und der M103C Fuse?

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sind beide nicht aktiv ... ich habe so wenig wie möglich dort geändert, 
da ich mir schon einmal das Board verfused habe :)

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M103C ist neu für mich, und ich darf das auf keinen Fall einstellen. Ich 
brauche TWI den Port C teilweise als Eingang und ganz wichtig Uart 
Interface 1. 0 ist wohl mit der ISP Schnittstelle belegt.

CKOpt klingt nach der Lösung des Problems, aber ich bin nicht sicher, ob 
ich nicht irgendwas kaputt mache, wenn ich dieses Fuse Bit setze.
Ich glaube meine Nerfen ertragen keinen verfusten µC.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>M103C ist neu für mich, und ich darf das auf keinen Fall einstellen.

Ich wollte ja nur sichergehen das du die NICHT aktiviert hast.

>CKOpt klingt nach der Lösung des Problems, aber ich bin nicht sicher, ob
>ich nicht irgendwas kaputt mache, wenn ich dieses Fuse Bit setze.

Nö, warum?

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
naja grundsätzliche Angst dort was zu ändern... zu oft in diese 
Steckdose gefasst :)

ich habs mal probiert (CKOpt), und es bringt keinerlei Änderungen. Alles 
bleibt beim Alten. Exakt die selben Ausgaben.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ich habs mal probiert (CKOpt), und es bringt keinerlei Änderungen. Alles
>bleibt beim Alten. Exakt die selben Ausgaben.

Auch wenn du die Baudrate änderst? Bist du sicher das du das
richtige Hexfile brennst?

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hab ich schon überprüft.... Auch wenn ich die Baudrate ändere sieht 
die Ausgabe im Terminal gleich aus. Sollte sie ja auch, da ja das 
gleiche ankommt.

?::<\n><\0>
Das ist mein String "Hallo".

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Auch wenn ich die Baudrate ändere sieht
>die Ausgabe im Terminal gleich aus. Sollte sie ja auch, da ja das
>gleiche ankommt.

Sag mal hast du üerhaupt einen MAX232 Pegelwandler auf deinem Board?

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich zitiere mal aus der Anleitung des Boards. Ich denke ja, es gibt 
diesen Pegelwandler. Alles andere würde hier keinen Sinn machen. 
Jedenfalls wenn ich folgenden Text richtig verstehe.



Das Interface 1 steht an den Ports D.2 und D.3 zur Verfügung. Diese 
beiden Ports sind mit dem RS-232-Interface-Chip auf dem Board verbunden, 
denn der Mikrocontroller kennt nur den Pegel von 5 Volt und wie Sie oben 
lesen konnten, sind für RS-232 Spannungen notwendig, die nicht 
Mikrocontroller-tauglich sind. Wenn Sie die RS-232 Leitung des PCs 
direkt an den Mikrocontroller anschließen würden, würde dieser 
vermutlich zerstört werden. Achtung:
Um RS232 nutzen zu können, müssen Sie zuerst 2 Lötbrücken schließen.
Mehr dazu auf Seite 31.



Da der RS232-Transceiver an die Ports D2 und D3 angeschlossen ist (Rx1 
und Tx1 des Mikrocontrollers),würde der Transceiver diese Ports 
beeinflussen, selbst wenn kein RS232- Empfang oder Sendebetrieb 
stattfindet. Wenn Sie also eine „echte“ RS232-Verbindung (über die 
beiden Anschlüsse RX und TX) nutzen möchten, können Sie nicht auch 
gleichzeitig die Ports D.2 und D.3 nutzen.
Daher wurde der Transceiver durch diese beiden Brücken abgekoppelt. Das 
bedeutet,wenn Sie RS232 nutzen möchten, so müssen Sie J6 und J7 zuerst 
schließen.
D.2 und D.3 stehen trotzdem immer an der Pfostenleiste zur Verfügung, 
lediglich die Verbindung zum RS232 Chip wird durch die Brücken 
geschlossen.

Autor: holger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Brenn mal diese HEX Datei. Es wird dauernd ein U gesendet.
ATMega128, 16MHz, 9600Baud

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da kommt gar nix an

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Da kommt gar nix an

Kann ja auch nicht, war für UART0 und nicht UART1.
Gibts noch nen Anschluss für UART0 wo du mal nachsehen kannst?

Was für ein Board ist das überhaupt?

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann es sein, dass die Libary von Peter Fleury mit dem Atmega128 gar 
nicht funktioniert. Ich sehe hier in der init Methode eine Variable 
URSEL1 im UCSR1C Register. Die gibt es laut Datenblatt gar nicht.

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
holger schrieb:
>>Da kommt gar nix an
>
> Kann ja auch nicht, war für UART0 und nicht UART1.
> Gibts noch nen Anschluss für UART0 wo du mal nachsehen kannst?
>
> Was für ein Board ist das überhaupt?

Es steht ausdrücklich im Handbuch meines Boards, dass Interface 1 zu 
verwenden ist, da Interface 0 schon genutzt wird.
Zitat: das andere ist das Interface 0 – wir nutzen es hier nicht, da die 
Ports dieser Schnittstelle gleichzeitig auch für die ISP-Programmierung 
genutzt werden – mehr dazu im ATMega128-Datenblatt

Es ist das D072 von Display3000.

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kann doch nicht angehen.

Es folgt mein neuer Code. Ich habe mich jetzt exakt ans Datenblatt 
gehalten und immer noch sendet der µC nur Mist.

Ich denke der Code stimmt so, also muss es vielleicht doch entweder an 
den Fuses liegen oder an der Hardware. Die Fuses hab ich nochmals 
überprüft und es auch mit CKOpt versucht. Keine Veränderung. Das Board 
selbst hat keine Jumper und läuft ziemlich sicher mit 16 Mhz. Sowohl I2C 
als auch ADC und so weiter laufen korrekt. (hier in diesem Beispiel 
nicht aktiviert.)

Fuses sind wie folgt:
Extended 0xFF
High 0xC1
Low 0xBF

Ausgabe im Terminal
ASCII USt<\0>
HEX   55 53 74 00
/* Programmkopf mit Headerdateien*/
#include <stdlib.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include <string.h>
#include <stdio.h>
#define F_CPU 16000000UL  //Quarzfrequenz
#define BAUD 38400UL      //Baudrate für UART Übertragung
#define MYUBRR F_CPU/16/BAUD-1

//****************************** UART
// UART Einstellung    

void uart_init(unsigned int ubrr)
{

  UBRR1H = (unsigned char)(ubrr>>8);
  UBRR1L = (unsigned char)ubrr;
  UCSR1B = (1<<RXEN1)|(1<<TXEN1);            //UART TX einschalten
  //UCSR1C = (1<<USBS1)|(3<<UCSZ10);
  UCSR0C = (0<<UMSEL1)|(0<<USBS1)|(3<<UCSZ11);    //Asynchron 8N1
}
void USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while ( !( UCSR1A & (1<<UDRE1)) )
;
/* Put data into buffer, sends the data */
UDR1 = data;
}

void put_s(const char *s )
{
    while (*s) 
      USART_Transmit(*s++);

}/* uart1_puts */

int main(void)
{
    uart_init( MYUBRR); 
 
    sei();
   
   
    for(;;)
    { 
    delay_ms(1000);
    put_s("Test");
   
    
    }
    
}

//    Enhanced delay-routine (wait) as as the standard delay routine (_delay_ms) is not able to delay
//    more than 17 ms maximum as of the used 8-bit-timer (depending on used crystal)
void delay_ms(uint16_t period)     //delay routine (milliseconds)
{
    for(unsigned int i=0; i<=period; i++)
        _delay_ms(1);
}


Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
for(;;)
    {
  delay_ms(1000);
   USART_Transmit('D');

    }

Wenn ich das hier Sende, kommt <\0> oder in Hex 0x00 an.
Hilft das eventuell weiter?

Langsam verzweifle ich wirklich.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Das Board
>selbst hat keine Jumper und läuft ziemlich sicher mit 16 Mhz.

Laut Datenblatt mit 8MHz. Hast du den Quarz nachgerüstet
oder ist da einer drauf? Ohne würde es mit deinen Fuses aber
gar nicht laufen. RS232 Kabel selber gebaut? Dann könntest
du einen Dreher bei GND und TxD haben.

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja es ist ein Quarz nachgerüstet...

Wenn ich TX und RX vertausche bekomm ich keine ausgabe im Terminal. Wird 
also stimmen. GND ist auch verbunden.

Ich habe grade ein LED Blinkprogramm geschrieben, und die LED blinkt 
fein im Sekundentakt. Also ist 1Mhz und 8Mhz ausgeschlossen. (Mal 
abgesehen von der richtig gesetzten Fuse)

An was kann es denn liegen dass es nicht geht? Kann Interface 0 stören, 
da hier SPI verbunden ist?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
UCSR0C = (0<<UMSEL1)|(0<<USBS1)|(3<<UCSZ11);    //Asynchron 8N1
    ^
    |
    |

Fällt dir da was auf?

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jop ... ändert die Sache ein wenig

ECp<\0> ist jetzt die Ausgabe... nicht wirklich besser. Ich habe das 
ganze grade auf dem Interface0 versucht. Da ist die Ausgabe genau die 
Gleiche wie jetzt auf Interface1.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich habe das
>ganze grade auf dem Interface0 versucht. Da ist die Ausgabe genau die
>Gleiche wie jetzt auf Interface1.

Könnte es sein das du tatsächlich die Pins D2, D3 benutzt
statt RX und TX?

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmmm wie stell ich das fest?

Ich habe die Anleitung befolgt, und diese sagte mir: Schliesse die 
Lötbrücken J6 und J7 um RS232 zu verwenden. Damit soll laut Handbuch die 
Verwendung von D2 und D3 unterbunden sein. Also gehe ich davon aus, dass 
ich wirklich TX und RX verwende.

Ich habe grade etwas versucht. Ich habe einen Char gesendet und das 
terminal immer wieder verbunden, und getrennt... Folge: Das was ankommt 
ist inner was anderes (bekomme son 3-4 verschiedene Ausgaben die sich 
immer wieder wiederholen.)
Habe ich in meiner while schliefe nen Delay ist die Ausgabe hier immer 
00.

Ich bin jetzt völlig ratlos. Dachte ich hätte es verstanden, aber dem 
ist wohl nicht so. Ich mach das ja nicht zum ersten Mal. Auf meinem STK 
500 habe ich nen Atmega 644 und da klappt es alles prima. Wobei ich eben 
nicht weiss, was mir das STK500 alles abnimmt. Vielleicht ist wirklich 
der MAX232 (Pegelwandler?) gar nicht vorhanden auf dem Board D072. Aber 
ich finde keinen Hinweis darauf im Handbuch.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>hmmm wie stell ich das fest?

Auf das Board schauen? Neben den Pins für PORTF
sieht man doch deutlich ein RX und ein TX aufgedruckt.

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
hast Du das Signal schon mal mit dem Oszi angeschaut, so vorhanden?

Bernhard

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ist doch für Uart Interface 0 oder?

>Das Interface 1 steht an den Ports D.2 und D.3 zur Verfügung.
Das steht so im Handbuch.

Ich habs mal umgesteckt... und naja das ergebnis ist genau das 
Gleiche..... also ob D2 und D3 oder TX RX Pins... kein Unterschied.

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernhard schrieb:
> Hallo,
> hast Du das Signal schon mal mit dem Oszi angeschaut, so vorhanden?
>
> Bernhard

Hab ich leider keines zur Verfügung. Leider ...

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich habs mal umgesteckt... und naja das ergebnis ist genau das
>Gleiche..... also ob D2 und D3 oder TX RX Pins... kein Unterschied.

Dann ist irgendwas kaputt. Laut dem Handbuch liegen auf RX/TX
RS232 Signale mit mehr als 5V. Da musst du ran und nirgendwo anders.
GND muss natürlich auch verbunden werden. Wenn du dann die richtige
Baudrate beim uC UND beim PC einstellst dann sollte es auch passen.

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
6,7 V etwa ... schwankt etwas.

Kaputt... darf nicht sein, kann nicht sein :) Hab ich oft gedacht, dann 
wars wieder irgendwas anderes ...

Kann es ein Fehler sein bei der Baudratenberechnung ?
Oder doch der Takt ? Würde mein µC denn überhaupt funktionieren wennd er 
Takt falsch wäre ? Ich meien nach den Fuses muss es stimmen.

Autor: Daniel F. (mcnanuk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DANKE DANKE DANKE !!!

ich habe grade die Fleury Lib wieder eingebunden. Und siehe da... es 
tut. Ich bekomme der verfluchten Text übersendet. Es lag tatsächlich an 
den doofen Pins.

Da wär ich wahrscheinlich nieee drauf gekommen.
3 Tage Horror haben nun ein Ende :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.