atmega, xilinx, atmel

ik heb hier een aantal printen liggen met bovenstaande IC's erop.
deze zijn uitgerust met drukknoppen, display en een 8polige connector naar de rest van de printer.

nu scheelt er wel iets aan die onderdelen (scherm kapot/te licht/te donker, software gecrashed of gewoon defect).
ik zou wel eens willen weten of hier iets mee te doen is (bv herprogrammeren tot iets anders) of moet daarvoor de boel toch gedesoldeerd worden.

eenvoudige tools die ik nodig hebt (USB programmer die je met een paar draadjes kan verbinden ofzo?) of moet ik over complete programmers gaan bezitten hiervoor.

ik ken totaal NIKS van PIC's, atmels, atmegas, arduino en zou er wel eens willen mee beginnen.
leuke toepassingen zouden kunnen zijn:
-klokje maken
-thermometer maken
-tellers
....
zolang ik maar met wat programmeercode kan gaan rommelen en spelen met die hardware
http://fcapri.homelinux.com/off/pics/eo/programmeren/Dscn6367.jpg
http://fcapri.homelinux.com/off/pics/eo/programmeren/Dscn6368.jpg
http://fcapri.homelinux.com/off/pics/eo/programmeren/Dscn6369.jpg
http://fcapri.homelinux.com/off/pics/eo/programmeren/Dscn6370.jpg

er zit overal ook een LED op, dus daar kan het eerste programma al komen.
tips zouden zijn:
-met welke van bovenstaande begin ik best, of gewoon die rotzooi in de kliko gooien?
-welk programma leer ik best (eenvoudigheid VS bruikbaarheid in later stadium? ik ben niks met een programma waar ik nu een led mee kan doen knipperen maar niet in staat is het scherm aan te sturen
-welke programmer/hardware schaf ik aan/bouw ik best zelf? programmers waar je de ic in een voet klikt lijkt me al niks.

mt deze tips zou ik in staat zijn de rest te googlen en daar specifiek over te lezen

[Bericht gewijzigd door fcapri op woensdag 30 april 2014 22:00:49 (17%)

ik hou van werken ..., ik kan er uren naar kijken

Ik zou beginnen met de print met de ATemga8515, dit is de meest courante microcontroller. Als programmer zou ik een "AVR ISP Mk II" kopen, kost je waarschijnlijk 3 tientjes. Deze kan je vervolgens met 5 a 6 draadjes op de AVR aansluiten om deze te programmeren.

Zo goed als het vroeger was, is het nooit geweest.
Henry S.

Moderator

Op 30 april 2014 21:37:51 schreef fcapri:
zolang ik maar met wat programmeercode kan gaan rommelen en spelen met die hardware

FPGA's als bijvoorbeeld een Xilinx moet je zien als ter vervanging van een handvol losse logicabouwstenen. De instap van een microcontroller ligt idd lager.

73's de PA2HS - ik ben een radiohead, De 2019 CO labvoeding.

Op 30 april 2014 21:37:51 schreef fcapri:
ik heb hier een aantal printen liggen met bovenstaande IC's erop.
deze zijn uitgerust met drukknoppen, display en een 8polige connector naar de rest van de printer.

nu scheelt er wel iets aan die onderdelen (scherm kapot/te licht/te donker, software gecrashed of gewoon defect).
ik zou wel eens willen weten of hier iets mee te doen is (bv herprogrammeren tot iets anders) of moet daarvoor de boel toch gedesoldeerd worden.

Er zal in ieder geval gesoldeerd moeten worden, de printjes waar de onderdelen nu op zitten zijn in deze vorm niet echt bruikbaar om mee te experimenteren. Het nadeel is dat deze onderdelen in SMD formaat zijn wat wel heel erg klein is om mee te werken. Meestal worden er onderdelen in DIP/DIL formaat op een breadboad gebruikt om makkelijk je eigen schakelingen te bouwen.

Op 30 april 2014 21:37:51 schreef fcapri:
eenvoudige tools die ik nodig hebt (USB programmer die je met een paar draadjes kan verbinden ofzo?) of moet ik over complete programmers gaan bezitten hiervoor.

ik ken totaal NIKS van PIC's, atmels, atmegas, arduino en zou er wel eens willen mee beginnen.
leuke toepassingen zouden kunnen zijn:
-klokje maken
-thermometer maken
-tellers

zolang ik maar met wat programmeercode kan gaan rommelen en spelen met die hardware

Om te beginnen: Er zijn vele fabrikanten die microcontrollers maken. Een daarvan is Microchip die al heel lang de PIC microcontroller levert. Een andere fabrikant is Atmel, een relatief nieuwe speler die de AVR microcontroller maakt waarvan de ATmega een model is. Beide zijn erg populair bij de hobbyisten en kennen een grote online communities. De PIC omdat ze al meer dan dertig jaar te krijgen zijn en de AVR dankzij Arduino.

Wat is Arduino? De ontwikkeling van Arduino is gestart in 2005 in Italië. De insteek was het maken van een development board dat goedkoper zou zijn dan de gebruikelijke prototyping systemen destijds. Wat is het geworden?
Een instap-omgeving voor het ontwikkelen met microcontrollers bestaande uit:
- Complete boards met daarop een AVR microcontroller en andere componenten die nodig zijn om hem te laten draaien en te laten communiceren met een PC.
- Een simpele programmeer omgeving (IDE) die draait op de PC waarin je programma's kunt schrijven. Dit gebeurd in C, de gebruikte compiler is een normale AVR C compiler.
- Extra kant-en-klare functies in de software die je kunt gebruiken waardoor het voor beginners een stuk eenvoudiger is.
- Een bootloader die in de microcontroller zit en zorgt dat je hem verder zonder extra programmeertool kunt programmeren (met een usb kabeltje).
- Een website vol met uitleg over hard- en software, extra libraries etc.

Op 30 april 2014 21:37:51 schreef fcapri:
er zit overal ook een LED op, dus daar kan het eerste programma al komen.
tips zouden zijn:
-met welke van bovenstaande begin ik best, of gewoon die rotzooi in de kliko gooien?
-welk programma leer ik best (eenvoudigheid VS bruikbaarheid in later stadium? ik ben niks met een programma waar ik nu een led mee kan doen knipperen maar niet in staat is het scherm aan te sturen
-welke programmer/hardware schaf ik aan/bouw ik best zelf? programmers waar je de ic in een voet klikt lijkt me al niks.

Een led kost een paar dubbeltjes dus ik persoonlijk vind het de moeite niet waard. Je kunt het beste een zogenaamde starterkit halen, die zijn er van bv Arduino zelf maar ook goedkopere clones uit china(klik wel bij select op starterkit). Ik ben zelf recent zonder enige kennis met de Arduino kit aan de slag gegaan en ik vond het boek erbij erg goed in zoverre dat een hoop basics van electronica en programmeren er in behandeld worden. Verder is online veel informatie te vinden. Ik heb er een erg leuke hobby bij.

We do what we must because we can.

Op 1 mei 2014 03:51:15 schreef Resu:
Er zal in ieder geval gesoldeerd moeten worden, de printjes waar de onderdelen nu op zitten zijn in deze vorm niet echt bruikbaar om mee te experimenteren.
[...]
Een led kost een paar dubbeltjes dus ik persoonlijk vind het de moeite niet waard. Je kunt het beste een zogenaamde starterkit halen, die zijn er van bv Arduino

als ik nu zo een usb programmer koop die ik aan deze print soldeer met een aantal draadjes, dan kan ik een programma in deze IC's krijgen, zoals tommyboy aanhaalde. dus zonder deze van de huidige print af te halen.

die led die erbij zit, kost idd niks, MAAR, deze print komt uit een bestaand toestel, met het scherm op de correcte pinnen van de IC aangesloten, de led ook op één of andere uitgang aangesloten en een 5tal knoppen.

als ik nu uitzoek welke ingangen waarom zitten, kan ik toch al deftig experimenteren met deze print.

MOSI,MISO,SCK,RESET,RXD,TXD, INT1, VCC en GND worden naar buiten gebracht op een connector.
links naast de flatcable van scherm:
http://fcapri.homelinux.com/off/pics/eo/programmeren/Dscn6368.jpg

de led zit op PD6 en PD7 naast de X-tal
scherm zit aangesloten op port B-C-D
drukknoppen zitten op port A.

voor zover ik het nu versta sluit ik die aan met een paar draden op die connector naar zo een usb programmer.
ik steek er een programma in dat de led laat knipperen, en die zou werken.
in verder stadium zou ik kunnen gaan uitzoeken om het scherm aan te sturen om iets te laten zien (hello world).
analoge comparators worden niet gebruik, dus daar kan ik later 2draden aan solderen om iets externs analoog op aan te sluiten.

is dit al voldoende om een atmega uit te lezen/te schrijven?
http://images.elektroda.net/36_1171290214.gif
kan ik hiermee wel direct testen of de AVR's nog werken of door zijn. bij aansluiten van 5V aan VCC doet 1 print al compleet niks, een andere zijn ledjes van scherm lichten op en dan gaat het scherm zwart (booten, die wacht nog op instructies van de printer vooralleer die verder gaat)

of dit in combinatie met ponyprog?
http://www.electro-tech-online.com/attachments/avr_dasa-png.41938/
k heb nog een paar oude laptops rondslingeren met com poorten aan

ik hou van werken ..., ik kan er uren naar kijken
EricP

mét CE

als ik nu zo een usb programmer koop die ik aan deze print soldeer met een aantal draadjes, dan kan ik een programma in deze IC's krijgen, zoals tommyboy aanhaalde. dus zonder deze van de huidige print af te halen.

Ik denk dat dat voor beide AVRs wel op gaat ja. Die 'draadjes' moeten niet te lang zijn - anders krijg je gedoe met paracitaire capaciteiten / inductiviteiten waardoor het spul meer werkt.

die led die erbij zit, kost idd niks, MAAR, deze print komt uit een bestaand toestel, met het scherm op de correcte pinnen van de IC aangesloten, de led ook op één of andere uitgang aangesloten en een 5tal knoppen.

Er zijn geen 'juiste pinnen'. Een I/O pin is een I/O pin bij een AVR - geen gedonder met ergens open drain ofzo. Dat kan elke I/O pin nadoen. De meeste pinnen hebben wel een alternatieve functie, bijvoorbeeld input voor een ADC of een stuk UART ofzo. Voor een LCD en wat knoppen, zit dat niet in de weg. De firmware (die jij dus zelf gaat schrijven) bepaalt uiteindelijk wat waarop zit - en dan zou een bepaalde aansluiting wel eens leuk uit kunnen komen.

als ik nu uitzoek welke ingangen waarom zitten, kan ik toch al deftig experimenteren met deze print.

Ja, dat ben ik met je eens. Bedenk alleen wel dat je ook nog even uit moet zoeken hoe je dat display aanstuurt. Die AVR weet daar niks van - meer dan een stapel I/O pinnen is het niet.

MOSI,MISO,SCK,RESET,RXD,TXD, INT1, VCC en GND worden naar buiten gebracht op een connector.
links naast de flatcable van scherm:

Dan heb je dus in principe alles wat je voor je programmer nodig hebt.

de led zit op PD6 en PD7 naast de X-tal
scherm zit aangesloten op port B-C-D
drukknoppen zitten op port A.

voor zover ik het nu versta sluit ik die aan met een paar draden op die connector naar zo een usb programmer.
ik steek er een programma in dat de led laat knipperen, en die zou werken.
in verder stadium zou ik kunnen gaan uitzoeken om het scherm aan te sturen om iets te laten zien (hello world).
analoge comparators worden niet gebruik, dus daar kan ik later 2draden aan solderen om iets externs analoog op aan te sluiten.

Dat klopt. Begin inderdaad eens met een knipper LED. Ook een scope kan daarbij handig zijn - mijn eerste knipperled was zo snel dat-ie gewoon aan leek te staan. Duurde even voordat ik dat door had :)

Dat Xilinx plakje is een CLPD - lomp gezegd een stel configureerbare poortjes. Mooi stukje hardware, maar een heel ander idee van 'programmeerbaar'. Er ligt veel meer in hardware vast. Daardoor is het ding veel minder universeel dan een AVR. Je krijgt er (oa.) snelheid voor terug.

Ik ben zelf geen fan van dat Arduino spul. Het schijnt dan laagdrempelig te zijn, maar vanwege dat maffe taaltje is de drempel voor mij (met toch inmiddels wel een jaar of 30 aan programmeerervaring) nog steeds te hoog - ik zie geen meerwaarde tov. een 'bare' AVR die ik gewoon in C kan programmeren, dus waarom zou ik er tijd in steken?

Voor die programmer: bedenk ook even wat je wilt. Een aantal AVRs en programmers zijn voorzien van 'debugWire' - technologie om in-circuit te kunnen debuggen. Da's mooi, maar zowel je programmer als je AVR moeten het kunnen. Een AT90S8515 zou daar wel eens te oud voor kunnen zijn (als in: toen had Atmel het nog niet). Als je dat minder belangrijk vindt, dan kun je bij tuxgraphics kijken. Relatief goedkope programmer die het prima doet met AVRstudio. Een 'echte' programmer (van Atmel zelf) kost iets meer.

Die knutsels die je zelf geeft... Tsja... Ik ben er niet dol op. Het geeft regelmatig problemen en zeker als je met 'niks' begint, wordt het dan lastig om vast te stellen wat er nou niet werkt.

Overigens gaan AVRs zelden stuk - je kunt ze best fors mishandelen. Ik heb het nu 2x meegemaakt: in het verleden Tiny22's die het rechtstreeks aansturen van een buzzer niet leuk vonden (blijkbaar kwam daar bij uitschakelen toch een nare piek vanaf die de dioden eromheen niet voldoende opvraten) en een keer een als 'defect' gekocht STK-500 developmentboard waar een 8515 niets meer deed (zelfs de clock liep niet meer). Ding vervangen, met de AT90S1200 'nieuwe' firmware erin geblazen en werken...

Op 30 april 2014 22:20:25 schreef Tommyboy:
Ik zou beginnen met de print met de ATemga8515, dit is de meest courante microcontroller. Als programmer zou ik een "AVR ISP Mk II" kopen, kost je waarschijnlijk 3 tientjes. Deze kan je vervolgens met 5 a 6 draadjes op de AVR aansluiten om deze te programmeren.

en hoe herken ik de mkII versie? ik heb op ebay al gekeken, vind veel voor AVR ISP maar met mk2 of MKII erbij vind die niks
http://www.ebay.de/itm/AVR-USBasp-ISP-Programmer-Firmware-Loader-6Pin-…

ik hou van werken ..., ik kan er uren naar kijken
EricP

mét CE

Da's een USBasp. Niet doen. USB emulatie bitbanged in firmware. Leuk als het werkt. Hoop gedoe als het niet werkt.

Koop gewoon een echte. Zoals ik al schreef: kijk bij Tuxgraphics. Of zoiets.

De connector links zal inderdaad de debug connector zijn. Soldeer daar pennetjes op, en je can een kabeltje maken naar de standaard 6-pins AVR programming connector. De paralelle poort programmer werkt ook. Ik heb nog nooit een officiële AVR programmer gekocht (tom verklaart me voor gek), en daarmee mijn avr-programmers gebootstrapt...

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Als je net begint, moet je inderdaad niet willen kutten met een waggele eBay programmer. Koop gewoon deze:
http://nl.farnell.com/atmel/atavrisp2/in-system-programmer-for-avr-8bi…
http://nl.mouser.com/ProductDetail/Atmel/ATAVRISP2/?qs=%2fha2pyFaduiTh…
http://www.digikey.nl/product-detail/en/ATAVRISP2/ATAVRISP2-ND/898891

Een fatsoenlijke programmer is een investering waar je geen spijt van zult krijgen.

Zo goed als het vroeger was, is het nooit geweest.

dat was dus al te laat dat ik bovenstaande zag. ik had in duitsland dus.

ik had wel gekeken dat er geen USBASP op stond en had dus een andere besteld dan ik eerst had gepost.
die werd omschreven als "USB ISP Programmer für ATMEL AVR ATMega ATTiny 51 AVR ISP FZ0151 WS1".

nu is die aangekomen en staat er op het printje vrolijk USBASP V2.0. dus toch een ASP weer :-(
nuja, t was gekocht, al betaald en was halfweg deze week aangekomen. heb hem nu toch, dus kan eens proberen. lukt het, heb ik geluk, lukt het niet, kan ik nog een andere kopen.

maarnu, dat ponyprog programma werkt met serieel en parallel. niet via usb. ik heb al een programma gevonden (extreme burner), maar misschien zijn er betere waar ik mee kan beginnen?

ik hou van werken ..., ik kan er uren naar kijken

USBASP kan probleemloos werken, maar blijkbaar zijn er varianten in omloop die niet/slecht presteren.

avrdude kan zowat met elke programmer overweg.

Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)

ja, AVR dude net ook gevonden, maar dit is CLI.
die extreme burner is geen goeie, die ondersteund de AT90S8515 niet. ik kan hem wel uitlezen en krijg de code, maar die geeft een fout dat hij de goeie chip niet vind (ATMEGA 8515).

ben nu winAVR aan het installeren. in de originele code staat namelijk geschreven hoe het scherm aangestuurd wordt, en zou die code dan ook willen bewaren voor ik alles overschrijf

ik hou van werken ..., ik kan er uren naar kijken
EricP

mét CE

Tsja... Eigenwijs is ook wijs...

ja, AVR dude net ook gevonden, maar dit is CLI.

En dus prima geschikt... Verder kun je in de config alles toevoegen wat je wilt. Dus als het werkt, dan kan het alles...

voor t moment werkt alles, alleen vind ik geen 'eenvoudige' dummie proof software om
-gemakkelijk de code uit de AVR op te slaan (niet in hex code, maar misschien leesbare taal?)
-eenvoudig software schrijven in programmeertaal (C?) en dan via 1 button in de AVR te kunnen laden

momenteel al 3de programma binnengehaald en nog niet wat ik wil.
-extreme burner: aanvaard de AT90S8515 niet
-AVR insight: programmeervenster maar kan de oude soft niet uit de avr halen
-bascom leek me wel iets, maar ziet er enkel voor com/parallel port als communicatie uit.
-Atmel studio is aan het downloaden

wat gebruiken jullie om een oud programma te backuppen uit de AVR, en nieuwe code in te schrijven?

ik hou van werken ..., ik kan er uren naar kijken

De kans is groot, dat een AVR in een cemmerciële toepassing beveiligd is tegen uitlezen. Je kan de AVR dan wel wissen en opnieuw programmeren.

En, ook al zou je zo'n AVR kunnen uitlezen, je gaat geen "leesbaar" resultaat terugkrijgen. Ook in de tijd dat processors als de Z80 populair waren, struikelde menig disassembler over het feit dat er zomaar tekst en data tussen de CPU-instucties stond.
Kortom: vergeet het maar...

Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)

Code die je uit een microcontroller trekt is gecompileerd, daar kun je geen leesbare taal (zoals C) van maken. Je kunt het hooguit disassembleren, maar alle commentaar, variabele- en functienamen e.d. zijn weg.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

code:

avrdude -c bsd -E noreset -y -p atmega328p -q -U flash:r:dump.bin:r

jullie spreken hier allemaal chinees nu :)

@blurp: dat geeft een heleboel fouten. cycle count not supported, cannot open device giveio, failed to open lpt1

ik heb het volgende uitgevoerd

code:

avrdude -p 8515 -y -c usbasp -e  -F

dit werkt dan wel, chip zou moeten erased zijn

ik hou van werken ..., ik kan er uren naar kijken

Mijn voorbeeld heb ik uit mijn shell history geplukt :-)

Jij zult inderdaad de juiste programmer (wellicht niet 'bsd') en het juiste device (er is meer dan alleen de 328p) moeten invullen.

-F heb ik nooit nodig gehad. Kijk voor de grap ook naar je fuses:

code:

 avrdude -p programmer -c device -U lfuse:r:-:h -U hfuse:r:-:h -U efuse:r:-:h -U lock:r:-:h 

en kijk hier of het ergens op slaat

code:


D:\raspberry>avrdude -p 8515 -c usbasp -U lfuse:r:-:h -U hfuse:r:-:h -U lock:r:-
:h

avrdude: warning: cannot set sck period. please check for usbasp firmware update
.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude: Device signature = 0x000102
avrdude: Expected signature for AT90S8515 is 1E 93 01
         Double check chip, or use -F to override this check.

avrdude done.  Thank you.

[Bericht gewijzigd door fcapri op vrijdag 9 mei 2014 22:31:27 (63%)

ik hou van werken ..., ik kan er uren naar kijken

Device signature = 0x000102

0x000, 0x001 en 0x002 zijn de adressen waar de signature-bytes opgeslagen zijn.
De programmer geeft die één voor één door via SPI, en de AVR geeft de inhoud van zo'n adres door bij het schrijven van de volgende (dummy) byte.
Zo:

c code:


    spi_mastertransmit_nr(0x30);	// Commando
    spi_mastertransmit_nr(0);		// Adres 0x00
    spi_mastertransmit_nr(1);		// Adres 0x01
    sig = spi_mastertransmit(0);	// 1e byte lezen

Blijkbaar geeft de AVR in dit geval het adres terug door.
Of de firmware v/d programmer is fout: hij leest een sig-byte terwijl hij het adres nog aan het doorgeven is (regel 3 hierboven).

Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)

-bascom leek me wel iets, maar ziet er enkel voor com/parallel port als communicatie uit.

Gebruik ik ook met USBasp: http://avrhelp.mcselec.com/index.html?usbasp.htm

It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.
EricP

mét CE

Eh... Lees eens wat de lock bits doen. Ik meen me vaag te herinneren dat daar een combinatie mogelijk is die ook de signature byte niet meer terug laat lezen. Dan moet je eerst een chip erase doen.