[Ontwerp] Atmega128 experi-board

Afgelopen week heb ik een uitgebreid experimenteerboardje gebouwd op basis van een ATMEGA128. Deze heb ik ook laten zien in Show your Projects.

http://www.uploadarchief.net/files/download/avr128_00.jpg

Ik heb dit topic geopend omdat ik met jullie van ideeen wil wisselen, om uiteindelijk het boardje te kunnen uitbreiden en fine-tunen. Ik vind dat daar geen ruimte is bij het topic "Show Your Projects", omdat je daar juist moet laten zien wat je hebt gebrouwen.

Het ontstaan van dit board
Ik werk hoofdzakelijk nog met SMD. Vaak wil ik iets bouwen, maar moet telkens een complete print maken, inclusief aansturing met een uC. Voorheen deed ik dat op 1 print. Het kwam dan regelmatig voor dat er toch iets niet goed ontworpen was. Resultaat : compleet nieuw board tekenen / etsen en de oude kon in de prullenbak.
Een paar maand geleden kwam ik op het idee om het probleem op te knippen : Een deelprintje met daarop de onderdelen van het te ontwerpen apparaatje, en een ander printje met daarop een uC om het aan te kunnen sturen. Dit bood vooruitgang, want ik hoefde nu alleen maar het deelprintje opnieuw te maken. Toch kwam ik soms even in de knel als ik bij een nieuw ontwerp van het deelprintje extra aansturingspinnen nodig had...
Ja ja, de wijsheid komt met de jaren, dus vorige week besloot ik eens een flexibel experimenteerboard te ontwerpen, rondom een Atmega128 : genoeg werkgeheugen en voldoende I/O-pins. Vanaf nu kan ik me gewoon weer concentreren op het deelprintje dat ik aan de praat wil krijgen. Eenmaal aan de praat, kan ik achteraf rustig bekijken welke uC ik het beste kan uitkiezen.

Het experimenteerprintje is uitgebreid met enkele slimme en handige onderdelen / gimmicks die ik wel eens wil gebruiken, maar niet altijd 1,2,3 zo klaar heb liggen. Of, dingen waar ik altijd nog een keer mee zou willen experimenteren.

Wat zit erop ?
Het boardje is voorzien van :

  • 2 POWER-aansluitingen
    Het board kan met een normale poweradapter (AC / DC) worden gevoed worden, maar er zit ook een eenvoudig aansluitblokje (2 jumper pins) op, zodat je het snel op een 9V blokje aangesloten kan worden.
  • USB STK500 programmer
    On board zit een STK500 programmer, via USB, gebaseerd op het ontwerp van Smoerijf. Daarnaast zit er ook een schakelaar aan boord, die 4 micro-switches schakelt. Zodoende kun je de USB-kabel gewoon met de PC verbinden, en de MISO/MOSI/SCK-pinnen van de uC programmeren, zonder dat het elkaar beinvloed.
    Als extra is er ook nog een 10 polige ISP-connector on board.
  • 3x externe XTal
    Zonder veel poespas kunnen de betreffende kristallen met de uC verbonden worden. Eenvoudig 2 jumpertjes zetten en klaar. De Xtallen zijn 7.372 MHz, 12 MHz en 16 MHz.
  • Instelbare VRef (voor ADC-metingen)
    Wil je ADC-metingen verrichten, dan met een 10-slagen potmeter de VRef ingesteld worden. Er zit een extra aansluitpin op het boardje, zodat met een multimeter de ingestelde spanning gecontrolleerd kan worden.
  • 16 indicatie LEDs
    Er kunnen in totaal 16 LEDs aangesloten worden ter indicatie of iets werkt. De LEDs hoeven niet rechtstreeks aangestuurd te worden, maar worden juist via een transistor geschakeld. Zodoende kan een LED met een zeer lage stroom aangestuurd worden. En 16 LEDs is leuker dan 8 LEDs.
  • Karakter LCD-aansluiting (14 en 16 pins)
    Er is een slot waarin karakter LCD's kan worden ingeprikt. Dit slot is 16 pins breed, zodat er ook LCDs met backlight gebruikt kunnen worden. Er is een potmeter aanwezig om eventueel het contrast in te stellen. De belangrijkste pinnen zijn weer doorverbonden met naar een aansluit-slot.
  • Poort-sloten
    Elke pin waarmee iets aangestuurd kan worden, is doorverbonden met een 8-polig slot. Zo zijn alle poorten van A t/m G aan te sturen.
  • Extra Powerblok
    Om externe experimenteerboardjes aan te sluiten, is een extra Powerblok aanwezig, waar eenvoudig 5V afgetapt kan worden.
  • 12 bit counter
    De 74HC4040 is domweg bedoeld om op hoge snelheids iets te kunnen tellen / meten.
  • Serial Input naar Parallel Output (SIPO)
    Dit is bedoeld om een tekort aan aansturingspinnen op te vangen. Er wordt hier een HEF4094 gebruikt.
  • Serial Output van Parallel Input (SOPI)
    Ook hier weer een voorbeeld om een tekort aan pinnen om signalen in te lezen, op te vangen. Met de HEF4021 worden 8 signalen ingelezen.
  • 2x USB
    Een Atmega128 heeft 2 UARTs. Nu zou dit eenvoudig met een MAX232 en een 9-polige SUB-D connector opgelost kunnen worden. Een moderne PC heeft enkele USB-poorten voorradig tegen vaak een enkele 9Sub-D-poort. Elke USB-poort gebruikt een CP2102.
  • 3x 10K potmeters
    Handig voor wanneer er geexperimenteerd moet worden met de ADC. De wijze van aansturing van de potmeters is instelbaar middels jumpers (en voorzien van indicatieLEDs). Met andere woorden, de potmeters met linksom of juist rechtsom draaien de spanning toe laten nemen.
  • 16KB EEPROM
    Op de print zit een 16 KB EEPROM die via TWI werkt, zodat met TWI geexperimenteerd kan worden, maar ook met opslag van (meet)gegevens of andere nuttige data.
  • Comparator
    Eigenlijk een "gimmick", maar de gebruikte LM311 kan in sommige gevallen erg handig uitpakken bij bepaalde experimenten. Met een potmetertje is de grensspanning voor een omslagpunt in te stellen.
  • 2x Navigatieswitch
    Een navigatieswitch kent 5 standen : Up, Down, Left, Right en Center. Hiermee zijn eigenlijk 5 schakelaartjes geintegreerd in 1 enkele schakelaar. Er zijn in totaal 2 van deze navigatieswitches onboard. De schakelaar kan als pull-up of juist als pull-down ingesteld worden met behulp van 2 jumpertjes. De ingestelde stand wordt zichtbaar gemaakt d.m.v. 2 LEDs.
  • Analoge temperatuurmeting
    Hier wordt een LM45 gebruikt om de externe omgeveingstemperatuur te kunnen meten.
  • 7 Segment LED
    En 7-segment-LED met dp (Dot Point). Mocht er geen karakterLCD aangesloten zijn op het boardje, dan kan deze LED nog uitkomst bieden.
  • IRDA transciever
    Snelle draadloze communicatie behoort nu tot de mogelijkheid. Niet via RF maar via IR.
  • Power-jumpers
    Elk onderdeel is apart in te schakelen met 5V d.m.v. jumpers. Als bevestiging dat een onderdeel is ingeschakeld, is een rood POWER ON LEDje zichtbaar.
  • Female header-aansluitingen
    Voor het doorverbinden van pinnen en signalen is juist gekozen voor female headers. Daardoor kun je razendsnel met eenvoudige breadboard-draadjes de nodige verbindingen leggen. Er zijn ook male-headers op het board te vinden, eventueel voorzien van jumpertjes. Deze male-headers geven juist aan dat hier bepaalde instellingen ingesteld kunnen worden. Op die manier kan niet snel een vergissing gemaakt worden.

Wensenlijst
Goed, het printje is beschreven, en ik wou dit topic juist gebruiken om advies te vragen voor het fine-tunen van dit boardje. Zo heb ik nog een wensenlijstje voor dingen waarmee ik het boardje wil uitbreiden :

  • TSOP1736
    Een sensor om afstandbedieningen uit te kunnen lezen.
  • Nood-kristal
    Regelmatig lees ik hier op CO dat gebruikers per ongeluk verkeerde fuse-settings hebben ingesteld voor de werkfrequentie. De uC is dan niet meer aanspreekbaar over de ISP. Mij is dit diverse malen overkomen en omdat ik geen High-Voltage programmer had, gingen de uC's rechtstreeks de prullenbak in. Om het board wat meer foolproof te maken, wil ik er een nood-kristal op zetten, zodat de uC -ook bij verkeerde fuse-instellingen- toch nog aanspreekbaar is over ISP.
  • OpAmp
    Op zich heb je met een OpAmp weinig van doen met een uC. Toch zijn er experimenten te verzinnen waar een OpAmp goede diensten kan bewijzen. En omdat ik hier een rits LM386 heb liggen....
  • Luidspreker
    Om ook een beetje audio mogelijk te maken op een experimenteerboardje zit ik te denken om er ook nog een luidspreker erop te integreren. Nadeel is dat die krengen best vrij groot zijn. Ik heb hier wel piezo-luidsprekertjes, maar die zijn alleen leuk voor piepsignaaltjes.
  • Power ON LED
    Het bovenstaande boardje mist nog een POWER-ON LED. Een dergelijk LEDje is toch wel erg prettig om te hebben.

Hoe ver ben ik al ?
1) Door een beetje schuiven met het ontwerp, is inmiddels ruimte vrijgekomen voor diverse extra's, zoals een TSOP1736 en de OpAmp.
2) POWER-ON LED zit inmiddels in het nieuwe ontwerp verwerkt. Het is een groene geworden.
3) POWER-blok is uitgebreid van 6 naar 8 aansluitingen. Er is ruimte om het nog breder te maken. ik heb voor 8 gekozen, omdat dat wat netter lijkt, t.o.v. de poortsloten.

Vragen

  • Noodkristal
    Ik heb hier een SMD 4-polige 10MHz oscillator liggen. Is deze snelheid te hoog voor een nood-kristal ? Zo ja, dan wil ik het met een NE555 oplossen, maar wat is dan de ideale frequentie ? (Opm : Mij staat bij dat een NE555 niet sneller dan 1.5 MHz gaat).
  • OpAmp
    Op het board is ook voldoende ruimte voor een LM386. Zal ik alleen deze OpAmmp erop zetten, of ook nog wat randcomponenten ? Het voordeel is dat je er makkelijk iets op kunt aansluiten, maar dat het werkgebied (versterkingsfactor) afgebakend is.
    Wie kan hier iets zinnigs roepen ?
  • Luidspreker
    Tsja, ik heb hier een lading kleine piezo-speakertjes liggen. Da's leuk voor het maken van piepjes, maar ik wil straks meer. Ik wil straks ook op het gebied van audio experimenteren, maar kleine luidsprekertjes ben ik nog niet tegengekomen. Misschien dat ik een combi moet kiezen : een geintegreerd piezo-speakertje en een aansluiting voor een externe luidspreker. (kijk, en dan komt die OpAmp ook goed van pas)
  • PCB-bakkers
    Vanwege de lage kosten heb ik tot nu toe altijd mijn printjes bij MakePCB laten maken. Het enige nadeel was de lange wachttijd. De ervaring heeft mij geleerd dat er steevast 6 weken zit tussen het moment van betalen en dat de printjes hier binnen komen. Ik wil straks 50 printjes laten maken in EURO-kaart formaat. Zijn er bedrijven die sneller kunnen leveren, bij een betere prijs en waarbij de printjes ook van goede kwaliteit zijn ?
Van elk bezoek aan CO leer ik weer meer...

Bij Seeedstudio was het redelijk vlot geregeld. De kwaliteit kan ik nog niks over zeggen.

Ik heb 10 printjes betaald, ze hebben er 12 opgestuurd. Er is er 1 waarvan ik zeker weet dat ie niet goed is. Ze zeggen dat ze er 6 electrisch getest hebben.

Ik heb er een FTDI232R op zitten, en tot nu toe is het altijd zo dat ik zomaar het chipje er op soldeer en het in 1x werkt. Nu heb ik op drie seeedstudio printjes 3 FTDI chips gezet, en 3x werkt het niet. Begint er op te lijken alsof ik niet meer kan solderen of dat ik iets met het ontwerp verkeerd heb gedaan. :-( of dat de seeedstudio printjes verkeerd zijn...

Over flash/eeprom... Bij flash heb je een block dat altijd in 1x gewist (=alle bitjes 1) moet worden. Daarna kan je stuk voor stuk bitjes van 1 naar 0 programmeren.

Als het goed is, past er op jou printje ook de ATMEGA325 (EUR 7,25 versus ruim 20 voor de '128). Als die het goed vind wat jij met pin 1 hebt gedaan. Er staat bij de '325 dat je pin 1 niet mag aansluiten, bij de '128 is dat "PEN" ProgrammingENable.

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

Laatste vraag over PCB-bakkers: in dit topic komen wat alternatieven voorbij.

If you want to succeed, double your failure rate.

Goed, seedstudio valt dan al meteen af. Ik heb even bij Eurocircuits gekeken en zie dat ze de prijs van MakePCB naderen bij een levertijd van 30 werkdagen. Dus, gelijke wachttijd en toch nog net iets duurder.
Van Olimex had ik vernomen dat het printjes zijn waarbij je maar 1 keer kunt solderen. De keer erop dat je gaat solderen, laten de koperbanen los.
Hmm,. ik zal eerst het nieuwe ontwerp afmaken en dan nog eens bekijken waar ik de printen zal laten maken.

Wat betreft de uC, ik heb hier ook nog ATMega64L'ers liggen. Passen er ook naadloos op, alleen kunnen ze tot 8 MHz geklokt worden.

EDIT
INmiddels heb ik eens bij PCBCard rondgesnuffelt. De prijzen zijn bijna even spectaculair als MakePCB, maar enkelen hebben al aangegeven dat het verzenden veel sneller gaat. Hmmm,. misschien dat ik het eens ga proberen.

En nu hoop ik dat er nog mensen zijn die mijn andere vragen kunnen beantwoorden :

  • Noodfrequentie
    Is 10MHz OK of toch maar een klokje op minder dan 1 MHz op basis van een NE555 ?
  • OpAmp
    Zal ik maar gewoon een OpAmp erop zetten met wat afstemcomponentjes erbij ? Of is het beter om alleen een OpAmp erop te zetten, met de nodige aansluitpinnetjes ?

Geen vraag maar een besluit die ik overweeg voor wat betreft audio :
Ik ga een piezo erop plakken. Daarnaast een aansluiting voor een speakertje. Dan nog een spanningsinverter erbij die weer gebruikt kan worden voor de OpAmp.

Van elk bezoek aan CO leer ik weer meer...

Heb zelf goed ervaringen met de pcb service van futurlec, ongeveer 10x een serie printjes laten maken.

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.

Update seedstudio:, de printjes zijn gewoon goed. Ik was aan het proberen wat minder klodders soldeer op de pinnetjes achter te laten en liet te weinig soldeer achter. We (effe met 4 handen de boel doormeten!) hebben alle printjes kunnen fixen door beter te solderen....

Op de een of andere manier lijkt het er ook op alsof de USB connectors hun pinnetjes iets hoger hebben ziten dan vlak met het soldeervlak. Ook daar had ik verdacht veel open connecties....

Nu de ftdi werkt, heb ik de atmega er op gesoldeerd, programma ingeflashed (moest gewoon het ledje laten flitsen). Geen flitsen. Ledje gemonteerd, geen flitsen. Goede programma er in en werken. :-)

Dat van koperbanen los heb ik bij olimex geen last van, wel bij seeedstudio. Waarschijnlijk heb ik bij seeedstudio gewoon de boel te erg mishandeld, en jij (oxurane) bij olimex.

Voor mijn mini-productie-run van 10 stuks is pcbcart 2x duurder dan seedstudio ($72 vs $40). 3 maart besteld, 19 maart antwoord op de vraag: klopt het dat jullie maar de helft van de boards electrisch getest hebben?

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

Hmmm, dat van Olimex kan ik zelf niet staven, maar had het elders gelezen. Van Seedstudio had ik begrepen dat het goedkoop kan, maar dat je ze ook meteen het recht geeft om er zelf een aantal van te gaan brouwen. Laat dat nou net iets zijn waar ik nou nooit vrolijk van wordt. Dan betaal ik liever iets meer.
Fururlec zal ik ook eens bekijken.

P.S. Sorry dat ik zo laat reageer, maar ik heb de afgelopen week totaal geen mogelijkheid gehad om achter de PC te gaan zitten. Ik hoop binnenkort weer vol met het boardje bezig te gaan.

Van elk bezoek aan CO leer ik weer meer...

zomaar een idee, maar kan je niet een female pinheader plaatsen waar je gewoon een extern kristal in kan doen?

Ik kan het mis hebben maar als ik het goed begrijp heb je naast de 128 een extra avr om de 128 te prgrammeren? In dat geval zou deze tip van Sprite_tm op tweakers misschien handig zijn i.p.v. het extra kristal?

Seeedstudio kon voor 30 dollar 10 printjes maken, waarvan ze er zelf 5 mogen verkopen, en jij krijgt er 5. Voor 40 dollar maken ze ze alle tien direct voor jou. Ik geloof dat ze van dat 30 dollar idee zijn afgestapt. Dat is uit het assortiment genomen.

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