Forum: Mikrocontroller und Digitale Elektronik Atmega48/88/168 ISP Programmer und RS232 über eine Buchse


von Thorsten S. (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

ich bastel mal wieder an einer Kleinigkeit rum. Es ist ein Atmega168 mit 
ein bissl Display und Tasterzeugs drum rum in einem Gehäuse. Ich habe 
auch eine Programmierbuchse mit eingebaut in die ich meinen Programmer 
stöpseln kann.

Wenn ich nun alles soweit programmiert habe, habe ich mir gedacht, 
könnte ich diese Buchse ja für InfozweckeAusgaben als RS232 nutzen.

Jetzt kam mir in den Kopf die Leitungen doppelt zu nutzen und dazu habe 
ich 2 Fragen:

1) kann das so gehen, also dass ich diese Verbindungen so am Atmega 
dauerhaft anbringe? Ich hoffe das es während der Programmierung nicht 
stört, da ich davon ausgehe dass alle anderen Pins eh hochohmig sind, 
und während der normalen Nutzung schalte ich die entsprechenden SPI Pins 
dann hochohmig.

2) Ich habe das mal für einen Atmega128 gemacht, nur das man dort gleich 
sowieso zur Programmierung mit dem ISP die RS232 Pins (RXD und TXD) 
nutzen muss, und nicht die SPI Pins, warum auch immer... Ich würde das 
ganze gern funktionskompatibel haben, deswegen meine Frage, ist MISO am 
Atmega168 ein Dateneingang oder Datenausgang während der 
Programmierphase (Master In Slave Out) ich gehe mal davon aus dass der 
Chip während der Programierung der Slave ist, dann müsste es also der 
Datenausgang des Chips sein...So wie ich das sehe ist TXD beim Atmega128 
ja auch der Datenausgang des Atmegas128 während der 
Programmierphase...Demnach sollte das auf meiner Zeichnung 
richtungsrichtig verbunden sein, sodass ich den Adapter (RS232 Wandler) 
auch für ein späteres Atmega128 Projekt nutzen könnte, oder?

Gruß,
Thorsten

von Hannes (Gast)


Lesenswert?

Hi,

schau mal beim Atmega128 auf seite 80, da steht:

PE1 PDO/TXD0 (Programming Data Output or UART0 Transmit Pin)
PE0 PDI/RXD0 (Programming Data Input or UART0 Receive Pin)

Gruß,
H.

von Oliver J. (skriptkiddy)


Lesenswert?

Warum nicht einfach 2 Kontakte mehr?

von Frank K. (fchk)


Lesenswert?

Thorsten S. schrieb:

> 1) kann das so gehen, also dass ich diese Verbindungen so am Atmega
> dauerhaft anbringe? Ich hoffe das es während der Programmierung nicht
> stört, da ich davon ausgehe dass alle anderen Pins eh hochohmig sind,
> und während der normalen Nutzung schalte ich die entsprechenden SPI Pins
> dann hochohmig.

Du könntest auch Multiplexer oder HC125/HC126 nehmen und zwischen ISP 
und UART hin- und herschalten. Die Umschaltung machst Du mit /RESET. Nur 
wenn /RESET low ist, ist auch ISP aktiv, bei /RESET high läuft der 
Prozessor, und die UART-Pins sind aktiv. So kannst Du das SPI auch für 
andere Dinge noch verwenden.

Ich mache das ganz gerne mit HC125/HC126. Das sind Puffer mit Enable, 
wobei bei einem das enable aktiv high ist und beim anderen aktiv low.

fchk

von Michel (Gast)


Lesenswert?

Warum programmierst du deinen µC nicht direkt per Bootloader über die 
RS232. Das spart irgendwelche Umschaltereien und den Programmer.
MfG

von Frank K. (fchk)


Lesenswert?

Michel schrieb:
> Warum programmierst du deinen µC nicht direkt per Bootloader über die
> RS232. Das spart irgendwelche Umschaltereien und den Programmer.

Und wo bekommst Du die mit Deinem Bootloader programmierten Controller 
her? Was machst Du bei einem zerschossenen Bootloader? Ach ja, ich weiß: 
ein dummes Gesicht.

Mann, ein HC125/HC126-Pärchen liegt im Centbereich. Das lohnt nicht, 
sich da irgendeinen großen Kopf drum zu machen.

fchk

von Thorsten S (Gast)


Lesenswert?

Hey,

danke für die Antworten.

Ich habe in dem Gerät eine Buchse mit 6 Pins, das ist alles festgelegt, 
da kann ich leider keine 2 mehr hinzufügen.

Danke für den Tip mit den Gattern, für den Fall das es nicht geht, habe 
ich schon etwas im Gepäck, ich denke ich werde das morgen einfach mal 
mit gebrückten Pins versuchen... :-)

Bootloader passt nicht mehr rein...

Danke für die Infos zum Atmega128, dort steht klar was im 
Programmierfall RX und was TX ist, aber wie ist das beim SPI 
Programmieren, was ist die Datenleitung aus dem Programmer raus, und 
welche führt rein? Wer ist Master, wer ist Slave? MISO MOSI... ?Wenn der 
Programmer im Programmierfall Master ist, was mir logisch scheint, dann 
wäre MISO am uc doch datenausgang, oder?

Gruß,
T.

von Hannes (Gast)


Lesenswert?

Beitrag "Programmierung von ATmega128"

Datenblatt Atmega128 Seite 300.

H.

von Hannes L. (hannes)


Lesenswert?

Hannes schrieb:
> Beitrag "Programmierung von ATmega128"
>
> Datenblatt Atmega128 Seite 300.
>
> H.

Das weiß ner selbst, es geht nicht um den Mega128 sondern um den 
Mega168!

Der Programmer ist Master, der AVR ist Slave. MOSI am AVR ist Eingang, 
MISO am AVR ist Ausgang. Ist auch im Datenblatt (doc2545.pdf) im Kapitel 
Serial Downloading in Figure 27-7 auf Seite 297 nachzulesen.

...

von Thorsten S. (whitejack)


Lesenswert?

Hi zusammen,

habe das jetzt ausgetestet. Die "Parallelschaltung" von Mosi B3 & RX D0 
sowie Miso B4 mit TX D1 ist kein Problem beim Programmieren. Man kann 
sogar einen Max232 dauerhaft mit dran hängen, es stört nicht bei der 
Programmierung mit MKII.

So bekommt man also über einen Stecker 2 Schnittstellen (SPI zum 
Programmieren) und (232 zum Kommunizieren) über die gleichen Pins aus 
dem Gerät. Man kann also zum Programmieren den Programmer dran hängen 
und später Rs232 Kommunikation machen.

Gruß,
T.S.

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.