Hallo, kann mir jemand den genauen Unterschied zwischen: "In-System Programming und In-Application Programming or Self-Programming" erklären? Der benutzte Controller ist ein Atmel at89c51cc03. Vielen Dank
ISP braucht i.d.R. einen externen Programmer; IAP etc geht per Bootloader.
Der Controller Programmiert sich also irgendwie selbst über seinen Bootloader. Aber woher bekommt er das Programm und wozu benötigt man diesen Modus ?
>Aber woher bekommt er das Programm und wozu benötigt man >diesen Modus ? Woher: serielle Schnittstelle, CAN-Bus, Ethernet. Je nachdem, was gebraucht wird. Wozu: Firmwareupdate; gleicher Baustein, anderes Verhalten (z.B. Regler)
OK, aber die neue Software (Firmware) kann ich doch dann ganz normal über das Programm FLIP herunterladen(ISP). Ich verstehe noch nicht so ganz wo der Vorteil in dieser Progrmmierart liegt.
Mit IAP kann man sich seinen eigenen Bootloader stricken (anderes Interface, anderes Protokoll), z.B. über Funk. Auch kann die Anwendung nebenher weiter laufen, d.h. in der Regel bleibt die CPU kurz (10ms) stehen, während eine Bootloaderaktion ausgeführt wird. Eignet sich daher auch, um große Datenmengen im Flash von der Anwendung abzuspeichern (Datenlogger). Je nach CPU macht man die Bootloaderaufrufe bequem über nen API-Call (8051) oder muß sie selber umständlich zu Fuß programmieren (AVR). Die Methode mit dem API-Call hat den Vorteil, daß man sich nicht drum kümmern muß, wenn der Hersteller später mal den Programmieralgorithmus ändert oder neue Typen entwickelt. Peter
besten Dank für die ganzen Informationen. Das hört sich sehr Interessant an, gibt es zu diesem Thema (IAP,API,Bootloader) Fachliteratur mit Beispiel-Programmen in Deutsch ? Aus dem Datenblatt von Atmel, werde ich nicht so richtig schlau !
Hallo Peter, woher hast du diese Informationen (Datenblatt ???), wenn es noch andere Quellen zu diesem Thema gibt, dann melde dich doch bitte nochmal. MFG Dirk
Hallo, generell bedeuten bei ISP und IAP: der uC bleibt während der Programmierung IN seiner Schaltung, er braucht nicht herausgenommen zu werden und nicht z.B. in ein besonderes Programmiergerät gelegt zu werden (wie das z.B. bei EPROMs der Fall ist). Das Empfangsprogramm auf dem uC (für das neue vom PC gesendete Programm) ist zunächst vom uC-Hersteller auf dem uC hinterlegt und kann bei bestimmten uCs (warum auch immer) vom Anwender durch ein eigenes Empfangsprogramm ersetzt werden. Auf dem PC läuft ein spezielles Sende-Programm ab, z.B. FLIP. Soweit sind ISP und IAP zunächst gleich. Nun der Unterschied: Bei ISP muß der uC angehalten werden, wenn ein neues Programm aufgespielt wird (Boot-Modus), das gesamte uC-System bleibt also stehen, nichts tut sich, solange das neue Programm geladen wird. Bei IAP läuft noch das alte Programm während des Donwloads weiter ! d.h. das uC-System arbeitet "durch". Erst wenn das neue Programm komplett herunter geladen worden ist, wird geschickt umgeschaltet und der uC läuft mit dem neuen Programm. IAP ist also wesentlich aufwendiger zu realisieren als ISP. Der AT89C51CC03 kann meines Wissens nur ISP. Viel Spaß Carlos
>Der AT89C51CC03 kann meines Wissens nur ISP. Nennt man das Bildungslücke? http://www.atmel.com/dyn/products/product_card.asp?family_id=613&family_name=CAN+Networking&part_id=3186 http://www.atmel.com/dyn/resources/prod_documents/doc4251.pdf http://www.atmel.com/dyn/resources/prod_documents/doc4266.pdf Man benutzt diese Methode gerne dafür, die Firmware des Controllers zu verändern bzw. zu aktualisieren (oben schon genannt). Warum man da auch gerne einen eigenen Bottloader schreibt? Weil man z.B. eine Verschlüsselung einbauen will oder eine eigene Anwendung (statt FLIP) benutzen will/muß oder eine andere Schnittstelle benutzen will/muß (z.B. auch ein externes EEPROM). Beim AVR ist es IMHO überwiegend so, dass der Bootloader komplett dazu da ist, ein neues Betriebsprogramm (Firmware) für den Controller einzuspielen. Der Bootloader wird dann nur nach einem Reset (Power-On etc) gestartet und wartet ein bestimmtes Ereignis ab. Tritt dieses Ereignis ein, wird die Firmware neu geschrieben, tritt es nach einer gewissen Zeit nicht ein, wird die Firmware gestartet. Die Idee, den übrigen Flash-Speicher als Datenspeicher zu benutzen, finde ich inzwischen sehr interessant.
Hat denn jemand von euch, schonmal selbst ein Bootloader-Programm geschrieben? Ok, ich werde mich wohl erstmal einige Zeit mit der ISP beschäftigen und wenn ich dann noch nähere Informationen sammeln kann mit IAP. Ich danke für die zahlreichen Beiträge und werde mich dann, wenn ich soweit bin, nochmal melden. MFG DIRK
Guck mal in die Codesammlung. Bin mir nicht ganz sicher, ob da einer für den 89C51CC03 dabei war. Einer dieser Controller hat IMHO einen Bootloader für CAN und einer über die serielle Schnittstelle.
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.