- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 5 von 5

Thema: RS232 sendet nur 10000000

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    25.11.2004
    Beiträge
    17

    RS232 sendet nur 10000000

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    habe folgendes problem:
    ich lese mim atmega32 über I2C messwerte eines sensors aus und schicke diese dann über RS232 an pc. mit ner experimentierplatine (atmega32 / starterkit und serieller übertragung auch über das starterkit. der MUX auf ner kleinen platine und den sensor mit netzteilen simuliert) hat alles wunderbar geklappt.

    jetzt setze ich die fertige platine ein, die ohne starterkit auskommt. sprich RS232 selbst verdrahtet. lese ich nun sensorwerte aus und schick sie an pc (egal mit welcher baudrate, kommt nur an:
    binär: 10000000 und 00000000

    auszug aus docklight mit dez zahlen:
    ... 000 128 000 000 128 128 128 000 128 000 000 ....

    kein erkennbares muster. finde keinen fehler in der programmierung (das programm hat ja schon funktioniert).

    kann es an der verdrahtung von RS232 liegen, dass er nur gleiche werte sendet??

    danke,
    freddy0815

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    38
    Beiträge
    4.255
    wenn di verdrahtung nicht passt, kommt mesit gar nichts an.

    es kann sein, dass die baudraten nicht passen. ne falle dabei sind zb die fusebits am mega32. wenn die im originalzustand sind, läuft er mit 1MHz. wenn du nun aber nen qurz mit 16MHz anschließt ohne ihn zu aktivieren, passt die baudrate natürlich nicht wenn du in deinem programm definierst dass der mega32 bei 16MHz läuft. test mal iobs daran liegtm, indem du in deinem avr-programm den takt mit 1MHz angibst...

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    25.11.2004
    Beiträge
    17
    ah! danke mal für den tipp! es kommen schon andere werte an. aber immernoch nicht die richtigen. nen externen quarz hab ich nicht angeschlossen. der interne ist mit 1mhz getaktet. programmiert ist auch 1mhz:

    .equ fck = 1000000
    .equ baudrate = 9600

    .equ baudconst = (fck / (baudrate * 16)) - 1


    ist es besser einen externen quarz zu verwenden? und wo steht welche baudrate mit welchem takt laufen sollte?

    freddy0815

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    38
    Beiträge
    4.255
    die berechnung im programm passt so... die einstellung im terminalprogramm am PC dann auch, oder?

    ein externen quartz hat den vorteil dass er genauer ist. der interen hat nen (temperaturabhängige) abweichung von ein paar prozent...

    wenn du es ganz exakt für die schnittstelle machen willst nimm eine "krummen" wert wie zb 14,746MHz. denn dann geht die formel von dir glatt auf, während bei deinen 1MHz fast 8% abweichung drin sind...

    aber auch das umstellen des internen takts auf 2, 4 oder 8MHz würde schon weitaus mehr genauigkeit bringen. denn dann beträgt der fehler nur noch 0,16%, und damit hatte ich noch nie probleme...

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    25.11.2004
    Beiträge
    17
    vielen dank für deine hilfe! es funktioniert. hab auch vergessen am terminalprogramm die 1mhz auszuwählen...so einen fehler macht man nur einmal.

    verwende jetzt: 8mhz und baudrate 38400.

    das sieht schon ganz gut aus. kann jetzt mit versuchen anfangen

    danke!!
    freddy0815

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen