Autore Topic: Mini1541  (Letto 9711 volte)

tsm_carmine

  • Redazione
  • Utente
  • ****
  • Post: 513
  • Gioco Preferito: Krakout
Mini1541
« Risposta #15 il: 23 Maggio 2012, 02:52:32 »
 
Citazione da: "Antiriad"
Grazie. Ho scaricato il file m2itopc64.c. Sai come si usa? Devo copiarlo sulla sd2iec?
È un sorgente da compilare. Ottenuto il file eseguibile, lo si usa su PC. Se vuoi provare la versione compilata da me, vai qui e clicca su "Click here to start download from sendspace". Occhio che si tratta di un tool a linea di comando. Per usarlo digita:
m2itopc64
Riusciremo a costruire un mondo dove più nessuno osi pronunciare le parole... "lettore floppy"?

Antiriad

  • Utente
  • **
  • Post: 267
  • Gioco Preferito: Antiriad
Mini1541
« Risposta #16 il: 24 Maggio 2012, 03:32:08 »
 Carmine sei un genio  :metal: fortuna che sono cresciuto con il dos e con
-zip c:\* e bla bla bla. Funziona tutto bene. Toglimi una curiosità: a che cosa servono le utility  newboot e tapplay per la sd2iec (contenuti sempre su sd2iec file dump)?


saluti


A.    

tsm_carmine

  • Redazione
  • Utente
  • ****
  • Post: 513
  • Gioco Preferito: Krakout
Mini1541
« Risposta #17 il: 24 Maggio 2012, 16:43:54 »
 Newboot è un bootloader migliorato. Il bootloader è quel programmino che si inserisce nel microcontrollore tramite un'apposita interfaccia chiamata programmatore e si occupa di leggere il firmware dalla scheda SD e caricarlo a sua volta nel microcontrollore.
I miglioramenti rispetto al bootloader usato precedentemente riguardano soprattutto l'algoritmo che stabilisce se caricare o meno un firmware eventualmente trovato sulla scheda.

Tapplay è un firmware alternativo, che trasforma la SD2IEC in qualcosa di diverso, credo per caricare i file TAP simulando un registratore, ma forse sbaglio, dato che non esiste documentazione a riguardo.
Riusciremo a costruire un mondo dove più nessuno osi pronunciare le parole... "lettore floppy"?

Antiriad

  • Utente
  • **
  • Post: 267
  • Gioco Preferito: Antiriad
Mini1541
« Risposta #18 il: 24 Maggio 2012, 18:50:06 »
 Per aggiornare il 'newboot' ovviamente bisogna programmare il microcontrollore e quindi servirà un programmatore atmel con relativo programma (tipo ponyprog) ...almeno credo sia così.

saluti


A.

4e1541

  • Utente
  • **
  • Post: 206
  • Gioco Preferito: nessuno in particolare
Mini1541
« Risposta #19 il: 25 Maggio 2012, 13:00:47 »
 @Antiriad, si puoi usare ponyprog.
Dai un'occhiata qui: http://www.circuitvalley.com/2011/04/avr-s...programmer.html

In ogni caso lo standard de facto e' avrdude da utilizzare con un programmatore (parallelo,  seriale, usbasp, ftdi in bb, etc.).

ciao

Antiriad

  • Utente
  • **
  • Post: 267
  • Gioco Preferito: Antiriad
Mini1541
« Risposta #20 il: 25 Maggio 2012, 15:51:23 »
Citazione da: "4e1541"
@Antiriad, si puoi usare ponyprog.
Dai un'occhiata qui: http://www.circuitvalley.com/2011/04/avr-s...programmer.html

In ogni caso lo standard de facto e' avrdude da utilizzare con un programmatore (parallelo,  seriale, usbasp, ftdi in bb, etc.).

ciao
Quel programmatore l'ho costruito non funziona, o meglio funziona  se non  devi modificare i fuse bits  altrimenti :headshake: ti blocca il micro.

Per questo ne ho acquistato uno serio. Devo vedere se sulla sd2iec  sono stati lasciati i pin per programmarlo....certamente non posso dissadarlo é montarlo su uno zoccolo.


saluti

A.

tsm_carmine

  • Redazione
  • Utente
  • ****
  • Post: 513
  • Gioco Preferito: Krakout
Mini1541
« Risposta #21 il: 25 Maggio 2012, 17:29:12 »
 Se ti sei trovato il microcontrollore bloccato per settaggio errato dei fusebits, ma inizialmente riuscivi a leggere e scrivere correttamente i dati, penso che il programmatore funzionasse. Il problema dovrebbe essere altrove.
Riusciremo a costruire un mondo dove più nessuno osi pronunciare le parole... "lettore floppy"?

4e1541

  • Utente
  • **
  • Post: 206
  • Gioco Preferito: nessuno in particolare
Mini1541
« Risposta #22 il: 25 Maggio 2012, 18:51:55 »
 @Antiriad: io utilizzo avrdude con patch ftdi e arduino 2009 oppure l'avrdude liscio se utilizzo usbasp. Ma per comodita' uso quasi sempre il primo.

Per il resto il seriale non l'ho provato, ma chi l'ha realizzato lo trova lento perche' devi impostare una velocita' bassa della seriale, mentre con i metodi citati puoi impostare 115200 come velocita' di programmazione, anche se la scrittura dei fuses e' sempre consigliabile farla a velocita' basse.

Comunque a volte quando scrivi i fuses perdi il micro semplicemente perche uno si sbaglia ed attiva l'oscillatore esterno.
In quel caso se usi una BB per i collegamenti, basta connettere un quarzo al micro per farlo "resuscitare".


ciao

Antiriad

  • Utente
  • **
  • Post: 267
  • Gioco Preferito: Antiriad
Mini1541
« Risposta #23 il: 25 Maggio 2012, 20:32:30 »
 Più di un utente si é lamentato del programmatore in questione linkato da 4e1541. Poi può essere che tanti di noi non avevamo capito come settare la porta com. Certo é che da quando sono passato ad un programmatore su porta parallela non ho più avuto problemi. Ho diversi chip atmel bloccati da quel maledetto programmatore, e mi piacerebbe riutilizzarli (anche perché per riacquistarli devi fare il solito ordine all rs components visto che dalle mie parti non si trovano). Però mi hanno sempre detto che per sbloccarli c'era bisogno di costruire/acquistare un programmatore a parte che fa solo quello.
4e1541 ci colleghi ai piedini un quarzo e poi? Si riattiva da solo e puoi riportalo allo stato di default?

saluti

A.    

tsm_carmine

  • Redazione
  • Utente
  • ****
  • Post: 513
  • Gioco Preferito: Krakout
Mini1541
« Risposta #24 il: 25 Maggio 2012, 21:06:34 »
 Se hai impostato erroneamente i fusebit selezionando come sorgente di clock un segnale esterno, ti basta fornire un segnale adeguato affinché il microcontrollore funzioni e torni a dialogare con il programmatore.
Io ci sono riuscito costruendo una piccola parte del circuito presente in questa pagina, quella situata più in basso (ho usato un 74HCU04 e un cristallo a 4 MHz). Si alimenta opportunamente il circuito e si collega il segnale che esce all'ingresso clock del microcontrollore. In questo modo ho recuperato due ATMega32 che avevo bloccato con PonyProg. Ho anche letto che alcuni hanno semplicemente programmato un altro microcontrollore facendogli emettere un segnale oscillante, che hanno usato come sorgente di clock per il chip da recuperare.
Oppure ci sono programmatori più complessi che supportano la programmazione "high voltage" o tramite Jtag, ma non li ho mai usati. Io uso questo.
Riusciremo a costruire un mondo dove più nessuno osi pronunciare le parole... "lettore floppy"?

4e1541

  • Utente
  • **
  • Post: 206
  • Gioco Preferito: nessuno in particolare
Mini1541
« Risposta #25 il: 26 Maggio 2012, 14:50:27 »
 @Antiriad: ho segnalato il link, ma non ho mai detto che sia consigliato utilizzare un hardware di quel tipo, ne tantomeno ponyprog, dal momento che praticamente tutto il mondo che gira intorno alle mcu atmel utilizza avrdude (che fra l'altro e' multipiattaforma).

Se uno vuole stare tranquillo, come dicevi, deve utilizzare un programmatore meno critico.

Per il momento non ho dovuto realizzare soluzioni esoteriche (come quelle citate da tsm_carmine) per recuperare dei chip, al massimo m'e' capitato di collegare un clock esterno alla mcu per poterla riprogrammare.

In ogni caso ho l'impressione che con avrdude sia piu' difficile fare casino coi fuse.

In rete si leggono diversi thread sul problema della mcu bloccate, ma nel 99% si tratta solo di problemi di clock.

ciao

Antiriad

  • Utente
  • **
  • Post: 267
  • Gioco Preferito: Antiriad
Mini1541
« Risposta #26 il: 29 Maggio 2012, 02:47:33 »
 
Citazione da: "tsm_carmine"
Per evitare di dover cambiare disco ci sono altri modi:

- Trasferire tutti i file in immagini più grandi, come D71 e D81
- Laddove possibile (tutti i file sono di tipo PRG e non hanno caratteri strani nei nomi) inserire i file in una directory con i loro veri nomi
- Utilizzare il formato PC64 (quello con estensioni tipo P00 ecc.); Su sd2iec file dump c'è un'utility chiamata m2itopc64.c che converte automaticamente da M2I a PC64
Carmine sto usando l'ultima versione di 64copy (la 4.44) ma continua a non farmi il change disk. Come "cavia" sto usando un capolavoro della Microprose : Gunship.

Prima apro il d64 poi seleziono con select group tutti i files prg e infine faccio o f5 (copy files) o f11 (convert) e seleziono il formato PC64. Una volta ottenuti i  p00 (per gunship sono 89) li metto tutti nella stessa directory. Il gioco parte ma quando arrivo al change disk non me lo fa  :doh:

Ho provato anche con il formato D71 e D81, ho selezionato i precedenti p00 e li ho copiati o convertiti ( a me sembra che f5 e f11 facciano la stessa cosa) nel singolo file D71 e D81(quando li apro i file ovviamente vengono visualizzati come prg e non come p00). Ma il risultato é lo stesso: si blocca al change disk.

Forse devo selezionare una delle seguenti opzioni nel menù del copy/convert files?

-   create separate files
-   Auto-convert filesnames
-   keep DOS filename case
-   Add c64 type to name
-   remove dos extension
-   Extend disk directory

saluti

A.

Antiriad

  • Utente
  • **
  • Post: 267
  • Gioco Preferito: Antiriad
Mini1541
« Risposta #27 il: 29 Maggio 2012, 03:44:56 »
 
Citazione da: "tsm_carmine"
Se hai impostato erroneamente i fusebit selezionando come sorgente di clock un segnale esterno
Scusa Carmine (e vale anche per 4e1541) ma aiutatemi a capire se sbagliavo o no le impostazioni.

Dovevo costruire un circuito con atmega8 con quarzo esterno da 12 mhz da saldare ai piedini xtal1 e xtal2.

Io per calcolare i fusebits uso questa pagina :

http://www.engbedded.com/fusecalc/

Ho selezionato Atmega8 e in features l'ultima voce, ovvero :

Ext. Crystal/resonator high freq. startup time: 16k ck + 64 ms: cksel= 1111 e sut=11 lasciando tutte le altre voci  invariate.

Con Ponyprog nei fusebits configuration ho settato cksel3 e sut1 e mi si é bloccato il micro (senza toccare i fusebits flashavo senza problemi)

Con avrdude scrissi:

avrdude.exe -p m8 -c ponyser -P com1 -u lfuse:w:0xff:m -u hfuse:w:0xd9:m flash:w:nomefile.hex

e lo stesso si é bloccato.

Avrdude mi diceva:

 avrdude.exe: AVR device not responding
avrdude.exe: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

Sbagliavo io o era un problema di programmatore?  :popcorn:

saluti

A.

4e1541

  • Utente
  • **
  • Post: 206
  • Gioco Preferito: nessuno in particolare
Mini1541
« Risposta #28 il: 29 Maggio 2012, 09:28:31 »
 @Antiriad: uso anch'io quel calcolatore.

L'unica accortezza quando si fanno i calcoli a mano e che i fusebit sono impostati dal calcolatore quando non hanno il check (=0).

Per il resto ho sempre impostato la mcu in base a progetti gia realizzati.

Direi che per il clock manca il set di CKOPT (almeno da quanto impostano tanti progetti, uno fra tutti v-usb).

Chiaramente una volta impostati in quella  maniera i fusebit devi collegare un oscillatore ai pin osc1 e osc2 della mcu. altrimenti non riesci piu' a programmarla via spi.

ciao

Antiriad

  • Utente
  • **
  • Post: 267
  • Gioco Preferito: Antiriad
Mini1541
« Risposta #29 il: 29 Maggio 2012, 16:56:29 »
 @4e1541

Purtroppo é facile sbagliare con i fusebits :dotto:

Infatti con il senno di poi mi sono accorto di aver sbagliato anche il settaggio e di conseguenza  la riga di avr dude...non dovevo settare cksel 3 ma cksel 0 1 e 2 e ckopt e infatti mi esce:

 -U lfuse:w:0xe8:m -U hfuse:w:0xcf:m = ext. rc. osc. 8.0 12.0 mhz e io dovevo montare un quarzo appunto da 12 mhz.

Invece quello che scrissi all'epoca (che ho riportato nel precedente post) é diverso.

All'epoca ero agli inizi e facilmente sbagliavo...d'altronde, ripeto é facile confondersi. Ad esempio spuntare RSTDISBL significa disattivarlo non abilitarlo....é facile andare in confusione con i fuse bits.

Adesso quello che mi preme é recuperare questi atmega8...ma non ho un  un circuito elettronico che genera forme d'onda di frequenza.

Per questo l'unica via che mi resta é quella suggerita da tsm_carmine, ma la vedo dura...

saluti

A.