Hallo,
habe das Eval-Board bekommen und wollte es zunächst auf Funktion testen
- hab es nicht selber aufgebaut.
Habe die Software von Pollin geladen und in Bascom AVR die dat in
m640def.dat geändert, kompelliert und mit PonnyProg das Programm
geflasht.
Die beiden LEDs gehen mit dem Taster 1 und 2 an, doch bei Taster 3
sollte der Summer ja für 0.5 Sek summen, doch bei mir klackt er nur 2
mal.
Es sollte auch eine Nachricht via RS232 kommen, also ran an einen
seriellen Port und gelauscht.
Hab 232Analyzer und HTerm probiert und bekomme trotz Setzung auf ASCII
Empfang soetwas heraus:
<(80)><NUL><(80)><NUL><(80)><(80)><(80)><(80)><(80)><(80)><(80)><(80)><N
UL>
<(80)><NUL><(80)><(80)><(80)><(80)><(80)><NUL><(80)><(80)><NUL><(80)><NU
L>
<(80)><(80)><(80)><NUL><(80)><NUL><(80)><(80)><(80)><(80)><(80)><(80)>
<(80)><NUL><(80)><NUL><(80)><(80)><(80)><NUL><(80)><(80)><(80)><(80)><(8
0)>
<NUL><(80)><(80)><(80)><(80)><(80)><NUL><NUL><NUL><(80)><(80)><(80)><(80
)>
<(80)><NUL><(80)><NUL><NUL><(80)><NUL><NUL><(80)><(80)><(80)><NUL><NUL>
<(80)><NUL>
Als Dezimal sowas:
128 000 128 000 128 128 128 128 128 128 128 128 000 128 000 128 128 128
128 128 000 128 128 000 128 000 128 128 128 000 128 000 128 128 128 128
128
128 128 000 128 000 128 128 128 000 128 128 128 128 128 000 128 128 128
128
128 000 000 000 128 128 128 128 128 000 128 000 000 128 000 000 128 128
128
000 000 128 000
Was ist das? Ist das Board oder mein ATmega644 defekt?
Viele Grüße
Max
Max schrieb:> sollte der Summer ja für 0.5 Sek summen, doch bei mir klackt er nur 2> mal.
Dann hast Du statt des aktiven Summers einen passiven Summer bekommen.
Überprüf' das mal mit einer LED mit Vorwiderstand.
Max schrieb:> Ist das Board oder mein ATmega644 defekt?
Naja, das hat zwar einige Konstruktionsmängel, ich vermute aber mal,
dass Dein Takt nicht stimmt. Stichwort CLKPR.
...
Was meinst du mit Konstruktionsmängeln? Also laut Datenblatt sollte ein
AC Summer drauf sein.
Achja ich bin ja im IC6 Sockel da gibt es nur den 16kHz und es war im
Code auf 8kHz eingestellt.
Hab das mal auf 16 gesetzt, doch geändert hat es nix.
Jetzt bekomm ich nurnoch:
<NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><N
UL>
>NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><N UL>
<NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><N
UL>
<NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><N
UL>
<NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><N
UL>
<NUL><NUL><NUL><NUL>
bzw:
000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
000
000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
000
000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
000
000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
000
000 000 000
>Jetzt bekomm ich nurnoch:>><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL>< NUL>
<NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><N
UL>
<NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><N
UL>
<NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><N
UL>
<NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL><N
UL>
<NUL><NUL><NUL><NUL>
Ist doch super, der UART läuft;) Sonst würdest du gar nichts sehen.
Jetzt noch fix die Baudrateneinstellung passend zum CPU Takt machen
und fertig ist die Laube.
Sollte 9600 sein. Einfach mal durchtesten? Ich hab noch einen
ATmega8-16PU, doch weiß nicht, welche def Datei ich für den nehmen muss.
Und warum geht einfach der Summer nicht? Hab leider keine LED, welche so
laufen würde - nur weiße mit >4V @ >25mA, was den IC schießen würde.
>Sollte 9600 sein. Einfach mal durchtesten?
Oh man, deine nagelneue CPU läuft ab Werk mit 1MHz
internem Takt. Du musst die Fuses auf Crystal Osc
ändern. NICHT AUF EXTERN CLOCK! Dann noch die CKDIV8
Fuse löschen und gut.
>Und warum geht einfach der Summer nicht?
Weil der nicht mit Gleichstrom läuft.
Du musst den Pin immer wieder ein/ausschalten damit
der einen Ton von sich gibt.
Also bei einer Baud-Rate von 600 erhalte ich
Data received: Atmel-Eva
Data received: lua
Data received: tio
Data received: n-Board<CR><LF>
Aber warum so eine langsame Rate? Das sollten 9600 Baud sein.
Die <CR><LF> stimmen aber weiterhin nicht.
Was auch auffällt:
Wenn ich den Taster für den Summer drücke, klackt es einmal ganz leise,
dann passiert 3 Sekunden nix, es klackt wieder leicht und dann kommt
erst die Ausgabe.
Das sollte alles viel schneller ablaufen :(.
> Oh man, deine nagelneue CPU läuft ab Werk mit 1MHz> internem Takt. Du musst die Fuses auf Crystal Osc> ändern. NICHT AUF EXTERN CLOCK! Dann noch die CKDIV8> Fuse löschen und gut.
Also im Testcode steht nur:
$crystal = 16000000 'definieren
des verwendeten externen Quarz (8MHz)
> Weil der nicht mit Gleichstrom läuft.> Du musst den Pin immer wieder ein/ausschalten damit> der einen Ton von sich gibt.
Jup das dacht ich mir - hab mich schon gewundert, wie das ganze
Überhaupt funktionieren soll, doch laut des Testprogramms wird der Port
einfach nur auf high gelegt und nichts geschalten!?
1
Beep: 'Untermenü "Beep"
2
3
Portd.7 = 1 'setzte den Pin 7 von Port D auf high
4
Waitms 500 'Warte 500 ms
5
Portd.7 = 0 'setzt den Pin 7 von Port D auf low
6
7
Return 'zurück zum Hauptmenü
8
9
Textausgabe: 'Untermenü "Textausgabe"
10
11
Print "Atmel-Evaluation-Board" 'Sende den Text in den Anführungszeichen über RS232 zum PC
>Also im Testcode steht nur:>>$crystal = 16000000 'definieren
Du kannst in deinem Testcode schreiben was du willst. Das
ändert die Fuses nicht. Das musst du beim programmieren/brennen machen.
Der ist nicht von mir, sondern von Pollin oder wem anders :).
Hab das Board bekommen und wollte erstmal testen, ob es funktioniert und
dem ist wohl nicht ganz so, oder das Manual mit der Bemerkung:
"nur die .dat an den Preozessor anpassen"
ist falsch.
Ändert aber nix daran, dass dein µC offenbar nicht mit 16Mhz läuft,
sondern mit den von Atmel vorgegbenen Default 1Mhz.
Mach kein Drama draus, stell die Fuse auf ext. Crystal und gut ists.
>Mach kein Drama draus, stell die Fuse auf ext. Crystal und gut ists.
Vorher vieleicht mal
$crystal = 1000000 'definieren
ausprobieren bevor er die CPU über die Fuses für
lange Zeit schlafen legt;)
Dann gibt es wenigstens ein erstes Erfolgsergebnis.
Max schrieb:> Ich dachte das macht der Befehl:>> $crystal = 16000000
Der informiert BASCOM darüber, wie schnell der µC läuft.
Und wenn du BASCOM weiß machst, dass der µC mit 16Mhz läuft, dann sollte
der auch wirklich mit 16Mhz laufen. Denn sonst berechnet BASCOM diverse
Zeitkonstanten falsch. Und dann passier genau das, was du gesehen hast:
Alles was von exakten Zeiten abhängig ist, funktioniert nicht richtig.
Hm ich hab keine Ahnung, wie man bei dem Teil den Takt einstellt. Dann
liest man was von Defaulteinstellungen, welche ungünstig sind und hier
und da überall Fallen.
Da kann man ja nur wegrennen - ich lass das erstmal liegen und bau an
meinem Freescale weiter.
Max, schick's zurück...
Da hat sich Max nun ein Smartboard gekauft und die Original-App läuft
nicht. Dies ist ein Mangel, der die Rückgabe erlaubt.
...
Max schrieb:> Da kann man ja nur wegrennen - ich lass das erstmal liegen und bau an> meinem Freescale weiter.
Wenn du meinst, dass du bei dem ohne Studium des Datenblattes
durchkommst ...
Was'n das Problem?
* µC anhängen
* Fuses einlesen
* mit dem Datenblatt vergleichen
* aus dem Datenblatt die gewünschte Konfiguration ablesen
* einstellen (durchs vergleichen im Schritt 3 kriegt man raus, ob in die
Checkboxen Häkchen sollen oder nicht)
* Brennen
* Fertig
Kauf dir halt einen gescheiten Brenner, der von BASCOM unterstützt wird
und nimm nicht dieses PonyProg Geraffel, wenn dir das zu kompliziert
ist.
Hi
Na ja, auch ein "gescheites" Board nimmt das Denken nicht ab. Es ist
halt nicht so, das man einen µC kauft, ein Testprogramm drauf schreibt
und alles ist roger...
Fangen wir mal ganz von vorn an: Was ist ein µC ? Wie funktioniert er ?
Was sind binäre Ein- und Ausgaben ? Welche Möglichkeiten zur Fehlersuche
hab ich ? Was ist eine Programmiersprache, was ein Compilat ?
Daher: Wie arbeitet AVR-Studio und wozu braucht es PonyProg ?
Wenn du ein Spielzeug brauchst, was gleich funktioniert, dann kauf ein
ferngesteuertes Auto, aber keinen Bausatz. Kaufst du einen BAusatz, dann
kommt der Spieltrieb erst zum Zug, wenn du das Teil zusammengeschraubt
und geklebt hast. Wenn du da auch gleich die Geduld verlierst, wird's
nix mit dem Spieltrieb. So ist's iauch mit der Arbeit mit den µC's. Sie
wollen deine Zeit. Nicht ne halbe Stunde, das reicht vielleicht für'n
kleinen Flirt. Ein Controller will deine ganze Freizeit........ und wenn
du gut sein willst, bist du auch bereit, auf so manches schone
romantische Zusammensein mit deinen Mitmenschen zu verzichten
Gruß oldmax