Forum: Mikrocontroller und Digitale Elektronik STC12C5A60S2 (a.k.a 80C51) programieren mit mySmartUSB light


von Max D. (maximax)


Angehängte Dateien:

Lesenswert?

Ich habe mir von einem Schulkolegen einen 4x4x4 LED Cube zu seinem 
16x16x16 Cube mitbestellen lassen und bin gestern mit dem zusammenlöten 
fertig geworden.

Leider funktionierte der Würfel nicht so wie ich es mir vorgestellt habe
Alle LED´s leuchten bis auf 2 reihen ganz unten (siehe Foto).
nach einigen Messungen bin ich zu dem Schluss gekommen dass der 
µcontroller
vieleicht nicht richtig geflasht wurde.

Der Verkäufer hatt aber glücklicherweise den Schaltplan + Code zur 
verfügung gestellt so dass ich den µcontroller ja eigentlich selbst neu 
flashen kann.

In der Schule benutzen wir Keil µVision 3 und Programmieren mit einem 
µController der 8051 reihe.

allerdings benutzen wir einen Onboard Programmierer so dass ich 
eigentlich keinen plan habe was zwischen µC und Programmierer 
läuft...schade eigentlich...

naja auf jeden fall habe ich meinen ISP programmierer rausgeholt und 
versucht den Programmcode irgendwie auf den µC zu flashen
leider stoße ich hier an die grenzen meines Know Hows und benötige 
dringend hilfe.

Der µC aus dem LED Cube Kit ist ein STC12C5A60S2 laut Datasheet basiert 
dieser auf einen 80C51.

Also habe ich in Keil µVision ein neues Projekt erstellt und als zu 
Programmierenden CPU den AT8xC511 gewählt weil dieser laut beschreibung 
ein 80c51 ist (siehe foto).

habe das Projekt geschlossen und die Dateien aus dem Ordner "Code" der 
Zip Datei 4681.zip in den Projekt ordner geschoben und die Startup.A51 
ersetzt

Der ISP Programmer mySmartUSB light wurde vom computer erkannt nachdem 
ich die nötige Treiber software runtergeladen und installiert habe.
ihm wurde der Anschluss COM6 zugewiesen.

Die Verbindung zwischen ISP Programmer und µC ist
ISP Pr. / µC
MOSI/MOSI
MISO/MISO
VGT/VCC
GND/GND
RST/RST
SLK/SCLK

im Programm Keil µVision kann ich im Debug modus "scheinbar" eine 
verbindung herstellen da ich ja in die Register gucken kann (war 
zumindest bei unserm 8051 so)(siehe Bild).

Wenn ich aber den µC flashen will bekomme ich folgende fehlermeldung

--- Error: failed to execute '"batchisp" -device AT8xC5122 -hardware 
RS232 -port COM6 -baudrate 19200 -operation MEMORY FLASH LOADBUFFER LED 
Cube.HEX PROGRAM

unter Flash >> Configure Flashtools in dem Reiter Device habe ich dann 
dieses "Argument" gelesen und habe mir gedacht dass ich vieleicht 
einfach COM1 in COM6 umschreiben muss allerdings wie ihr lesen könnt 
wird mir nach wie vor der fehler angezeigt. und hier endet mein Latein 
ich bin viel zu weit gekommen um jetzt aufzugeben aber ich hab auch die 
befürchtung dass ich vieleicht schon woanders einen fehler gemacht habe.

Ich würde mich sehr über Hilfestellung freuen nicht nur damit mein 
Würfel funktioniert sondern auch einfach weil ich meinen Horizont 
erweitern möchte :)

schöne grüße
Max

Anhänge

DSC_0036.JPG = µC mit ISP Programmierer verbunden
DSC_0037.JPG = Bild vom LED Cube im betrieb
4681.zip = Code und Schaltplan vom Hersteller
doc4113.pdf = Datasheet vom 80c51 von Atmel
stc12c5a60s2-english.pdf = Datasheet vom µC aus dem LED Cube der auf 
80c51 basiert
blub.PNG = zeigt den µc den ich fürs neue Projekt gewählt hab
blab.PNG = zeigt wo der fehlercode herkommt
Register.PNG = zeigt dass ich in die Register reingucken kann.

von Lothar (Gast)


Lesenswert?

Der STC12C5A60S2 wird nicht über MOSI/MISO geflasht, der hat einen 
seriellen Bootloader und wird mit einem USB-seriell-Kabel geflasht (RX, 
TX, GND), schau mal ins Datenblatt S. 18 "STC12C5A60S2 series 
Application Circuit for ISP". Zum Flashen des mit Keil erzeugten 
HEX-Files gibt es eine Software ähnlich Atmel-FLIP:

http://openhardware.ro/stc-mcu-software/
http://www.watterott.com/de/USB-serial-cable-F

von Max D. (maximax)


Lesenswert?

Oh..

heißt das etwa ich brauche nur ein USB zu seriel kabel und das jeweilige 
programm zum flashen der hex file ?

kann ich so ein usb kabel selber machen ?
ich meine einfach irgendeins nehmen und das abisolieren?

ansonsten hab ich noch einen usb > rs 232 adapter aber ich benötige dann 
wohl noch einen ic zum aufbau der schaltung...oh mann

: Bearbeitet durch User
von Lothar (Gast)


Lesenswert?

Max Dirkschneider schrieb:
> ann ich so ein usb kabel selber machen ?
> ich meine einfach irgendeins nehmen und das abisolieren?

Nein in einem USB-seriell Kabel ist ein Wandler drin, gibt es auch 
separat z.B. CP2102 2,50 EUR

Max Dirkschneider schrieb:
> ansonsten hab ich noch einen usb > rs 232 adapter aber ich benötige dann
> wohl noch einen ic zum aufbau der schaltung...oh mann

Ja einen Pegelwandler z.B. MAX232 50 Cent

von Max D. (maximax)


Angehängte Dateien:

Lesenswert?

Hey Lothar erstmal vielen Dank für die Hilfe

hab mich im netz nochmal schlau gemacht und gelesen dass ich auch einen 
Arduino als USB >> TTL benutzen kann.

hab dann versucht über STC-ISP V4.88 den µC zu flashen leider bekomme 
ich aber immer die selbe fehlermeldung.

kann es sein dass der µC einfach defekt ist ?

Edit: hab gerade ne antwort vom Verkäufer bekommen

"Could you please kindly connect the two pads of "R1" and "R2" with 
wires?
Then if the problem is still the same, please kindly contact us again!"

leider kein Plan was er meint soll ich etwa die Wiederstände R1 und R2 
einfach überbrücken ?

: Bearbeitet durch User
von Lothar (Gast)


Lesenswert?

Max Dirkschneider schrieb:
> hab mich im netz nochmal schlau gemacht und gelesen dass ich auch einen
> Arduino als USB >> TTL benutzen kann.

Sicher? Wird im Geräte-Manager ein COM-Port angezeigt? Hast Du RX/TX 
über Kreuz angeschlossen?

"The Uno differs from all preceding boards in that it does not use the 
FTDI USB-to-serial driver chip. Instead, it features the Atmega16U2 
(Atmega8U2 up to version R2) programmed as a USB-to-serial converter."

Max Dirkschneider schrieb:
> leider kein Plan was er meint soll ich etwa die Wiederstände R1 und R2
> einfach überbrücken ?

Da würde ich erst nochmal nachfragen. Vielleicht meint er Du nutzt einen 
MAX232 der hat Pads R1 und R2

von Max D. (maximax)


Lesenswert?

Mit dem UNO war ich tatsächlich in der Lage den MC zu flashen ich musste 
lediglich vcc erst nachdem die Fehlermeldung kahm verbinden.

Daher scheint der MC in Ordnung zu sein

Nach genaueren hinschauen in die Anleitung ist mir dann klar geworden 
dass ich einen Fehler bei den Verbindungen zwischen LEDs und dem Bord 
verursacht habe. Konnte den Fehler aber beheben

Naja...Wie soll ich sagen... Der Cube funktioniert jetzt einwandfrei und 
ich hab herausgefunden wie man sct-isp benutzt :)

Freue mich schon darauf meine eigenen Muster zu programmieren.

Vielen Dank Lothar und sorry dass ich vermutlich einen Teil deiner Zeit 
geraubt habe :)

Schöne grüße
Max

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.