BoxIdee

Il Firmware di controllo

Il firmware è in linguaggio Assembly per il PIC18 di Microchip.
Si sarebbe potuto anche realizzare in un linguaggio ad alto livello come il 'C' ma, a parte la scarsa conoscenza, alcune sezioni è preferibile che siano comunque in assembler per la necessità di velocità richiesta dalla comunicazione col chip.

In estrema sintesi, il programma consiste di una sezione di predisposizione del chip con i valori di default dei registri, seguita da un loop durante il quale si attendono i comandi del protocollo, si eseguono e si risponde al PC sull'interfaccia seriale.

Nell'evoluzione prevista, la modifica dei comandi dall'interfaccia utente (surface) vengono intercettati dalla routine di interrupt e smistati alle corrispondenti routine d'attuazione.


Per i più curiosi, riporto qui di seguito il listato delle due routine più critiche e fondamentali del firmware, ovvero i comandi di lettura e scrittura dei registri del SID.


Accesso ai Registri del SID

					;**************************************************************
					; scrive un byte nel SID
					; 	Char_1: contiene l'indirizzo del registro SID
					; 	Char_2: contiene il dato da scrivere nel registro
					;**************************************************************
					writeSID	bcf	STATUS,RP0
						movf	Char_1,W
						andlw	MASK
						iorlw	00100000b	; Indirizzo + disabilita sid (bit 5)
						bcf	PIO,PIN_RW	; scrive (bit 7)
						movwf	PADR
						movf	Char_2,W
						movwf	PDATI	; Scrive dati
						bcf	PADR,PIN_CS	; Abilita il sid -> Scrive
					 	bsf	PADR,PIN_CS	; Disabilita il sid
						return

					;**************************************************************
					; legge un byte dal SID all'indirizzo in WREG
					;**************************************************************
					readSID	bcf	STATUS,RP0
						bsf	PADR,PIN_CS	; Disabilita il sid
						bsf	PIO,PIN_RW	;lettura (bit 7)
						iorlw	00100000b	; Indirizzo + disabilita sid (A5)
						movwf	PADR
					;PortB in Input
						bsf	STATUS,RP0
						movlw	0xFF
						movwf	TRISB
						bcf	STATUS,RP0
					;lettura
						bcf	PADR,PIN_CS	; Abilita il sid
						movfw	PDATI
						bsf	PADR,PIN_CS	; Disabilita il sid
						bcf PIO,PIN_RW
					;PortB in Output
						bsf	STATUS,RP0
						clrf	TRISB
						bcf	STATUS,RP0
						return
					



Progetto My SID
Il chip SID
  • Caratteristiche HW
  • Registri e comandi
  • Note d'uso

Progetto Hardware modulo di comando del SID da PIC
  • Il modulo picSID
  • Modulo ausiliario auxSID
  • Ingegnerizzazione

Progetto Protocollo
  • Protocollo SIDcom

Progetto Firmware

  • Schema a blocchi
  • Il Firmware

Progetto Software Programma per Windows di comando PIC e SID 6582

in preparazione