Atmega328 uit Arduino uno zelfstandig gebruiken

Kan je de Atmega328 uit een Arduino uno nemen om zelfstandig te gebruiken buiten het Arduino board?

Klopt de uitleg in bijlage?

Atmega328 Arduino Uno.docx

Ja hoor, is er een specifieke reden waarom u daaraan twijfelt ?

Het verhaaltje klopt, maar er moet nog wat ontkoppeling bij. Hoe? Dat staat in de datasheet.

Damn the torpedoes, full speed ahead!

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?

https://www.sparkfun.com/datasheets/Components/SMD/ATMega328.pdf

[Bericht gewijzigd door Etienne51 op vrijdag 7 juni 2019 22:43:19 (27%)

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

ik zal je vertellen ik heb vaak genoeg een lossed atmega chip gebruikt
met alleen een cristal en verder niks
werkt prima hoor
maar je moet wel atmega chips hebben waar de bootloader op staat anders kan je er niks mee
(als je echt wil lachen moet je de attiny85 gebruiken)

buckfast_beekeeper

Golden Member

Ik heb nog nooit een bootloader gebruikt. Ik zou ook niet weten waarom ik daar geheugen zou aan opofferen. Een goede programmer en je kan vooruit.

edit: @TS: begin eens met een schema te posten. Elke GND moet aangesloten worden. Tussen GND en VCC een c van 100n? Gebruik je geen ADC? Leg dan ook AVCC en AREF aan VCC.
Staan de fuses goed? Interne of externe klok?

Je post is wel heel summier. Kan het werken? Ja. Zet er ook eens bij wat je hebt gedaan en geprobeerd. Te veel info is zelden het probleem. Eerder moet alles eruit gepeuterd worden.

[Bericht gewijzigd door buckfast_beekeeper op zaterdag 8 juni 2019 10:15:45 (58%)

Van Lambiek wordt goede geuze gemaakt.

Zelfs zonder een extra kristal kan het perfect werken, want een atmega328p heeft een interne RC oscillator. Ook een bootloader heb je niet nodig. Je kan het gewoon via ISP programmeren.

Maar de vraag is: is het dan nog altijd een Arduino? Waar trek je de grens?

Arco

Special Member

Een arduino is het board zelf, dat er een Atmega op zit is 'toeval'. (het had ook wat anders kunnen zijn)
Een losse Atmega is gewoon... een Atmega.

(als je een wiel van je auto afhaalt, blijf je dat wiel toch ook geen auto noemen?... ;) )

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Ik gebruik tegenwoordig zo veel mogelijk STM32 chips. Die hebben een bootloader in ROM(*) zitten... :-)

(*) Ik /denk/ dat ie in FLASH zit en tijdens het testen in de fabriek er in gezet wordt. De flash-control module heeft voor normale flash een unlocking sequence: schrijf XXX naar register xxx schrijf YYY Naar register yyy, dat zal andere constantes XXX en YYY hebben om schrijven naar "system ROM' mogelijk te maken.

@arco: Je ZOU er voor kunnen kiezen om het een "arduino" te blijven noemen zolang je de arduino bootloader er in hebt zitten (en gebruikt?). Of "zolang je de arduino IDE gebruikt om hem te programmeren".

[Bericht gewijzigd door rew op zaterdag 8 juni 2019 12:17:42 (20%)

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

Golden Member

Op 8 juni 2019 12:14:48 schreef Arco:
Een arduino is het board zelf, dat er een Atmega op zit is 'toeval'. (het had ook wat anders kunnen zijn)
Een losse Atmega is gewoon... een Atmega.

(als je een wiel van je auto afhaalt, blijf je dat wiel toch ook geen auto noemen?... ;) )

Inderdaad. Zo denk ik er ook over. Een Arduino is het geheel. Toevallig een ATmega328 aan boord. Het evengoed een PIC of een ATmega48, 88 of 168 kunnen zijn. Hoeveel weten er trouwens welke ATmega er op staat?

edit: @rew ik heb nog nooit nood gehad een bootloader te gebruiken. Ik zie het alleen als extra ballast. 99,9% van mijn projecten heeft ook geen USB, ik zou het dan extra moeten implementeren. Vind ik helemaal te gek.

[Bericht gewijzigd door buckfast_beekeeper op zaterdag 8 juni 2019 12:31:47 (17%)

Van Lambiek wordt goede geuze gemaakt.

En jij hebt nooit software geschreven waar je later een bug in vond? Hmm. Petje af!

Mijn hardware heeft de mogelijkheid voor een field-upgrade, meestal zonder extra kosten of hardware. Het voordeel boven de standaard "programmer header" is dat deze fieldupgrade vaak zonder extra hardware door de klant gedaan kan worden.

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

Golden Member

Ik bouw niet voor derden. De programmer is er. De header is ook aanwezig. Als je de PicKit 4 gebruikt kan je ook zonder PC een upgrade doen. Deze is ook bruikbaar met ATmega.

Van Lambiek wordt goede geuze gemaakt.
Kruimel

Golden Member

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.

Ik gebruik altijd dit printje ,geprogrammeerde IC er in en de pinnen bedraden klaar.
Gr Bert

Electronica is mooi als het goed werkt

Op 8 juni 2019 12:29:57 schreef buckfast_beekeeper:
[...]
Hoeveel weten er trouwens welke ATmega er op staat?
.

hmmmm... bji een arduino nano schat ik : iedereen
aangezien je in de software moet selecteren welke arduino je gebruikt.
en bij de nano moet je dan nog eens apart je atmega chip selecteren (168 of de 328)

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

Sorry voor de laattijdige reactie, maar ik ben nog bezig te testen aan de hand van de antwoorden.

Ik heb een Atmega8 geprogrammeerd met mijn programmer van Fischl en het programma BASCOM.De sketch is een 6led blink test. Ik heb de Atmega8 zelfstandig gebruikt in de eerder vermelde schakeling in bijlage. Het programma werd foutloos uitgevoerd op de overeenkomstige pinnen.

Als ik een 6led blink test (digital pin 2 tot 7) in de Atmega328 invoer met de Arduino Uno en ik gebruik de 328 zelfstandig in de schakeling (pin 4,5,6,11,12 en 13) voert de Atmega328 het programma niet uit.
De gemeten spanning bij Atmega 8 of 328 aan pin 7 is telkens 5V.

Atmega328 Arduino Uno.docx

Alleszins al bedankt voor de interessante reacties. Ik zoek nog verder aan de hand van de antwoorden.

Heb je een pullup op de reset lijn? De "fuses" van de chip zullen wel op "external crystal" staan. Dat is wat er op een arduino gebruikt wordt. Als je dan geen kristal hebt dan werkt ie niet. Ofwel je moet met de fuses gaan klooien (als je het verkeerd doet, brick je de atmega) of een kristal monteren.

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

pullup = 10K external crystal = 16MHz

Kruimel

Golden Member

Ben ik de enige die de bijlage niet ziet?

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/

Bedankt Kruimel voor je reactie. De reden voor het zelfstandig gebruik van de Atmega328 is onze CODERDOJO. Wij leren kinderen van 7 tot 17 maandelijks programmeren. Wij starten met SCRATCH, gaan verder met S4A of ARDUBLOCK en vervolgen met ARDUINO. Nu wil ik de leerlingen tonen dat de Atmega328 van de Arduino Uno zelfstandig kan werken.Zo krijgen ze meer inzicht in de werking...

REW ook bedankt,foto volgt nog ...

Op 13 juni 2019 12:16:21 schreef Etienne51:
Bedankt Kruimel voor je reactie. De reden voor het zelfstandig gebruik van de Atmega328 is onze CODERDOJO. Wij leren kinderen van 7 tot 17 maandelijks programmeren. Wij starten met SCRATCH, gaan verder met S4A of ARDUBLOCK en vervolgen met ARDUINO. Nu wil ik de leerlingen tonen dat de Atmega328 van de Arduino Uno zelfstandig kan werken.Zo krijgen ze meer inzicht in de werking...

REW ook bedankt,foto volgt nog ...

Een een oud-collega-student van me is ook actief bij Coderdojo. Hij is zeer bedreven met AVR. Misschien kan je met hem overleggen hoe je deze workshop best voorbereidt? :) (Ik kan zijn naam eventueel doorspelen via mail. Dat zet ik liever niet zomaar op een openbaar forum zonder hem eerst te vragen)

Los daarvan: Je zegt dat je in de stap die na Arduino komt de studenten inzicht wil geven in de werking van de microcontroller. Persoonlijk lijkt het mij dan zinniger om ze rechtstreeks een AVR te laten programmeren, zonder alle Arduino-meuk rond. Ze moeten dan gaan kijken hoe de registers werken, en hoe ze ingesteld moeten worden vooraleer er een pin op hoog of laag gezet kan worden. In Arduino wordt dit namelijk volledig afgeschermd.

Inderdaad Opifex, dat is ook mijn bedoeling...

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.