Arduino Atmel los gebruiken

Hoi iedereen,

Ik ben al een tijdje met arduino lopen te spelen en vroeg me af wat er nodig voor is om een losse atmel te programmeren via de arduino, die los te koppelen en er een pcb voor maken. Welke onderdelen komen zowieso op de pcb dan? (wat niet projectgerelateerd is)
Of is er ergens een schema te vinden die duidelijk maakt hoe zon print eruit zal zien?
Een waar alleen broodnodige op zit zoals de voeding, de onderdelen waardoor de atmel kan werken en dan zonder de project gerelateerde onderdelen.

Bij het zoeken naar 'ATmega328 minimum circuit' komen er vrij veel resultaten met enkel een weerstand, een kristal, en twee keramische c-tjes. Dat zou kunnen werken, maar daar kan je niet op vertrouwen. In de datasheet staat ook nog het één en ander over ontkoppeling en aansluiting van de voedingsspanning. Het maakt het allemaal wat bruikbaarder als je daar ook rekening mee houdt.

Damn the torpedoes, full speed ahead!
bprosman

Golden Member

Voor een project van mezelf (timer voor industriele wasdroger) heb ik dit schema gemaakt. Aangegeven wat je minimaal nodig hebt. De software ontwikkel ik dan in de Arduino omgeving en programmeer dat dan in de Atmel met een AVRisp via de programmeer connector.
Bootloader gebruik ik niet.

In de datasheet staat ook nog het één en ander over ontkoppeling en aansluiting van de voedingsspanning.

Standaard ontkoppel ik alles met 100nF direct aan de voedingsaansluitingen. De uitgangen PC0-PC3 sturen via een transistor een relais waar 2kW verwarming mee gestuurd wordt zonder "lockups".
Kristal vind ik persoonlijk overigens horen bij "minimaal".

De jongere generatie loopt veel te vaak zijn PIC achterna.

Op 11 december 2019 15:42:13 schreef bprosman:
Voor een project van mezelf (timer voor industriele wasdroger) heb ik dit schema gemaakt. Aangegeven wat je minimaal nodig hebt. De software ontwikkel ik dan in de Arduino omgeving en programmeer dat dan in de Atmel met een AVRisp via de programmeer connector.
Bootloader gebruik ik niet.

[...]
Standaard ontkoppel ik alles met 100nF direct aan de voedingsaansluitingen. De uitgangen PC0-PC3 sturen via een transistor een relais waar 2kW verwarming mee gestuurd wordt zonder "lockups".
Kristal vind ik persoonlijk overigens horen bij "minimaal".

[bijlage]

Ik had ook het een en ander nog gelezen ergens maar overal kwam er een bootloader te pas. Maar als ik dan een lege atmel chip in de arduino plaats kan ik deze gewoon programmeren via arduino ide?

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

Dit zou dan het minimale zijn voor een projectje? Of moet er bij de voeding dan nog een spanningsregulator erin voor de 5v?

Ik heb daar een speciale lay-out voor gemaakt,met pennetjes die je zo kan gebruiken,zie de bijlage. zeg maar of je interesse heb.
Gr Bert

Electronica is mooi als het goed werkt
Arco

Special Member

Of moet er bij de voeding dan nog een spanningsregulator erin voor de 5v?

Als je voeding al 5v is: nee. Als de spanning hoger is dan uiteraard wel...

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

Op 11 december 2019 16:06:25 schreef Bertjebuk:
Ik heb daar een speciale lay-out voor gemaakt,met pennetjes die je zo kan gebruiken,zie de bijlage. zeg maar of je interesse heb.
Gr Bert

Dit is wel een erg mooie om mee te beginnen. Zou je de schematics kunnen doorsturen?

bprosman

Golden Member

Maar als ik dan een lege atmel chip in de arduino plaats kan ik deze gewoon programmeren via arduino ide?

Ja hoor, met een AVRisp programmer wel. Je kunt ook een Arduino (UNO oid) omtoveren tot een AVRisp programmer.

https://hardwarefun.com/tutorials/use-arduino-as-an-isp-programmer-to-…

De jongere generatie loopt veel te vaak zijn PIC achterna.

@Infernius:
Zorg er ook voor dat alle pinnen aan een gedefinieerd nivo hangen. Dus aan 0 of 5V. Niet "los" laten hangen.

Vervangen DOOR.
bprosman

Golden Member

Zorg er ook voor dat alle pinnen aan een gedefinieerd nivo hangen. Dus aan 0 of 5V. Niet "los" laten hangen.

Voor de reset geef ik je gelijk, de rest kan ook met de interne pull-up's.

De jongere generatie loopt veel te vaak zijn PIC achterna.
buckfast_beekeeper

Golden Member

Of definieer ze als uitgang.

Van Lambiek wordt goede geuze gemaakt.

ik weet niert of je het voor op arduino gecompileerde code persee het kristal nodig hebt.
Al je geen strakke uart communicatie hoeft te doen of heel nauwkeurig iets met tijd te doen, kun je net zo goed de interne RC gebruiken.
Scheelt weer 3 componenten :)

i.B. zet je Mail adres even bij je gegevens,dan kan ik het een en ander naar je toe sturen
Gr Bert

Electronica is mooi als het goed werkt
Arco

Special Member

Voor niet gebruikte pinnen wordt geadviseerd die als low-level output te zetten...

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

Op 12 december 2019 11:51:10 schreef Stijnos:
ik weet niert of je het voor op arduino gecompileerde code persee het kristal nodig hebt.
Al je geen strakke uart communicatie hoeft te doen of heel nauwkeurig iets met tijd te doen, kun je net zo goed de interne RC gebruiken.
Scheelt weer 3 componenten :)

Dan moet je wel de fuses omzetten naar interne RC. En daar heb je een ISP voor nodig, niet?

Suffering from wiseass oneliner blackout

Op 13 december 2019 01:48:54 schreef Bert_mc:
[...]

Dan moet je wel de fuses omzetten naar interne RC. En daar heb je een ISP voor nodig, niet?

Maar die heb je zowieso nodig om of de arduino bootloader of de kale firmware te flashen toch? ;)
En standaard staan de AVR fuses op de interne RC.

infernius Buster; Hier de Layout koperzijde met en zonder gestabiliseerde voeding
Gr Bert

Electronica is mooi als het goed werkt

Op 11 december 2019 15:48:36 schreef Infernius Buster:
Ik had ook het een en ander nog gelezen ergens maar overal kwam er een bootloader te pas. Maar als ik dan een lege atmel chip in de arduino plaats kan ik deze gewoon programmeren via arduino ide?

Dat heb je dan goed gelezen: dat klopt.

Je moet de lege chip even op een breadbaord plaatsen, 6 draadjes aansluiten tussen je bestaande arduino en het ding op het breadboard, en dan je bestaande arduino tot programmer programmeren en dan "burn bootloader" doen. Dit alles schijnt tegenwoordig via point-and-click in de GUI te kunnen. Ik zelf heb een programmer, dus ik vind dat praktischer.

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

Golden Member

Motiveert wel om er (snel) een Kicad ontwerpje van te maken :-)

De jongere generatie loopt veel te vaak zijn PIC achterna.

Op 13 december 2019 01:48:54 schreef Bert_mc:
[...]

Dan moet je wel de fuses omzetten naar interne RC. En daar heb je een ISP voor nodig, niet?

Een Arduino kun je programmeren als ISP (bestand->voorbeelden->ArduinoISP). Rode dropveter aan de rode en blauwe aan de blauwe. Zie kopje "Minimal Circuit (Eliminating the External Clock)" https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard

Op http://www.engbedded.com/fusecalc/ kun je de fuses berekenen.

Daarna je programma, inclusief fuses voor gebruik interne RC, inbranden met avrdude:

code:

avrdude -c avrisp -P /dev/cu.usbmodem[xxxx] -p m328p -b19200 -U lfuse:w:0xe2:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m -U flash:w:mijn_programma.hex 

Vervolgens kun je je Atmega328P (pdip-28) draaien zonder enig andere onderdelen anders dan een +5V op VCC/AVCC (pin 7, 20) en 0 op GND (pin 8, 22). Verstandig is wel +5V op AREF (pin 21) en een 10k pull-up op reset (pin 1). En ontkoppelingscondensator op de voeding in de buurt van de atmega uiteraard.

Weet iemand trouwens of de arduino bootloader nu steeds overschreven worst of niet?
Ik heb een custom atmega2560 print met daarin arduino code.
Ik heb de bootloader iets wat gecustomized door achteraan de hex code wat extra init variabelen te zetten.
Mijn doel is om de bootloader dus uniek per print te maken en dan met 1 hex file te updaten. Het lijkt er alleen op dat die stk500 bootloader steeds overschreven wordt, want het werkt steeds maar 1x.
Qua size lijkt de bootloader me ook best groot.

Als je de chip dmv ISP programmeert dan begin je met een chip erase, en dan is de bootloader verdwenen. Die kun je dan wel als je wilt via ISP opnieuw laden.

Maar als je programmeert dmv de bootloader, dan moet de bootloader gewoon blijven zitten. Als dat niet zo is, dan is er iets mis. Misschien is je hex file te groot. Die moet stoppen voordat je bij de bootloader bent.

Ja dat laatste dacht ik dus ook.
Dat verwacht ik van een bootloader, maar misschien doet arduino wat anders dacht ik
De build folder heeft volgens mij namelijk hex files met en zonder bootloader