Forum: Mikrocontroller und Digitale Elektronik Beschaltung MEGA128 mit ISP und UARD0


von Thomas S. (thomass)


Lesenswert?

@all,

ich habe einen MEGA128 und layoute gerade mein Board nun bin ich bei der 
ISP Schnittstelle hängengeblieben.
Diese ist beim Mega128 an TX0(PE1),RX0(PE0) und SCK(PB1) angeschlossen.
Nun benötige ich auch die Serielle Schnittstelle UART0 um mit dem PC zu 
kommunizieren.
Die zweite Schnittstelle ist auch im gebrauch.
Wie muss ich nun den MAX232 und den ISP Stecker anschliessen kann ich 
das alles einfach verbinden oder muss ich hier eine Schutzbeschaltung 
machen.
Habe hier im Forum einen Beitrag gefunden bei dem ein Widerstand in 
Reihe zum Max geschaltet wird.
Wollte nur den alten Beitrag nicht wieder hochholen aber hier mal der 
Link.#

Beitrag "ATmega128 ISP-Pins beschaltung"

Habe auch schon eine Beschaltung mit einem MAX3222 gesehen wo man 
mittels Lötjumper die Verbindungen gesetzt werden müssen befor die 
Schnittstelle funktioniert.

Dank für Eure Anregungen.

Thomas

von katzeklo (Gast)


Lesenswert?

Bootloader

von spess53 (Gast)


Angehängte Dateien:

Lesenswert?

Hi

Im Anhang eine Appnote von Atmel.

MfG Spess

von Thomas S. (thomass)


Lesenswert?

@ katzeklo,

Bootloader möchte ich nicht verwenden.

@spess53,

ich habe diese note schon gesehen in der ein Widerstand in Reihe zum SPI 
Bus eingesetzt ist.
Nur habe ich nichts gefunden was beschreibt wie zu verfahren ist wenn 
ich die TX RX leitungen beschalte.
Wenn ich nun zwischen uC RX TX und MAX232 Widerstände einlöte und die 
ISp Schnittstelle direkt mit dem uC verbinde ist das dann OK.
Welche Wert muss ich für die Widerstände nehmem?
Bin ich dann bei der Wahl der BAUD Rate eingeschränkt bzw. muss ich 
etwas beachten?

Eventuell hatte ja schonmal wer dieses Problem und eine Lösung hierzu.

Im Notfall setze ich zwei Jumper.

Gruß

Thomas

von katzeklo (Gast)


Lesenswert?

>Bootloader möchte ich nicht verwenden.

Why?

von Thomas S. (thomass)


Lesenswert?

katzeklo wrote:
>>Bootloader möchte ich nicht verwenden.
>
> Why?

Das Hat mehrere Gründe.

1. Mein Programm ist zu 97% fertig und es müssen eigentlich nur noch 
Anpassungen gemacht werden.
2. Das Gerät ist nicht mit einem PC verbunden es sollen nur ab und an 
Daten ausgelesen werden.
3. Ich habe mich noch nicht mit einem Bootloader beschäftigt und möchte 
dies auch für dieses Projekt nicht tun da mir die Zeit fehlt und es auch 
meines erachtens nicht notwendig ist zumindest bei meinem jetzigem 
Projekt.

Sollte ich bei späteren Projekten öfters proggen müssen ist dies dann 
eine Option.

Thomas

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

UART1 ist auch keine Option?  Das ist bei uns immer der Default, weil
man damit genau diesen Spagat umgeht.  (Wobei wir am Ende eh' nur über
JTAG flashen...)

von spess53 (Gast)


Lesenswert?

Hi

>Welche Wert muss ich für die Widerstände nehmem?
>Bin ich dann bei der Wahl der BAUD Rate eingeschränkt bzw. muss ich
>etwas beachten?

1.Hängt wahrscheinlich auch vom Programmer ab. Aber schätzungsweise 
1..2k sollten reichen.

2. Warum sollte es da Einschränkungen geben.

MfG Spess

von Jens (Gast)


Lesenswert?

Wie wäre ein vom Reset gesteuerter Multiplexer,
der die Signale zwischen ISP und UART umschaltet?

Jens

von Jens (Gast)


Lesenswert?

Ups, habe gerade noch einmal nachgschaut und in der Quelle
für diese Idee gab es ein extra Signal, welches aktiv wurde
wenn ISP-Programmiert wurde. Offensichtlich bleibt der
Controller während des programmierens nicht die gesamte Zeit
im Reset, sonst könnte man das wirklich vom Reset abhängig
machen.

Jens

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Jens wrote:

> Offensichtlich bleibt der
> Controller während des programmierens nicht die gesamte Zeit
> im Reset, sonst könnte man das wirklich vom Reset abhängig
> machen.

Normalerweise sollte er schon im Reset bleiben.

von Thomas S. (thomass)


Lesenswert?

@Jörg,

JTAG währe noch eine Option.
Ich werde es mal mit zwei in Reihe geschalteten Widerständen von 1k 
probieren und im Layout zur Sicherheit noch zwei Jumper vorsehen wo ich 
im Notfall zwei Jumper setzen kann jenachdem was ich machen will.

Werde nochmals über die Ergebnisse berichten.

Thomas

von Thomas S. (thomass)


Lesenswert?

Ups vergessen! :-)

@ Jörg,

Ich brauche beide Schnittstellen da die eine zum auslesen der Daten 
gedacht ist und die zweite kontinuierlich Slaves im RS485 Bus ausliest.
Somit bräuchte ich schon beide Schnittstellen.

Thomas

von Ja mann (Gast)


Lesenswert?

>Normalerweise sollte er schon im Reset bleiben.
Naja, 1x Reset zum schreiben, 1x zum lesen (verify), am prinzipiell 
natürlich schon.
>sonst könnte man das wirklich vom Reset abhängig machen.
Wie auch immer, es funktioniert definitiv, das RESET Signal als 
Umschaltsignal zwischen RXD und MOSI (PDI) zu verwenden. Bei den Designs 
bei denen ich eh ein CPLD mit drauf habe, lasse ich das durch selbigen 
gleich erledigen, ansonstenten hilft ein TTL Käfer (Bezeichnung weiß ich 
gerade nicht auswendig), oder einfach ein Jumper zum umjumpern. Zum 
Programmieren muss man halt dann immer kurz den Jumper umsetzen, ist 
aber je nach Anwendungsfall auch nicht tragisch.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.