Go Down

Topic: Probleme mit Serieller Schnittstelle bei Selfmade-Platine (Read 407 times) previous topic - next topic

maker_berni

Hallo Leute,

nach langer Zeit mit dem Uno und dem Nano und einigen Prototypen aus Hartpapier, habe ich es gewagt und mir eine eigenständige PCB entworfen und bestellt. Den "Kern" bildet die Schematic angehaucht vom UNO. Mit dem feinen Unterschied das ich einen Atmega328-U verwende. OHNE P! Atmega328P-U
Soweit auch noch kein Problem. Ich habe ein eigenes board in "boards.txt" erstellt wie folgt:

Code: [Select]
##############################################################

atmega328bb.name=ATmega328

atmega328bb.upload.protocol=arduino
atmega328bb.upload.maximum_size=30720
atmega328bb.upload.maximum_data_size=2048
atmega328bb.upload.speed=57600

atmega328bb.bootloader.tool=arduino:avrdude
#atmega328bb.bootloader.tool=avrdude

atmega328bb.upload.tool=avrdude

atmega328bb.bootloader.low_fuses=0xE2
#atmega328bb.bootloader.low_fuses=0xFF
atmega328bb.bootloader.high_fuses=0xDA
atmega328bb.bootloader.extended_fuses=0xfd

atmega328bb.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F

atmega328bb.build.mcu=atmega328
atmega328bb.build.f_cpu=16000000UL
#atmega328bb.build.core=arduino:arduino
atmega328bb.build.core=arduino
#atmega328bb.build.variant=arduino:standard
atmega328bb.build.variant=standard
###Experimental name:
atmega328bb.build.board=AVR_BARE

##############################################################################

atmega88.name=ATmega88
 
atmega88.upload.protocol=arduino
atmega88.upload.maximum_size=7168
atmega88.upload.speed=19200
 
atmega88.bootloader.low_fuses=0xe2
atmega88.bootloader.high_fuses=0xdf
atmega88.bootloader.extended_fuses=0x00
atmega88.bootloader.path=atmega88
atmega88.bootloader.file=atmega/ATmegaBOOT_88_m88.hex
atmega88.bootloader.unlock_bits=0x3F
atmega88.bootloader.lock_bits=0x0F
 
atmega88.build.mcu=atmega88
atmega88.build.f_cpu=8000000L
atmega88.build.core=arduino
atmega88.build.variant=standard

##############################################################


Bootloader brennen funktioniert perfekt über den USBasp. Auch das Programmieren über USBasp.
Jetzt kommt der Haken:
Ich bekomme keine Serielle verbindung her. Weder über einen USB-TTL Umsetzer noch über einen Arduino als solchen verwendet. Den Reset setze ich händisch per Pushbutton. TX und RX sind richtig verbunden.

folgende Fehlermeldung spuckt die IDE aus:

Code: [Select]
avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\Berni\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino14/etc/avrdude.conf"

         Using Port                    : COM5
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x28
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x28
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x28
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x28
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x28
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x28
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x28
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x28
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x28
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x28

avrdude done.  Thank you.

Problem beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload.


Die serielle Schnittstelle wäre vorallem für den Debug nützlich. Weiters verwende ich UART auf der PCB und kann nicht sicher sein, ob dieser auch funktioniert.
Was kann ich tun?

LG

Tommy56

Weiters verwende ich UART auf der PCB und kann nicht sicher sein, ob dieser auch funktioniert.
Könntest Du bitte etwas genauer erklären, was Du damit meinst?

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

HotSystems

Am besten zeigst du uns ein Schaltbild deiner Platine, damit wir sehen können, was du gebaut hast.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Katsumi_S

Die serielle Schnittstelle wäre vorallem für den Debug nützlich. Weiters verwende ich UART auf der PCB und kann nicht sicher sein, ob dieser auch funktioniert.
Du verwendest aber nicht die Anschlüsse TX und RX die Du nach außen geführt hast auch auf der Platine zur Kommunikation?

Bitte Schaltplan zeigen.


Gruß, Jürgen

maker_berni

Danke für die schnellen Antworten! :)

Die TX/RX Pins trenne ich vom UART mittels Jumper. Schaltplan ist im Anhang.

maker_berni

Dazu sei noch gesagt, das der UART im Moment noch nicht aktiv ist. Später kommt ein ESP8266-12 (als Webserver) drauf, welcher per UART mit dem Atmega kommuniziert.

HotSystems

Lt. deinem Schaltbild hast dur RX und TX vertauscht/falsch angeschlossen.

Es muss RX von Atmega mit TX vom FTDI verbunden werden.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

noiasca

Später kommt ein ESP8266-12 (als Webserver) drauf, welcher per UART mit dem Atmega kommuniziert.
Bitte nein. Programmier den E12 direkt und lass den Atmega weg. Wenn du dir es einfach machen willst, nimm einen NodeMCU oder Wemos D1.
DE: Wie man Fragen postet:
1. was hat man (Sketch und Hardware)
2. was SOLL es machen
3. was macht es: IST (Fehlverhalten, Fehlermeldungen, Serial.Output ...)
4. Eine Frage stellen bzw. erklären was man erwartet

HotSystems

Bitte nein. Programmier den E12 direkt und lass den Atmega weg. Wenn du dir es einfach machen willst, nimm einen NodeMCU oder Wemos D1.

Naja...für die Zukunft ist das ok.
Erstmal lernen, mit dem Atmega richtig umgehen ist schon ok.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

maker_berni


Lt. deinem Schaltbild hast dur RX und TX vertauscht/falsch angeschlossen.

Es muss RX von Atmega mit TX vom FTDI verbunden werden.

Ich habe auch versucht die RX/TX Leitungen vom FTDI jeweils anders anzustecken.. leider selbes Ergebnis.

Bitte nein. Programmier den E12 direkt und lass den Atmega weg. Wenn du dir es einfach machen willst, nimm einen NodeMCU oder Wemos D1.

Ich verstehe den Ansatz, das nächste mal sicher eine Überlegung wert.

HotSystems

Ich habe auch versucht die RX/TX Leitungen vom FTDI jeweils anders anzustecken.. leider selbes Ergebnis.
Dann hast du noch einen anderen Fehler.

So jedenfalls ist deine UART falsch angeschlossen und kann nicht funktionieren.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

maker_berni

Dann hast du noch einen anderen Fehler.

So jedenfalls ist deine UART falsch angeschlossen und kann nicht funktionieren.

Ich werde das nochmal gegenprüfen, vielen Dank!
An den Fuses im board.txt kann es nicht liegen oder? Bin mir bei dieser Spezifikation nicht 100% sicher.

HotSystems

Ich werde das nochmal gegenprüfen, vielen Dank!
An den Fuses im board.txt kann es nicht liegen oder? Bin mir bei dieser Spezifikation nicht 100% sicher.
Poste doch mal einen Link zum Datenblatt des Atmega328-U.
Den kann ich nicht finden.
Evtl. ist da noch ein Problem.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

maker_berni

Poste doch mal einen Link zum Datenblatt des Atmega328-U.
Den kann ich nicht finden.
Evtl. ist da noch ein Problem.

Findest du im Anhang. "Atmega328/P" soll wohl heißen, dass es für beide Typen gültig ist..

HotSystems

Ich kann auch nur den Atmega328-PU finden, meinst du den ?
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Go Up