Go Down

Topic: ATmega328PB (Read 102890 times) previous topic - next topic

PaoloP

Considera che è una scheda di sviluppo di ATmel ed è perfettamente configurabile tramite ATmel Studio. Sono io che la voglio usare con l'IDE di Arduino e quindi mi tocca fare le acrobazie.
Questo finché non produrremo le schedine con il 328PB.

astrobeed

Ma se cambio il firmware del 32U4 mettendo su "Arduino as ISP", perdo il clock?
Se non cambi i fuse no.
Scientia potentia est

astrobeed

Possibile che il software sul 32u4 usa un timer per fornire un clock al 328, se fosse così da protocollo dovrebbe essere possibile modificare il valore del timer.
Non usa nessun timer, sulla maggior parte degli AVR è possibile ripetere il clock su un pin settando il fuse CKOUT, ed è questo che viene fatto sulla scheda Atmel, in pratica con un solo quarzo forniscono il clock a tutti e due i micro.
Scientia potentia est

astrobeed

Questo pdf (dovrebbe essere di Atmel) spiega come usare la loro schedina con l'IDE di Arduino, è per la versione con il 328P però non credo cambi nulla per la versione con il 328PB.
Stranamente dicono di caricare l'optiboot standard e non quello per SPI, mi sa tanto che il 32u4 è collegato anche tramite seriale, tocca vedere lo schema della scheda, per il reset dicono di mettere un ponticello sul connettore ISP.
Mi sa tanto che si fa prima a caricarci sopra il software tramite uno dei vari programmatori ISP supportati dal IDE di Arduino. :)
Scientia potentia est

astrobeed

Confermo che anche la seriale è collegata tra il 32u4 e il 328PB, tramite resistenze da 1k come su Arduino in modo da permettere l'uso con device esterni.
La linea di reset è gestita da PE6 sul Atmega 32u4 e non dovrebbe essere un problema farla commutare quando c'è il DTR, tocca vedere come lavora l'emulazione programmatore del 16u2 usato su Arduino UNO, modificare il pin del reset, se necessario, e ricompilare per il 32u4, appena mi arriva lo schedino ci penso io a farlo.
Scientia potentia est

astrobeed

#215
Feb 05, 2016, 01:59 pm Last Edit: Feb 05, 2016, 02:01 pm by astrobeed
Dimenticavo, link per scaricare lo schema della 328PB Xplained.
Scientia potentia est

testato

#216
Feb 05, 2016, 03:15 pm Last Edit: Feb 05, 2016, 03:16 pm by Testato
mi sa tanto che il 32u4 è collegato anche tramite seriale
Non potrebbe essere altrimenti visto che il protocollo debugWire funziona attraverso il pin Reset del 328.
L'unica cosa nella probrammazione via optiboot e' che si perde il reset automatico perche' il debugWire e' allergico al condensatore  :)

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

astrobeed

Non potrebbe essere altrimenti visto che il protocollo debugWire funziona attraverso il pin Reset del 328.
Cosa c'entra il debug wire con la seriale ?

Quote
L'unica cosa nella probrammazione via optiboot e' che si perde il reset automatico perche' il debugWire e' allergico al condensatore  :)
Infatti il condensatore non ci va, quella è una cosa che deriva dalla vecchia 2009 dove c'era l'FTDI, con i 16u2, o il 32u4, non serve a nulla visto che il reset lo comandi direttamente da un pin, basta tenere il pin in condizione di alta impedenza (input) quando non deve resettare il 328, si setta come out low quando deve resettare per qualche decina di microsecondi.
Scientia potentia est

testato

#218
Feb 05, 2016, 06:05 pm Last Edit: Feb 05, 2016, 06:06 pm by Testato
si ho mischiato le cose  :)
ma restando sul discorso reset, il firmware attuale ufficiale arduino, montato nei 32u4, gia' e' in grado di resettare il 328 senza il C di mezzo ?
Non ho mai provato a bypassare il C su una Uno R3 e vedere se continua a funzionare
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

astrobeed

si ho mischiato le cose  :)
ma restando sul discorso reset, il firmware attuale ufficiale arduino, montato nei 32u4, gia' e' in grado di resettare il 328 senza il C di mezzo ?
Non credo, mi sa tanto che all'Arduino Team ancora non hanno capito che quel condensatore non serve a nulla e che sarebbe facilissimo gestire la questione autoreset si/no, oppure autoreset solo durante la programmazione, da software senza passare per DTR più condensatore.
Scientia potentia est

testato

@Paolo

hai provato a caricare il firmware usb/seriale via Flip sul 32u4 + il bootloader sul 328, e vedere se si riesce a programmare come una semplice Uno ?
se non funziona causa mancanza del C dovresti comunque poter fare l'upload resettando manualmente il solo 328 al momento giusto
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Etemenanki

... in Cina c'è il capodanno ed è tutto fermo ...
Se vuoi, nel frattempo posso buttare giu qualcosa lo stesso, cosi vedi cosa ne esce e se ti va bene ...
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

Maurotec

Quote
Non usa nessun timer, sulla maggior parte degli AVR è possibile ripetere il clock su un pin settando il fuse CKOUT, ed è questo che viene fatto sulla scheda Atmel, in pratica con un solo quarzo forniscono il clock a tutti e due i micro.
Si lo sapevo ;) , io mi riferivo al commento di: PaoloP

Quindi come si spiega che la frequenza cambia in automatico?

Ciao.

PaoloP

#223
Feb 08, 2016, 11:16 am Last Edit: Feb 08, 2016, 11:17 am by PaoloP
Il chip del mEDBG è un classico 32U4. Dal suo datasheet (http://www.atmel.com/images/atmel-7766-8-bit-avr-atmega16u4-32u4_datasheet.pdf) si legge
Quote
6.8 Clock Output Buffer
The device can output the system clock on the CLKO pin. To enable the output, the CKOUT Fuse has to be
programmed. This mode is suitable when the chip clock is used to drive other circuits on the system. The clock
also will be output during reset, and the normal operation of I/O pin will be overridden when the fuse is
programmed. Any clock source, including the internal RC Oscillator, can be selected when the clock is output on
CLKO. If the System Clock Prescaler is used, it is the divided system clock that is output.

PaoloP

#224
Feb 10, 2016, 06:50 pm Last Edit: Feb 10, 2016, 06:55 pm by PaoloP
Ci siamo quasi!!

Quote
Arduino:1.6.7 (Windows XP), Scheda:"Arduino 328pb"

In file included from F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\wiring_pulse.S:52:0:

f:\arduino-1.6.7\hardware\tools\avr\avr\include\avr\io.h:623:6: warning: #warning "device type not defined" [-Wcpp]

 #    warning "device type not defined"

      ^

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c: In function 'attachInterrupt':

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c:151:8: error: #error attachInterrupt not finished for this CPU (case 0)

       #error attachInterrupt not finished for this CPU (case 0)

        ^

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c: In function 'detachInterrupt':

F:\arduino-1.6.7\hardware\arduino\avr\cores\arduino\WInterrupts.c:243:8: error: #error detachInterrupt not finished for this cpu

       #error detachInterrupt not finished for this cpu

        ^

exit status 1
Errore durante la compilazione

  Questo report potrebbe essere più ricco di informazioni con
  "Mostra un output dettagliato durante la compilazione"
  abilitato in "File > Impostazioni"
Naturalmente lui cerca __ATMEGA328PB__ e non trova la cpu corrispondente. Ma avr-gcc compila!!

Go Up