Hallo Zusammen, Mein LPC810 lässt sich nicht mehr programmieren. Im Moment interessiere ich mich für den LPC810: http://vilaca.eu/lpc810/ und verwende folgendes Board: http://www.lpcware.com/lpc800-mini-kit Dort habe ich via seriellem Adapter und Flashmagic ein kleines Testprogramm aus einem GitHub Directory geladen ( LPC810_HelloWorld_UART0_115K.hex ), welches Zeichen auf der seriellen Schnittstelle ausgibt: https://github.com/microbuilder/LPC810_CodeBase/blob/master/tools/ Hello World funktioniert wunderbar, aber leider kann ich den LPC810 jetzt nicht mehr flashen. Hat jemand eine Idee? Wenn ich die Resettaste drücke, sendet der Controller das "Hello, LPC810!" ziemlich unbeeindruckt weiter. Ich habe den Pegel am Reset Pin nachgemssen, das Tastensignal kommt am Controller an. Woran könnte es liegen?
Hast du die ISP Taste gedrückt während des Resets? Also ISP drücken, Reset antippen und erst dann ISP wieder loslassen. Beim ersten Mal brauchst du das nicht machen, sobald aber ein Programm drauf ist schon.
>Hast du die ISP Taste gedrückt während des Resets? Ja, das habe ich so gemacht. Ich nehme an, dass der LPC810 dann aufhören sollte sein "Hello .." zu senden und der Bootloader auf Eingaben wartet. Das macht er aber nicht. Als USB-Serial Wandler habe ich einen alten Arduino Diecimla http://www.arduino.cc/en/uploads/Main/Arduino-Diecimila-schematic.pdf genommen, den Prozessor rausgezogen und den Sendepegel mittels Widerstand auf 3V runtergeteilt, damit sich der LPC nicht an den 5V verschluckt. Als Funktionsbeweis konnte ich den Prozessor einmal programmieren und jetzt sendet er sein "Hello, LPC810". Ich habe mir ein paar LPC810 bestellt, die hoffentlich heute kommen, dann werde ich den alten mal auslöten. Laut Datenblatt gibt es ein Konigurationsbit für den Reset-Pin:
1 | RESET_EN |
2 | Enables fixed-pin function. |
3 | Writing a 1 deselects the function and any movable function can be assigned to this pin. |
4 | This function is selected by default |
Könnte es vielleicht sein, dass das HEX-File den Reset-Pin lahm legt?
Stefan schrieb: >Hast du die ISP Taste gedrückt während des Resets? Hast Du Erfahrung mit dem LPC810? Ich versuche gerade im Code https://github.com/microbuilder/LPC810_CodeBase die Prozessorinitialisierung zu finden, um heraus zu kriegen, ob er vielleicht den Reset Pin umkonfiguriert.
So, jetzt sind die neuen LPC810 von Farnell eingetroffen. Jetzt verhält es sich folgendermaßen: Das Blink-Programm LPC810_Blinky_0_2.hex von https://github.com/microbuilder/LPC810_CodeBase/tree/master/tools kann ich mehrmals flashen und wieder löschen. Nachdem ich aber das Programm LPC810_HelloWorld_UART0_115K.hex geflasht habe, geht das flashen nicht mehr. Für das Blinky-Programm ist im Git-Repository der Eintrag: "Fixed Reset Isue". Wahrscheinlich hat er den Fehler für das Blinky-Programm behoben, nicht aber für das Hello-World.
1 | Resume: |
2 | Wird der Reset falsch konfiguriert, geht der serielle Bootloader nicht mehr. |
Frage: Gibt es eine Möglichkeit, den Baustein in den Urzustand zurück zu versetzen?
chris_ schrieb: > Frage: Gibt es eine Möglichkeit, den Baustein in den Urzustand zurück zu > versetzen? Ist jetzt mal blanke Spekulation. Ich würde über ein LPCXpresso versuchen, den Baustein über JTAG anzusprechen. Schaltpläne der LPCXpresso sind irgendwo im Downloadcenter von * enthalten. Da kann man die Schnittstelle einsehen bzw. nachbauen.
moin. mein vorschlag: Strom aus ISP druecken Strom an Flashen Der Bootloader wird auch beim Poweron Reset abgearbeitet
>Ist jetzt mal blanke Spekulation. Ich würde über ein LPCXpresso >versuchen, den Baustein über JTAG anzusprechen. Hmm .. dazu müsste ich ein wenig löten. Mal sehen ... Der JTAG Anschluss belegt so ziemlich alle Pins des LPC810. Der Reset-Pin ist auch dabei. Aber vielleicht geht es ja trotzdem. >mein vorschlag: > >Strom aus >ISP druecken >Strom an >Flashen Das habe ich auch schon probiert. Scheinbar geht er auch in den Bootloader-Modus, weil er dann nicht mehr sendet. Aber programmieren kann ich ihn nicht. Meine Vermutung: beim Einschalten der Versorgungsspannung verhaspelt sich irgendwie die Baud-Rate-Autodetection. Das kann ich aber leider nicht verifizieren.
>mein vorschlag: > >Strom aus >ISP druecken >Strom an >Flashen Jetzt hat die Methode doch funktioniert. Im ersten Anlauf habe ich GND und VCC getrennt. Das hat beim Einschalten wohl zum Verhaspeln des Autodetect geführt. Jetzt habe ich es noch mal probiert, indem ich nur VCC getrennt und wieder verbunden habe. Und sieh da: Der Controller ist gerettet :-) Besten Dank.
hier ist die Änderung beschrieben: https://github.com/microbuilder/LPC810_CodeBase/commit/9ccd1cd4e44a056add509a4059eab0e609b11e81 Der LPC810 hat kein JTAG, nur die abgespeckte SWD Funktion. Mit der Änderung wurde SWD und Reset abgeschaltet, siehe User Manual UM10601 S. 131. Damit der Reset Pin aktiv ist muss also Bit6 im PINENABLE0 Register auf 0 gesetzt werden. Der ISP funktioniert immer, zur Not eben durch Power Off/On. Richtig aussperren kann man sich nur wenn man die CRP3 (code read protection) oder NO_ISP aktiviert, aber das macht man nicht aus versehen.
Vielen Dank, die Datenblätter sind ja immer recht umfangreich und man kann kaum alles lesen. Ich habe nur die Tabelle oben gefunden, die ein wenig nach JTAG aussah.
Jein, das JTAG ist wohl nur für den Chip Test, S.330. Debuggen und Flashen geht nur über SWD. Ich habe auch die Hex files angesehen, da finde ich aber nur die 0xfffffffbf im Code, danach müsste der Reset bei beiden Hex files im Tools Verzeichnis funktionieren.
>Ich habe auch die Hex files angesehen, da finde ich aber nur die >0xfffffffbf im Code, Hmm .. seltsame Sache. Ich hatte das Programmierproblem beim orginalen LPC auf dem Minikit-Board. Den habe ich dann durch "zerstörendes Entfernen" durch einen neuen in einer Fassung ersetzt. Bei diesem hat sich dann der selbe Effekt wie ursprünglich ergeben. Erst mit dem Spannung wegnehmen anstatt mit Reset konnte ich den Prozessor wieder programmieren. Ich habe jetzt den Source Code ein wenig verändert und neu compiliert. Das Programmieren funktioniert wiederholt wunderbar. Wenn Du Lust und Zeit hast, kannst Du ja das Hex-File mal auf eine LPC810 flashen. Es müsste sich dann der gleiche Effekt einstellen.
@JojoS Danke für den Hinweis mit den Jein. Ich habe im Dokument LPCXpresso LPC800 rev B.pdf die Beschreibung JTAG-Schnittstelle in Erinnerung.
chris_ schrieb: > Wenn Du Lust und Zeit hast, kannst Du ja das Hex-File mal auf eine > LPC810 flashen. Es müsste sich dann der gleiche Effekt einstellen. ich habe keinen LPC8xx, nur die 32 Bitter. Habe nur kurz durch das UM geblättert. Hier wurde das Problem auch schon mal diskutiert: http://www.lpcware.com/content/forum/lpc800-mini-kit-cannot-enter-isp-reset-mode
>ich habe keinen LPC8xx, nur die 32 Bitter. Nur der Ordnung halber: LPC810M021FN8 System: ARM Cortex-M0+ processor, running at frequencies of up to 30 MHz with single-cycle multiplier and fast single-cycle I/O port Serial Wire Debug (SWD) and JTAG boundary scan modes supported Memory: 4 kB on-chip flash programming memory 1 kB SRAM >Hier wurde das Problem auch schon mal diskutiert: >http://www.lpcware.com/content/forum/lpc800-mini-k... Danke. Wenn man nur immer gleich das Richtige im Internet finden könnte ... ;-) Aus dem Problem folgend habe sie wohl das Blinky in Github korrigiert, aber leider nicht das HelloWorld.
Hier kann man ganz gut erahnen, was man aus so einem kleinen 32Bit ARM-Prozessor mit single Cycle Multiplier so rausholen kann: http://hackaday.com/2014/06/14/an-arm-based-dsp-modelling-synth/
Kennt jemand von euch ein Programm für das serielle flashen von Linux aus? Im Moment habe ich dieses gefunden: http://www.lpcnow.com/articles/share/291936/ Ein Programm mit graphischer Oberfläche wäre mir aber lieber.
chris_ schrieb: > Kennt jemand von euch ein Programm für das serielle flashen von Linux > aus? Das Standard-Programm dafür ist lpc21isp. > Ein Programm mit graphischer Oberfläche wäre mir aber lieber. Pffft.
chris_ schrieb: > Hier kann man ganz gut erahnen, was man aus so einem kleinen 32Bit > ARM-Prozessor mit single Cycle Multiplier so rausholen kann: > > http://hackaday.com/2014/06/14/an-arm-based-dsp-modelling-synth/ Leider wollte er auf Nachfrage nicht mit Details herausrücken, wie er das gemacht hat, besonders die Audioausgabe.
Ja, er hat wohl längere Zeit daran gearbeitet und dann ein Kickstarter-Projekt innitiert. Das scheint aber nicht ganz so gut gelaufen zu sein und er möchte seine Erkenntnisse nicht verschenken. Er hat das selbe Prinzip verendet wie ich hier http://hobby-roboter.de/forum/viewtopic.php?f=5&t=141 Allerdings hat er die Sigma-Delta-Loop in Assembler programmiert und kommt dann mit dem LPC auf 3.6MSP.
>Das Standard-Programm dafür ist lpc21isp. Danke. >Im Moment habe ich dieses gefunden: >http://www.lpcnow.com/articles/share/291936/ >Ein Programm mit graphischer Oberfläche wäre mir aber lieber. Mittlerweile habe ich das Python Programm aus dem Link ausprobiert und muss sagen, es funktioniert super unter Ubuntu und ist rasend schnell. Deshalb brauche ich lpc21isp wohl nicht. Mal eine andere Frage: Hat jemand von euch Beispielcode für eine PWM auf dem LPC810 ?
chris_ schrieb: > Beispielcode für eine PWM auf dem LPC810 Hardware PWM funktioniert mit dem SCT das ist etwas komplex. Hier ein einfaches Beispiel: http://www.hwhardsoft.de/english/projects/simon-says/ Oder maximal ausführlich hier: http://www.lpcware.com/content/nxpfile/lpc80-sct-cookbook-and-tutorial-code-examples Ansonsten Software PWM mit dem MRT: http://blog.nano-age.co.uk/2014/08/some-other-lpc810-mrt-uses.html
Dankeschön, das werde ich mir mal anschauen. Ich möchte Sound mit einer 10Bit-PWM mit 30kHz erzeugen.
Im Moment lese ich mich gerade in die Architektur des LPC810 ein. Es gibt scheinbar zwei Timer: SCT ( state configurable timer ) MRT ( multi rate timer ) Wobei der MRT anscheinend 4 Kanäle?? hat. Für mich sieht das nach sprachlicher Verwirrung aus. Meinen die vielleicht einen Timer-Block mit 4 Timern darin? 11.2 Features •31-bit interrupt timer •Four channels independently counting down from individually set values •Repeat and one-shot interrupt modes
chris_ schrieb: > Es gibt scheinbar zwei Timer: > > SCT ( state configurable timer ) > MRT ( multi rate timer ) Richtig, hatte ich ja schon geschrieben :-) Der MRT ersetzt beim LPC8xx die bisher in den LPC1xxx vorhandenen Timer. Der SCT ist eine State Machine und wurde vom LPC4xxx übernommen. chris_ schrieb: > Wobei der MRT anscheinend 4 Kanäle?? hat. Für mich sieht das nach > sprachlicher Verwirrung aus. Meinen die vielleicht einen Timer-Block mit > 4 Timern darin? Timer-Block mit 4 Timern.
>Timer-Block mit 4 Timern. Danke. Ich hatte in diesem Datenblatt gelesen: http://www.nxp.com/documents/user_manual/UM10601.pdf ( s.164) Ich frage mich, ob man solche Datenblätter sprachlich nicht korrekter Schreiben könnte. Da könnte ja 4 MRT timers anstatt ein one MRT timer with 4 Channels stehen.
chris_ schrieb: > 4 MRT timers > > anstatt ein > > one MRT timer with 4 Channels stehen. 4 Timer könnte z.B. 4 unterschiedlich einstellbare Clocksourcen bedeuten. @Lothar, gibt es Public Domain Software zum Konfigurieren der SCT-Timer. Ich habe in den Beispielen viel von "do not edit, autogenerated" gelesen.
noreply schrieb: > Public Domain Software zum Konfigurieren der SCT-Timer Im kostenfreien LPCXpresso ist der "Red State SCTimer/PWM state machine generator" enthalten, der den LPC81x SCT unterstützt. Lustigerweise sehe ich grade, dass es dort bereits den LPC82x gibt, der ist noch gar nicht angekündigt :-) Es geht aber auch "zu Fuss" schliesslich hat der LPC81x SCT nur 2 Zustände: http://de.wikipedia.org/wiki/Moore-Automat
Der SCT-Timer ist wirklich nicht einfach zu bedienen. Zuerst das Starten des SCT-Timers den MRT-Timer lahm gelegt, obwohl dass die beiden nichts miteinander zu tun hatten. Ich will den SCT-Timer für die Erzeugung eines PWM-Signals mit 30kHz Periode nutzen. Das hat mittlerweile auch geklappt. Jetzt hänge ich am nächsten Problem: Ich will eine Tabelle in der SCT-Interruptroutine auslesen und den PWM-Wert aktuallisieren. Hintergrund: Tonererzeugung Ich habe ein Tesprogramm gemacht, in dem der PWM wert mittels eines Zählers hochgezählt wird. Leider bleibt der nach ein paar Zyklen irgendwo hängen. Der Code sieht so aus:
1 | void init_sct(uint8_t channel) |
2 | {
|
3 | // set pre-scalar, SCT clock = 1 MHz, clear counter
|
4 | //LPC_SCT->CTRL_L |= (((SystemCoreClock/1000000-1) << 5) | (1<<3));
|
5 | |
6 | // connect SCT OUTP_0 to IO-PIN
|
7 | LPC_SWM->PINASSIGN6 &=0x00FFFFFF; |
8 | //LPC_SWM->PINASSIGN6 |=3<<24; // SCT OUTP_0 at P0.3
|
9 | LPC_SWM->PINASSIGN6 |=channel<<24; // SCT OUTP_0 at P0.3 |
10 | |
11 | LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 8); // enable the SCT clock |
12 | sct_fsm_init(); // Initialize SCT |
13 | |
14 | LPC_SCT->EVEN = (1 << 0); // enable EVENT0 interrupt |
15 | NVIC_EnableIRQ(SCT_IRQn); // enable SCT interrupt |
16 | |
17 | LPC_SCT->CTRL_L &= ~(1<<2); // start the SCT by clearing bit 2 in CTRL |
18 | }
|
19 | |
20 | void SCT_IRQHandler(void) |
21 | {
|
22 | uint32_t status = LPC_SCT->EVFLAG; |
23 | |
24 | //LPC_GPIO_PORT->NOT0 = 1 << 3;
|
25 | static uint16_t value=100; |
26 | LPC_SCT->MATCHREL[1].L=value++; |
27 | if(value>800)value=100; |
28 | |
29 | // Acknowledge interrupts
|
30 | LPC_SCT->EVFLAG = status; |
31 | return; |
32 | }
|
Warum nimmst Du nicht das empfohlene Beispiel für Sound? http://www.hwhardsoft.de/english/projects/simon-says/ chris_ schrieb: > void SCT_IRQHandler(void) > { > uint32_t status = LPC_SCT->EVFLAG; > > //LPC_GPIO_PORT->NOT0 = 1 << 3; > static uint16_t value=100; > LPC_SCT->MATCHREL[1].L=value++; > if(value>800)value=100; Macht so keinen Sinn, value muss global sein. > > // Acknowledge interrupts > LPC_SCT->EVFLAG = status; > return; Keine Ahnung was return in einem IRQHandler bewirkt. Im besten Fall wird es ignoriert. Aber besser weglassen. > }
Hallo Lothar, >Warum nimmst Du nicht das empfohlene Beispiel für Sound? >http://www.hwhardsoft.de/english/projects/simon-says/ So weit ich das sehen kann, nutzt er den SCT Tmier als Rechteckgenerator. Ich will aber analoge Töne mit der PWM produzieren. Deshalb brauche ich eine Update-Rate von ca. 30kHz. >> static uint16_t value=100; >> LPC_SCT->MATCHREL[1].L=value++; >> if(value>800)value=100; >Macht so keinen Sinn, value muss global sein. "value" ist eigentlich erst mal nur zum testen gedacht. Ich wollte value in der Interruptroutine hoch zählen, um zu sehen, ob es funktioniert. So wie es da geschrieben steht, sollte eigentlich eine Sägezahnschwinung ergeben. Die PWM ändert sich aber nur kurz ( ca. 1Sekunde ), dann bleibt sie auf einem Wert hängen.
siehe Kommentar und wie Lothar gesagt hat, static uint16_t value=100; rausziehen und global machen. static könnte zwar funktionieren, ließt sich aber schlecht und zum initialisieren benötigt man sonst noch ein Flag, etc. chris_ schrieb: > void SCT_IRQHandler(void) > { > uint32_t status = LPC_SCT->EVFLAG; > > //LPC_GPIO_PORT->NOT0 = 1 << 3; > static uint16_t value=100; /* hier setzt man nach jeden Interrupt value wieder auf 100 */ > LPC_SCT->MATCHREL[1].L=value++; > if(value>800)value=100; > > // Acknowledge interrupts > LPC_SCT->EVFLAG = status; > return; > }
Danke für die Antwort, aber daran liegt es nicht, da ich es auch schon anders probiert habe. aus http://de.wikibooks.org/wiki/C-Programmierung:_static_%26_Co. "Das Schlüsselwort static hat in C eine Doppelbedeutung. Im Kontext einer Variablendeklaration innerhalb einer Funktion sagt dieses Schlüsselwort, dass diese Variable auf einer festen Speicheradresse gespeichert wird. Daraus ergibt sich die Möglichkeit, dass eine Funktion, die mit static-Variablen arbeitet, beim nächsten Durchlauf die Informationen erneut nutzt, die in der Variablen gespeichert wurden (wie in einem Gedächtnis)." Ich verwende es eigentlich ganz gerne und oft. Damit ist eine Kapselung der Daten innerhalb einer Funktion möglich, was bei der Objekt-orientierten Programmierung gerne benutzt wird.
@chris, Sorry stimmt. Meinen Kommentar von oben vergessen. Ich habe ein vergleichbares Programmierkonstrukt mal schnell in linux implementiert. Der Zähler value geht hoch. Setzt aber auch voraus, das der Compiler es richtig macht. ;-)
Hallo Zusammen, jetzt stelle ich mal die Version 1 der Library online: http://hobby-roboter.de/forum/viewtopic.php?f=4&t=152&p=600#p600 Es gibt ein Beispiel um Melodien zu spielen. Allerdings werden im Moment auch nur Rechtecksignale erzeugt. Ich hoffe, dass ich irgendwann die PWM noch so weit hin kriege, dass ich auch analoge Töne erzeugen kann.
chris_ schrieb: > Ich hoffe, dass ich irgendwann die PWM noch so weit hin kriege, dass ich > auch analoge Töne erzeugen kann. PWM ist immer ein Rechtecksignal, um daraus ein Analogsignal zu erzeugen verwendet man einen externen Filter: http://provideyourown.com/2011/analogwrite-convert-pwm-to-voltage/ Direkt ein Analogsignal erzeugen geht mit Software Sigma-Delta-DAC. Hier ein Beispiel für AVR. Mit dem LPC810 ginge es natürlich viel besser und schneller mit SCT und Komparator, und es wurde auch schon programmiert, aber derjenige rückt nur das Binary raus, nicht sein Programm: http://www.hobby-roboter.de/forum/viewtopic.php?f=5&t=141 Hier das Prinzip PWM gegen Sigma-Delta-DAC: http://jjmk.dk/MMMI/Exercises/05_Counters_Shreg/No7_PWM_vs_SigmaDelta/index.htm
chris_ schrieb: > Allerdings werden im Moment auch nur Rechtecksignale erzeugt. Lothar schrieb: > Hier ein Beispiel für AVR. Sehe grade, das Beispiel ist ohnehin von Dir, oder :-) Dann sollte es auf dem LPC810 erst mal auch laufen.
>Sehe grade, das Beispiel ist ohnehin von Dir, oder :-) Ja ;-) Ich hatte auch schon einmal einen mehrstimmigen PWM-Synthesizer mit dem LPC1114 programmiert: http://hobby-roboter.de/forum/viewtopic.php?f=5&t=140 ( Das File ArmPcSound spielt Bach mehrstimmig auf dem LPC1114, es klingt gar nicht schlecht ... ) Die Experimente mit dem Sigma-Delta-DAC wurden hier wohl als Inspiration genommen: http://hackaday.com/2014/06/14/an-arm-based-dsp-modelling-synth/ Die Sigma-Delta-Loop ist dort ist in Assembler programmiert und die Aktualisierung des Wertes erfolgt in einer 44kHz Interrupt Routine. Was mich daran stört, ist, dass der DAC in der Main-Loop laufen muss und immer schlechter wird, je mehr Rechenzeit die Signalgeneratoren und Filter brauchen. Deshalb will ich lieber zurück zum PWM-DAC wie bei meinem LPC1114 Projekt. Der ist nicht ganz so gut wie die Assembler-Sigma-Delta Loop, aber kostet keine Rechenzeit und lässt sich vor allen Dingen mit meiner Library hier http://hobby-roboter.de/forum/download/file.php?id=191 kombinieren.
Weiß jemand von euch, ob man einen 5V USB-Serial Converter direkt an den LPC810 anschließen kann? Im Datenblatt finde ich zur 5V Toleranz die obige Tabelle. Ich würde sie so interpretieren, dass es kein Problem sein sollte. Außerdem suche ich nach dem Schaltpegel für die Digitaleingänge, da konnte ich aber noch keine Angaben finden. Ich möchte ein paar digitale Eingänge bei einer Versorgungsspannung mit 3.3V mit einem Signal von 1.6V schalten. Die Frage ist, ob der Pegel reicht.
chris_ schrieb: > Weiß jemand von euch, ob man einen 5V USB-Serial Converter direkt an den > LPC810 anschließen kann? Sicher kann man das, nur ist halt P0.0 zugleich ISP-RX und Analog-Eingang. Wenn man also ein Programm hat, das den Analog-Eingang nutzt, und vergisst nach dem Flashen das ISP-RX abzuziehen, könnte der Komparator hinüber sein. Aber warum nicht einfach einen Spannungsteiler oder eine LED davor?
>Aber warum nicht einfach einen Spannungsteiler oder eine LED davor? Ich versuche immer, den Bauteile Aufwand möglichst gering zu halten. Wenn man einen seriellen Programmer wie diesen hier http://hobby-roboter.de/forum/download/file.php?id=193 auf Experimentierplatinen aufbaut, ist es gut, wenn nicht so viele Bauteile darauf sind weil es leicht zu Wackelkontakten kommt. Auf die Idee mit der LED in Serie bin ich noch nicht gekommen. Ich wollte so was machen: LPC810Pin <-- 1k ------ 1k ----< ProgrammiermikrocontrollerPin ( ProgMC ) | | LED | | GND Damit könnte man die LED gleichzeitig als Anzeige LED nutzen wenn man den ProgMC-Pin hochohmig schaltet. Mann könnte den ProgMC auch als In-Circuit Logikanalysator verwenden, wenn man die Eingänge abfragt.
Nachdem ich mich einige Zeit mit der Integration der Software in die Arduino-IDE herum geschlagen habe, hier das Ergebnis: http://hobby-roboter.de/forum/viewtopic.php?f=4&t=152&p=604#p604 Damit sollte die Installation der Arm-Tool-Chain wirklich einfach sein, man muss fast nichts tun. Alpha Tester sind gerne willkommen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.