Atmega328 uit Arduino uno zelfstandig gebruiken

Alleen berichten met de trefwoorden “breadboard” worden getoond. Alle berichten tonen

Schimanski

Golden Member

https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard

https://forum.arduino.cc/index.php?topic=452291.0

https://www.youtube.com/watch?v=cebMSJrNntI

Ik gebruik i.p.v. een losse Atmega328P tegenwoordig gewoon een nano, niet veel groter, goedkoper en alle USB I/O zit erbij.

What, me worry? // Radiozendamateur - PA2HGJ // Stuff is the junk you keep -- Junk is the stuff you throw away // Tinkeo Ergo Sum

Op 7 juni 2019 22:35:36 schreef Etienne51:
Ik heb de schakeling getest, maar het lukte niet, waarschijnlijk omdat er nog wat ontkoppeling nodig is,zoals Hunter schrijft. Daar heb ik geen ervaring mee...
Dat datasheet is zeer lijvig...Waar kan ik de procedure vinden?

Kunt u me verder helpen?

Ik denk dat het belangrijk is om te weten waar je de chip in hebt getest. Een Atmega kan je los gebruiken, maar met de gegeven schakeling moet het te draaien programma er reeds op geprogrammeerd zijn. In dit geval zouden er een paar dingen kunnen zijn:

  • De eerdergenoemde ontkoppeling.
    De chip is ervan afhankelijk om dicht bij de voedingspennen een laagohmige condensator te hebben, meestal gebruikt men daar een 100nF keramische condensator voor. Dat voldoet zo goed als altijd. Deze dient om te zorgen dat de voedingsspanning voor de chip door de weerstand en inductie van de voedingsrails niet zo ver zakt dat de chip disfunctioneert.
  • De kristaloscillator werkt niet.
    De oscillator werkt met een paar kleine condensatortjes naar aarde, maar op een breadboard of een slecht ontworpen gaatjesprint kunnen de capaciteiten tussen de sporen deze capaciteit domineren waardoor de chip het kristal niet aan de gang krijgt. Voor een 16MHz signaal is een paar pF snel veel. Vanaf pagina 28 staat er het één en ander over deze condensatoren, maar niet een directe link of dit in jouw specifieke ontwerp het probleem is. Zou je eens een foto van de opstelling kunnen maken? Overigens moet het Arduino-bord waar hij vandaan komt dezelfde frequentiebron hebben. Er zijn varianten met een keramische resonator, maar dan is de chip anders geprogrammeerd en zal niet werken met een kristal.

Is er overigens een reden dat je de chip apart wil gebruiken? Ik ben het met Schimanski eens dat het gebruik van een Arduino Nano misschien handiger is, zeker als je een variant kan vinden met een micro-USB (ik heb er ooit een paar op eBay gekocht, dit is er bijvoorbeeld één). Alleen als je massaproductie plant zou ik er prioriteit aan geven de chip los te kunnen gebruiken (maar dan is je vraagstelling onwaarschijnlijk). Die Nano is zo goedkoop geworden dat het niet meer loont voor de hobby moeilijk te gaan doen met zo'n losse chip.

Ok... werkt dat kristal? Juiste c-tjes er naast? Hoe heb je dat opgebouwd? Op een breadboard? Juiste C kan dan "niets" zijn. Ding ontkoppeld? Had je dacht ik al gezegd.

@kruimel: nee.
@etienne: plaats eens een foto.

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

Voor de duidelijkheid: ik bedoelde dus ook zonder bootloader en zonder Arduino IDE of taal. Niet zomaar de controller er uitgehaald en op een breadboard o.i.d. geprikt.

Als je ze met registers wil leren werken zou ik dat pas na het werken met de Arduino proberen, dit om de aandacht vast te houden en als kapstok te dienen om een (relatief) complexe werkelijkheid te kunnen uitleggen. Dan kan je daarna (bijvoorbeeld) een opdracht maken die timingsafhankelijk is, een snelle 'interrupt handling' vereist of een overflow situatie mogelijk maakt om het verschil tussen een programma in C en Assembly te demonstreren.

Ik kwam door eens rond te zoeken hier een interessante discussie tegen over assembly programmeren op een Arduino: blijkbaar kan je in je C-code een blok Assembly steken en zo alsnog experimenteren met Assembly zonder de processor los te nemen (je kan dan een paar pinnen gebruiken):

c code:

void somefunction(void) __attribute__((naked))
{
 asm volatile ("

; your assembly code here

 ");
}

Dat lijkt me het gemakkelijkst om te doen als deel van je cursus. Ik zou niet meteen alles in Assembly doen, op dezelfde manier dat ik niet aan zou raden een processor op een breadboard te bouwen of met losse transistortjes in elkaar te zetten (al heb ik wel sympathie voor je doel). Dan gaat het heel erg veel tijd kosten om dingen die heel alledaags zijn uit te leggen.