Forum: Mikrocontroller und Digitale Elektronik Bascom/ Arduino/ Schnittstellen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Benjamin G. (speeddown)


Bewertung
0 lesenswert
nicht lesenswert
Hallo;
Ich habe da mal ein paar Fragen. Ich kann es mir nicht erklären und 
Google wohl auch nicht.

Ich habe bis her meine Atmega328P über das Arduino Programm geschrieben.
Habe so auch Stand Alone Modelle gebaut und auch so Attiny85 
programmiert.
Quasi Arduino as ISP.
Dann habe ich mir irgend wann so einen Adapter gebaut, womit ich quasi 
den Chip Atmega328P ohne Board programmieren kann. Hier ein Link wie es 
aussieht:
https://frag-duino.de/index.php/maker-faq/24-standalone-arduino-auf-einem-breadboard-aufbauen

Dieser beschreibt den Arduino ja über die serielle Schnittstelle RX/ TX.

Wo liegt darin jetzt der unterschied zur ICSP Schnittstelle 6-polig?
ICSP/I²C das gleiche?

Mit der Arduino IDE kann ich ihn programmieren.
Mit Basecom funktioniert das nicht mehr. Das Programm besteht quasi auf 
die ICSP Schnittstelle. Der Treiber ist doch ein CP2102.
In Basecom nehme ich als Programmer den STK500(native) ohne Erfolg.
Auch der Ardunio Programmer läuft nicht.
Entweder erkennt es den Chip gar nicht oder falsch oder es sind irgend 
welche Ports geschlossen die auf sein sollten...

Kann mir da generell mal jemand auf die Sprünge helfen?
Ich hoffe es versteht jemand, wo mein Problem liegt.

MFG
Benjamin

--

Überschrift korrigiert, damit man verstehen kann, worum es Dir geht:

Bascom, den Basic-Compiler

-rufus

: Bearbeitet durch Moderator
von Fred R. (fredylich)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Benjamin,

bitte Entschuldige meine Anfrage. Weist Du die Grundlagen der einzelnen 
Proger- Soft- Hardware ?
Jeden µC muss vorab (meist mit Hartware) gesagt werden „nun werde ich 
dich programmieren“.
Im AVR- Bereich ist es so das Reset-Pin auf 0 zu setzen.
Möchte dich aber nicht weiter verwirren.

Gruß

von Oberlajtnant (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wenn Du einen neuen, unbenutzten Atmega 328P gekauft hast, so mußt Du 
diesen erst einmal mit einem sog. Bootlader "bespielen". Erst dieser 
ermöglicht es später, ihn über RXD/TXD seriell zu programmieren.

Dazu benötigst Du aber ein Programmiergerät, was die ISP-"Signale"
MOSI
MISO
SCK
RESET und
GND

bereitstellt. Es soll sich auch ein Arduino mit dem entsprechendem 
Programm drauf (Sketch) dafür eignen. Näheres weiß ich darüber aber 
nicht, da ich mich mit Arduino-Software nicht befasst habe.

von Wolfgang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Benjamin G. schrieb:
> Dieser beschreibt den Arduino ja über die serielle Schnittstelle RX/ TX.

Nicht nur das. Auf dem Arduino läuft währenddessen ein Programm, dass 
die Daten von der seriellen Schnittstelle in Empfang nimmt und in den 
Flash-Speicher befördert - der Bootloader.

Das Beschreiben des Programmspeichers über den 6-polige ISP-Anschluss 
erfordert kein Programm auf dem uC.

von Rainer U. (r-u)


Bewertung
0 lesenswert
nicht lesenswert
Benjamin G. schrieb:
> Dieser beschreibt den Arduino ja über die serielle Schnittstelle RX/ TX.

unter Benutzung des Arduino-Bootloaders, der sich um die serielle 
Kommunikation kümmert.

Benjamin G. schrieb:
> Wo liegt darin jetzt der unterschied zur ICSP Schnittstelle 6-polig?

Die arbeitet per SPI und braucht keinen Bootloader, auch keinen 
rs232-Chip neben dem AVR.

Benjamin G. schrieb:
> ICSP/I²C das gleiche?

nein. I2C alias TWI ist wieder was anderes.

von Horst (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Als ICSP wird die Schnittstelle meist beim PIC bezeichnet, beim AVR ist 
die Bezeichnung ISP üblicher.

Für die ISP-Schnittstelle brauchst Du ein Programmiergerät, das hat den 
Vorteil, daß es auch funktioniert, wenn der Chip ganz neu ist.

Für die Programmierung über die serielle Schnittstelle, z.B. mit dem 
CP2102 Schnittstellenwandler, muß auf den AVR vorher ein Programm 
gebrannt werden, der sogenannte Bootloader.


Benjamin G. schrieb:
> ICSP/I²C das gleiche?

Nein, ISP ist fast das gleiche wie SPI, I2C oder TWI, wie Atmel selber 
es nennt, ist eine ganz  andere Schnittstelle.


Benjamin G. schrieb:
> In Basecom nehme ich als Programmer den STK500(native) ohne Erfolg.

Wenn Du Bascom sagst, Du benutzt einen STK500-Programmierer, dann mußt 
Du auch einen angeschlossen haben, klingt aber nicht danach.


Fred R. schrieb:
> meist mit Hartware

Autsch

von Fred R. (fredylich)


Bewertung
0 lesenswert
nicht lesenswert
Horst schrieb:
> Wenn Du Bascom sagst, Du benutzt einen STK500-Programmierer, dann mußt
> Du auch einen angeschlossen haben, klingt aber nicht danach.
>
> Fred R. schrieb:
>> meist mit Hartware
>
> Autsch

Autsch, Autsch das ist wirklich Hart. Hardware.

Wenn Du noch eine Parallelschnittstelle am PC hast ist STK200/300 das 
optimale.
Nutze ich heut noch sehr oft. Die Vorteile möchte ich aber hier nicht 
diskutieren.
Benötigst kein zusätzlichen Programmierer. Kommst auch elegant an die 
Fuseeinstellungen.
Auch wenn der Chip ganz neu ist.
Gruß

von Joachim R. (bastelbaer)


Bewertung
0 lesenswert
nicht lesenswert
Benjamin G. schrieb:

> Mit der Arduino IDE kann ich ihn programmieren.
> Mit Basecom funktioniert das nicht mehr. Das Programm besteht quasi auf
> die ICSP Schnittstelle. Der Treiber ist doch ein CP2102.
> In Basecom nehme ich als Programmer den STK500(native) ohne Erfolg.

Also wenn du ihn über die Arduino-IDE programmieren kannst, dann sollte 
es auch unter BASCOM gehen. Bei BASCOM gibt es den Programmertyp ARDUINO 
STK500V2. Damit flashe ich, wenn ich nicht meinen STK200 nutze, die 
Arduinos ohne grössere Probleme. Musst nur mal probieren ob die Baudrate 
57600 oder 115200 sein muss. Beim MEGA2560 auf jeden Fall 115200.

Die Ardu-IDE nutzt zum programmieren das AVRDUDE-Programm. Wenn du die 
erweiterte Ansicht aktivierst siehst du den Aufruf und die Parameter wie 
Schnittstelle und Baudrate.

Einen nagelneuen MEGA musst du, wie bereits beschrieben, erst mit dem 
Arduino-Bootloader versehen was auch über die Arduino-IDE geht. Da wird 
dann der ISP-Port benutzt der auf dem SPI aufsetzt. Entweder brauchst du 
einen Arduino oder es gibt in der Bucht billige USB MK2-Programmer für 
ein paar Euro die das erledigen.
Oder halt den guten alten STK200 Selbstbau via Parallelport. Das hab ich 
auch schon mit der der IDE gemacht. Muss man nur von Hand nachtragen.

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]
  • [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.