Arduino ad uso "ICD2"

È possibile utilizzare arduino come programmatore per PIC ICD2 con tanto di debugger in circuit o almeno realizzare la sola programmazione del PIC?

ciao

Arduino supporta solo i processori AVR

Le PIC mi fanno venire i brividi freddi :))

comunuqe c'è un progetto che si chiama "pinguino" che è una specie di arduino per le pic.

m

Ehm... io volevo usare arduino stesso come programmatore se possibile. In fondo si tratta solo di mandargli un flusso di dati su 2 pin del pic? Guarderò cmq il "pinguino" (certo che un nome meno generico e legato a linux poteva sceglierselo).

Cmq perchè quel commento sui pic?

In università, al V anno di ing elettronica abbiamo finalmente un corso sui microcontrollori: usiamo un pic e ce lo fa programmare in assembler per capire meglio la struttura interna.

Il problema è che arduino compila il suo codice usando un compilatore C perciò ti servono due cose: * una libreria in c che implementa il "linguaggio" arduino per la pic * un compilatore c open source per la pic che funzioni davvero

Il primo punto è fattibile mentre il secondo è un bel casino per via dell'architettura assurda delle pic , da li il commento sui brividi.

se scrivi assembler a mano forse la pic ti rende la vita più facile ma se scrivi un compilatore C è un bel casino. SDCC ci arriva vicino ma l'ultima volta che l'ho provato non era un gran che.

quelli di pinguino sono i soliti talebani dell'open source che hanno riscritto l'ide in python pur di non toccare java....

E' un peccato perche al suo interno Arduino supporta già il multi-piattaforma perciò non sarebbe difficile metterci il compilatore C (SDCC) e la libreria per la pic.

Programmare le PIC in assembler ha senso per un corso in cui l'obiettivo è imparare come funziona un microcontrollore... Arduino ha uno scopo opposto... evitare di dover imparare troppe cose sul microcontrollore prima di usarlo per fabbricarci qualcosa.

m

Ehm no, non era quello che volevo chiedere. Io il mio codice ASM lo compilo con pklab (che accetta anche BootBase, C, C++). Non voglio costruirmi un programmatore apposta da inserire tra il PC e il PIC. Mi piacerebbe avere però un ICD2 (non solo programmatore ma anche debugger: va a leggere anche i registri del PIC). Vorrei poter usare la piattaforma hardware arduino come programmatore/debugger: ho la porta usb da un lato, quindi l'arduino che mi butta fuori 3 pin da utilizzare per programmare il PIC. Sull'arduino metterei su un firmware che parisifica ciò gli invia il pklab o quello che è e manda il comando sul pic. Deve virtualizzarmi ciò che fa la rotella di Microchip.

Non so se ho capito male il tuo commento massimo...

ah ho capito

hmm no conosco ICD2 ma credo si possa fare se sai il protocollo.

Io per esempio uso un'arduino modificata come programmatore ISP per altre arduino... considerando che l'ISP ufficiale costa circa 65 eur non è male come risparmio.

m

E' vero l'architettura dei pic è assurda e idem la necessità di dover utilizzare un survoltore per arrivare alla tensione di programmazione. Sarà che per questo hanno introdotto successivamente la modalità di programmazione LVP.

Però potresti anche fare in questa maniera:

1) Ti realizzi un bootloader per il PIC. Così semplifichi la programmazione e colleghi Arduino al PIC tramite UART. 2) Poi ti crei un firmware personalizzato su Arduino e sfrutti la console per programmare il PIC.

E' chiaro che sei limitato, poichè non è una soluzione universale e il bootloader dovrebbe essere scritto ad hoc per quel tipo o famiglia del PIC e quest'ultimo dovrebbe possedere comunque la specifica UART.

L'ideale sarebbe avere un compilatore C valido da integrare come dice Massimo. Ma a questo punto vince AVR...e lo vedrei bene come "creatore di macchine PIC" ;D