Go Down

Topic: Atmega 8 Board und mySmartUSB (Anfängerfragen) (Read 3109 times) previous topic - next topic

PopoPirat

Also die Kombination von ATmega8 und mySmartUSB-Programmer und Arduino-IDE und wenig Erfahrung ist möglicherweise nicht ganz ideal - finde ich.

Der ATmega8 wird nicht von Haus aus von der IDE unterstützt. Es ist zwar möglich ihn zu verwenden, aber nur mit ein paar "Kunstgriffen" - nicht sooooo anfängertauglich.

Den mySmartUSB-Programmer kann man zwar mit der Arduino-IDE verwenden, es ist aber auch ein kleiner "Kunstgriff" nötig, damit es funktioniert (bei BASCOM wird er übrigens direkt unterstützt). Auch das ist nicht soooo anfängertauglich.

Es könnten also ein paar Frustrationen "vorprogrammiert" sein. :)
das meinte ich

HotSystems

das meinte ich
Ah, ok.

Also mit dem "mySmartUSB-Programmer" habe ich auch keine Erfahrung, somit scheint das tatsächlich eine Hürde zu sein.

Hier wurde er offensichtlich zum Laufen gebracht. Notfalls einen anderen (USBasp) besorgen, der auch funktioniert.

Wenn ein Bootloader drauf ist, geht es auch mit einem USB-Serial-Wandler.


Gruß Dieter

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

uxomm

#17
Aug 15, 2016, 06:15 pm Last Edit: Aug 15, 2016, 06:25 pm by uxomm
Ich glaube, der gemeinte Kollege bin ich.

Also um den mySmartUSB-Programmer* mit der Arduino-IDE verwenden zu können, muss man in "programmes.txt" einen Eintrag ändern bzw. einen zusätzlichen Eintrag erzeugen.
"programmers.txt" ist Teil der Arduino-IDE.
Das "interessante" daran ist, dass diese Datei gleich an mehreren Stellen zu finden ist.
Je nach Betriebssystem (ich meine damit im Speziellen mal "Windows-Version") und Arduino-IDE kann das an verschiedenen Stellen sein. Aber nur eine dieser Dateien ist die "relevante".

Zum Beispiel hier:
C:\Dokumente und Einstellungen\user\Anwendungsdaten\Arduino15\packages\arduino\hardware\avr\1.6.5\programmers.txt

Am einfachsten: Man startet eine Suche auf der gesamten Festplatte und nimmt die folgenden Veränderungen in allen gefundenen Dateien "programmers.txt" vor (zur Sicherheit vorher eine Kopie sichern).

Hintergrund:
Der Progammer mySmartUSB hängt "über USB" an der seriellen Schnittstelle und emuliert (unter anderem) einen stk500v2 Programmer.
So eine Kombination gibt es leider unter den "normalen" Programmern der Arduino-IDE nicht (es gibt nur welche mit skt500v1).

Eintrag verändern
Am aller einfachsten ist, du veränderst den ersten Eintrag, den du in "programmers.txt" findest.
Der Original-Eintrag:
Code: [Select]
avrisp.name=AVR ISP
avrisp.communication=serial
avrisp.protocol=stk500v1
avrisp.program.protocol=stk500v1
avrisp.program.tool=avrdude
avrisp.program.extra_params=-P{serial.port}


Der gänderte Eintrag (für mySmartUSB)
Code: [Select]
avrisp.name=AVR ISP
avrisp.communication=serial
avrisp.protocol=stk500v2
avrisp.program.protocol=stk500v2
avrisp.program.tool=avrdude
avrisp.program.extra_params=-P{serial.port}

Also das stk500v1 wurde durch stk500v2 ersetzt.

Als Programmer stellst du dann für deinen mySmartUSB einfach den "AVR ISP" ein. 

Zusätzlicher Eintrag
Du kannst natürlich auch einen eigenen Programmer-Eintrag für "deinen" Programmer machen.
Zum Beispiel so:
Code: [Select]
mySmart.name=mySmartUSB
mySmart.communication=serial
mySmart.protocol=stk500v2
mySmart.program.protocol=stk500v2
mySmart.program.tool=avrdude
mySmart.program.extra_params=-P{serial.port}


Dann gibt es (nach Neustart der IDE) einen Zusätzlichen Eintrag bei den Programmern, nämlich "mySmartUSB".

Alles bezieht sich auf die Arduino-IDE 1.6.x. Für andere Versionen sind teilweise abweichende Einräge nötig.


----------------------------
*) Es gibt ja mehrere mySmartUSB Programmer:
mySmartUSB MK2
mySmartUSB MK3
mySmartUSB light
den letzten verkauft z.B. auch Conrad in seinen Läden, welhalb er eine gewisse Verbreitung hat. Ich beziehe mich auf eben diesen, weil ich auch so einen besitze und ihn erfolgreich zur Zusammenarbeit mit der Arduino-IDE gebracht habe :)


Always decouple electronic circuitry.

PopoPirat

habe meinen auch vom conrad geklauft dann wird das schon passen.

vielen dank! sobald das board fertig ist werde ich es testen.

muss ich denn quarz dann austauschen in ein größeren?

HotSystems

habe meinen auch vom conrad geklauft dann wird das schon passen.

vielen dank! sobald das board fertig ist werde ich es testen.

muss ich denn quarz dann austauschen in ein größeren?
Der Quarz hängt davon ab, welche Fuses du "brennst".

Ich würde dir einen 16 MHz Quarz empfehlen.
Gruß Dieter

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

uxomm

#20
Aug 15, 2016, 06:38 pm Last Edit: Aug 16, 2016, 01:37 am by uxomm
muss ich denn quarz dann austauschen in ein größeren?
Ich würde auch einen 16 MHz Quarz empfehlen (und 2 x 22 pF Karamikkondensatoren) - siehe Schaltbilder der Links von #8.

Übrigens ist das in dem Schaltbild, das du in #9 verlinkt hast kein Quarz sondern ein Keramik-Resonator, glaube ich (Edit: Falsch, es handelt sich um einen kompletten Oszillator). Ein Quarz hat nur 2 Anschlüsse ein Resonator hat 3 (Edit: Ein "kompletter Oszillator" hat auch 3 Anschlüsse).

Ein 16 MHz Resonator geht auch, ist ein wenig ungenauer (als ein Quarz) - das spielt aber kaum eine Rolle.
Always decouple electronic circuitry.

HotSystems

Ich würde auch einen 16 MHz Quarz empfehlen (und 2 x 22 pF Karamikkondensatoren) - siehe Schaltbilder der Links von #8.

Übrigens ist das in dem Schaltbild, das du in #9 verlinkt hast kein Quarz sondern ein Keramik-Resonator, glaube ich. Ein Quarz hat nur 2 Anschlüsse ein Resonator hat 3.

Ein 16 MHz Resonator geht auch, ist ein wenig ungenauer (als ein Quarz) - das spielt aber kaum eine Rolle.
Richtig, die Kondensatoren hab ich vergessen zu erwähnen.

In der Schaltung (Link) ist es sogar ein kompletter Oszillator.
Der hat auch einen Spannungsanschluss.


Gruß Dieter

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

michael_x

Quote
muss ich denn quarz dann austauschen in ein größeren?
Kannst du nach einem ähnlichen Verfahren wie die programmers.txt in der boards.txt anpassen

Entweder ein extra Eintrag durch copy/paste und Namens-Änderung, oder einen vorhandenen nur modifizieren:

my4MHzboard.f_cpu=4000000L

In boards.txt wären auch andere Anpassungen erforderlich, wenn du deinen atmega8 statt des atmega328 behalten willst.

Aber, wie gesagt, 16 MHz Quarz + 2*18pf Kondensatoren wie im bereits erwähnten Link
http://www.gammon.com.au/breadboard
und du könntest in der IDE behaupten, es sei ein echter "Uno".

PopoPirat

https://www.conrad.de/de/quarzoszillator-serie-tft-680-tft680-frequenz-4-mhz-bauform-dip-14-l-x-b-207-mm-x-131-mm-158100.html

ist das kein quarz? genau den hab ich den wollte ich nur austauschen da mein schönes selbst erarbeitetes platinen design :-) schon fertig ist (es fehlen nur eben die buchsenleisten aber rest ist alles schon verlötet)


Leopoldi

Hallo
für den 328 und den "mySmartUSB Light" hab ich mir mal was aufgeschrieben.


Ebenso funktioniert bei mir auch einen Sketch aus der Arduino IDE über einen USB seriell Wandler auf einen Standalone zu laden.
Guckst du hier:
http://www.frag-duino.de/index.php/maker-faq/24-standalone-arduino-auf-einem-breadboard-aufbauen
Ich habe allerdings einen (ungepolten) 220nF statt des 1µF genommen.

Was ich noch nicht weiß?
?? In beiden Fällen muss der Bootloader vorhanden sein.
?? Der aus der Arduino IDE aufgespielte Bootloader setzt die Fuses.
?? In welchen Fällen wird der Bootloader wieder gelöscht



PopoPirat

Kannst du nach einem ähnlichen Verfahren wie die programmers.txt in der boards.txt anpassen

Entweder ein extra Eintrag durch copy/paste und Namens-Änderung, oder einen vorhandenen nur modifizieren:

my4MHzboard.f_cpu=4000000L

In boards.txt wären auch andere Anpassungen erforderlich, wenn du deinen atmega8 statt des atmega328 behalten willst.

Aber, wie gesagt, 16 MHz Quarz + 2*18pf Kondensatoren wie im bereits erwähnten Link
http://www.gammon.com.au/breadboard
und du könntest in der IDE behaupten, es sei ein echter "Uno".
sorry für den doppelpost:

heißt das mit einer geäönderten txt kann ich auch meinen atmega 8 behalten? könnte dann gleich was testen heute abend deswegen die frage.

Serenifly

#26
Aug 15, 2016, 07:02 pm Last Edit: Aug 15, 2016, 07:06 pm by Serenifly
https://www.conrad.de/de/quarzoszillator-serie-tft-680-tft680-frequenz-4-mhz-bauform-dip-14-l-x-b-207-mm-x-131-mm-158100.html
Das ist ein Oszillator. Den versorgt man mit 5V und der gibt dann von sich das Signal aus. Weiß nicht wie man da die Einstellungen anpassen muss (vielleicht muss man nur die Frequenz ändern), aber irgendwie wird es gehen.

Aber normal ist ein Schwingquarz und zwei Lastkondensatoren. Der wird dann mit 2 Pins (statt einem wie beim Oszillator) angeschlossen und bildet mit der internen Beschaltung des Controllers einen Schwingkreis.

combie

Quote
?? In beiden Fällen muss der Bootloader vorhanden sein.
Die Frage verstehe ich nicht!
Aber ja, wenn man den ATMega mit einem USB Serial Adapter beschreiben will, brauchts einen Bootloader darauf.

Quote
?? Der aus der Arduino IDE aufgespielte Bootloader setzt die Fuses.
Du drückst auf Bootloader brenne, dann werden erst die Fuses gesetzt, und dann der Bootloader geschrieben.
Also nein!
Der Bootloader kann keine Fuses setzen.

Quote
?? In welchen Fällen wird der Bootloader wieder gelöscht
Wenn du das Anwendungsprogramm per ISCP aufspielst.
Dann solltest du aber auch die Fuses wieder passend dazu setzen.
Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

combie

Quote
Weiß nicht wie man da die Einstellungen anpassen muss (vielleicht muss man nur die Frequenz ändern), aber irgendwie wird es gehen.
Ja, das geht!
Da muss man die Fuses anpassen.
Und die Frequenz in der boards.txt.
Und es wird ein Pin frei.
Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

Serenifly

Das dürfte dann "ext. Clock" sein, oder? (eine der oberen drei Optionen)

http://www.engbedded.com/fusecalc/

Go Up