Newsgroup: it.hobby.elettronica.digitale
Titolo: ST7

Salve a tutti. Ho iniziato a studiare e a lavorare con il mico ST7,
prendendo spunto dalla rivista Nuova elettronica. Chi conosce gia' le
caratteristiche del predetto micro ? In particolare il modello "Lite".
Grazie
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

caratteristiche del predetto micro ? In particolare il modello "Lite".
Ho letto anche io gli articoli di NE, quindi, se posso permettermi, ti
consiglio di valutare bene le caratteristiche della famiglia Pic, tipo
Pic 16f87x o pic 16f7x prima di buttarti su ST7.
Ho qualche dubbio che gli ST7 lite offrano prestazioni veramente
superiori e ho qualche dubbio che questo giustifichi la maggiore
complessità di approccio.
SB
---------------------------------------------------
togli i caratteri accentati per rispondere via mail


Ciao
Non conosco personalmente i PIC ma in passato un amico programmava entrambi
i micro e lui preferiva gli ST per una questione di affidabilita' ai
disturbi e maggior flessiblita' nello scrivere il firmware, inoltre per
molti i PIC sono piu, economici ma in realta', a parita' di prestazioni, gli
ST sono piu' economici.
Malgrado tutto in futuro vorrei imparare anche i PIC, anche se conosco i
vecchi ST6 e mi trovo benissimo.
Grazie e alla prossima.


 conosco i vecchi ST6 e mi trovo benissimo.
All'inizio, conoscendo solo l'assembler dello Z80 e dell'8088, pensavo che
piu' in basso del livello dell'assembler degli ST non si potesse scendere...
mi sbagliavo di grosso;)
Claudio F

la somma NON tiene conto del riporto precedente!
bè, diciamo che NON esiste una isruzione di somma che "tiene conto del
riporto precedente". Non conosco gli ST7 ma se la somma tenesse SEMPRE
conto del riporto precedente allora alcune volte dovresti resettare
manualmente il carry. Quindi, se devi aggiungere un'istruzione, tanto
vale aggiungere il carry a mano. 
Il discorso cambia se hai due diverse istruzioni di somma, una con
carry-in e una no. Il numero di istruzioni del Pic è ridotto a 35
(RISC= Reduced Istruction Set Computing), questo conduce
inevitabilmente a qualche "acrobazia" in più, ma se uno sa programmare
in assembler alle "acrobazie" deve essersi abituato da un pezzo.


 in assembler alle "acrobazie" deve essersi abituato da un pezzo.
anche gli AVR sono RISC, ma hanno entrame le funzioni :)
Oltretutto sono 4 volte più veloci perchè impiegano quasi sempre 1 solo
clock per operazione :)
Piccola domanda sull'asm dei PIC (io non li mai usati):
ci sono solo le 2 istruzioni condizionali che jumpano o meno se un bit è
settato?
Qualche tempo fa ho dato un'occhiata veloce a un datasheet di un pic e mi ha
dato questa impressione...
--
...:::Zmaster:::...
DSL powered
zmast[ANTISPAMSYSTEM]@
freemail.it
www.zmaster.tk
Collaboratore del Media Player Project

Cosa intendi per impazzivano?

dato questa impressione...
Vado a memoria perchè non ho la lista sottomano:
btss  bit test skip if set, opera su registro RAM
btsc bit test skip if clear, opera su registro RAM
decfsz	dec file (registro ram) skip if zero
incfsz	inc file (registro ram) skip if zero
grossomodo...
remove ù for e-mail reply

 incfsz inc file (registro ram) skip if zero
Ah, quindi solo skip tra l'altro, neanche jump? :)
Gią, un peccato avere a disposizione un set di istruzioni cosģ brutto.
Gli AVR:
CPSE Rd, Rr Compare, Skip if Equal if (Rd = Rr) PC ? PC + 2 or 3 None 1/2/3
CP Rd, Rr Compare Rd - Rr Z,N,V,C,H 1
CPC Rd, Rr Compare with Carry Rd - Rr - C Z,N,V,C,H 1
CPI Rd, K Compare Register with Immediate Rd - K Z,N,V,C,H 1
SBRC Rr, b Skip if Bit in Register Cleared if (Rr(b) = 0) PC ? PC + 2 or 3
None 1/2/3
SBRS Rr, b Skip if Bit in Register is Set if (Rr(b) = 1) PC ? PC + 2 or 3
None 1/2/3
SBIC P, b Skip if Bit in I/O Register Cleared if (P(b) = 0) PC ? PC + 2 or 3
None 1/2/3
SBIS P, b Skip if Bit in I/O Register is Set if (P(b) = 1) PC ? PC + 2 or 3
None 1/2/3
BRBS s, k Branch if Status Flag Set if (SREG(s) = 1) then PC ? PC + k + 1
None 1/2
BRBC s, k Branch if Status Flag Cleared if (SREG(s) = 0) then PC ? PC + k +
1 None 1/2
BREQ k Branch if Equal if (Z = 1) then PC ? PC + k + 1 None 1/2
BRNE k Branch if Not Equal if (Z = 0) then PC ? PC + k + 1 None 1/2
BRCS k Branch if Carry Set if (C = 1) then PC ? PC + k + 1 None 1/2
BRCC k Branch if Carry Cleared if (C = 0) then PC ? PC + k + 1 None 1/2
BRSH k Branch if Same or Higher if (C = 0) then PC ? PC + k + 1 None 1/2
BRLO k Branch if Lower if (C = 1) then PC ? PC + k + 1 None 1/2
BRMI k Branch if Minus if (N = 1) then PC ? PC + k + 1 None 1/2
BRPL k Branch if Plus if (N = 0) then PC ? PC + k + 1 None 1/2
BRGE k Branch if Greater or Equal, Signed if (N . V = 0) then PC ? PC + k +
1 None 1/2
BRLT k Branch if Less than Zero, Signed if (N . V = 1) then PC ? PC + k + 1
None 1/2
BRHS k Branch if Half-carry Flag Set if (H = 1) then PC ? PC + k + 1 None
1/2
BRHC k Branch if Half-carry Flag Cleared if (H = 0) then PC ? PC + k + 1
None 1/2
BRTS k Branch if T-flag Set if (T = 1) then PC ? PC + k + 1 None 1/2
BRTC k Branch if T-flag Cleared if (T = 0) then PC ? PC + k + 1 None 1/2
BRVS k Branch if Overflow Flag is Set if (V = 1) then PC ? PC + k + 1 None
1/2
BRVC k Branch if Overflow Flag is Cleared if (V = 0) then PC ? PC + k + 1
None 1/2
BRIE k Branch if Interrupt Enabled if (I = 1) then PC ? PC + k + 1 None 1/2
BRID k Branch if Interrupt Disabled if (I = 0) then PC ? PC + k + 1 None 1/2
Mi scuso per come č venuta la tabella col copia-incolla... :)



Scusate ragazzi ma questo è un giochino che non ho capito o state dicendo
veramente?
Ma avete dato mai un'occhiata al manualino (scaricabile in PDF dal sito
della ST) ?
No ?
Cercate i Jump ?
BTJF
BTJT
JP
JRA
JRT
JRF
JRIH
JRIL
JRH
JRM
JRNM
JRMI
...
...
...
...
JRULE
Vi bastano ?
Ma io non ho capito una cosa.
Voi stabilite la qualita e le caratteristiche di un micro dal numero delle
istruzioni di salto ?
Ciao
FACE ONE

 istruzioni di salto ?
No ovviamente.
La mia in effetti era una discussione un po' appartata, dato che si era
entrati in merito ho chiesto una curiosità sull'asm dei pic.
Ovviamente le istruzioni di branch non sono certo l'unica importante di un
micro, ci mancherebbe, ci sono moltissime altre cosa di cui tenere conto,
tipo interrupt, registri GP disponibili, velocità di esecuzione,
disponibilità di memoria, ...
Certo che se hai un set di istruzioni poco azzeccato ci perdi enormemente in
prestazioni, perchè sprechi un sacco di tempo per fare certe operazioni
(anche qui bisogna valutare se è uno spreco accettabile o no, dipende
dall'applicazione finale, ecc.).


 ha scritto:


istruzioni di salto ?
Si, è uno dei criteri e se hai programmato in assembler, non dovresti
stupirti. I salti condizionati costituiscono una discriminante,
soprattutto se sono così differenziati come quelli elencati da
zmaster. Sicuramente un set di istruzioni di quel tipo ti permette una
sintesi molto maggiore di quanto non renda possibile il set dei pic di
fascia medio-bassa. Inoltre, se utilizzi un compilatore C, il lavoro
di "traduzione" del sorgente in assembler è più semplice. Non si
tratta solo di un problema del compilatore e di chi lo scrive (io
faccio un costrutto "while", tanto poi ci pensa il compilatore !); se
il tuo set assembler è rigido rischi di saturare le risorse di tempo e
di memoria del micro con facilità. 
Ovviamente la ricchezza del set di istruzioni non è l'unico criterio.
Dopo aver programmato in assembly (eh, sì... a quel tempo ci si
ostinava a chiamarlo così) il micro del C64, del C128 e del Plus4 ho
trovato semplicemente paradisiaco lavorare con chip in tecnologia
Risc, in cui ogni istruzione dura un ciclo e non dovi conteggiare i
tempi di esecuzione tipo estrazione della tombola... insomma, una
discriminante ulteriore è disporre di un Risc, IMHO.
A me interessa molto anche la possibilità di condividere in rete il
lavoro di una larga comunità di utilizzatori. Sui Pic mi sono sempre
sentito sicuro di poter trovare le risposte e le risorse di cui avrei
avuto bisogno, senza dovermi comprare Kit appositi o dover attendere
l'interessamento di un FAE.
Inoltre si è più volte parlato di costo, ancora non ho capito quanto
costa l'equivalente AVR di un 12f629 o 12f675 (10 Mhz, 400ns/istr, 8
pin, AD 10 bit, comparatore, timer ecc. ecc.) che costa sugli 0,8 E in
produzione. Nel frattempo ho dato un'occhio al programmatore in
circuit, mi sembra che sia analogo a quello dei Pic, con forse un filo
in più, se ho ben capito. Altro punto discriminante.
Fine della lunga battitura,
saluti.

 Cosa intendi per impazzivano?
Che il programma si bloccava o si resettava in presenza di
inserzioni/disinserzioni accensioni/spegnimenti di apparati alimentati da
rete collegati alla stessa scheda del micro (bastava anche la sola massa), e
questo nonsostante abbia provveduto a filtrare tutti gli ingressi di rete, a
stabilizzare e fitrare le alimentazioni dei micro, e, successivamente, a
collegare le masse (e poi anche le terre) a stella. Alla fine il problema
era in effetti diventato molto piu' raro. In un camper al suono del clacson
le temporizzazioni del micro raddoppiavano la velocita' (fose si alterava il
prescaler del timer?).
Claudio F

 dal numero delle istruzioni di salto ?
Non solo, anche dal numero di lettere con cui sono scritte. A me l'assembler
piace con istruzioni da 2, 3, o al massimo 4 lettere. Le BTFSC o DEFFSZ mi
fanno impazzire... rendono il listato troppo poco... arioso ;))))
Vabbe'... buona la risposta di Simone, istruzioni limitate e poco potenti
costringono a scriverne molte di piu', e questo puo' voler dire piu' tempo
di esecuzione e occupazione della memoria programma...
Al di la di questo, ed e' un'opinione strettamente personale, c'e' anche un
lato umano/informatico (a cui aveva fatto attenzione Faggin nel progettare
lo Z80) che puo' evitare troppo scervellamento (da leggersi anche come
giramento di bolas e facilita' di errori). Per esempio un bel jump
condizionato in modo automatico su "minore o uguale" evita di ripensare (e
di sbagliare) ogni volta alla combinazione dei flags da tenere d'occhio.
Nei PIC invece, la loro bankizzazione della RAM, il PCLATH da gestire
perche' il program counter in certi casi NON aggiorna la parte alta
dell'indirizzo, la mancanza del context saving automatico durante gli
interrupt, la sottrazione che ha gli operandi e i flags invertiti rispetto
agli altri assembler che conosco (ma in quale altro balordo micro SUBLW 3
vuole dire W=3-W?????!), i registri dei timers che incrementano invece di
decrementare e perdono il contenuto del prescaler quando vi si scrive...
sono solo alcune delle "delizie" che derivano dall'aver progettato un
hardware ai minimi termini con apparentemente poca attenzione verso il
programmatore... Da questo punto di vista gli ST li trovavo decisamente
migliori.
Claudio F

 manualmente il carry.
Mi sembrerebbe meno grave... a fare una somma a 32 bit con un PIC c'e' da
uscirne scemi, e se non ci si memorizza il riporto da qualche altra parte
alla fine il flag C sull'intera somma puo' pure essere sbagliato.
Per curiosita' pero' mi sono riguardato il manualetto degli ST6... e mi sa
che neppure li c'e' la somma con riporto... e oltre a non esserci la
rotazione a destra (cosa che costringe alle volte a girarsi tutti i bit a
mano per poterli serializzare nell'ordine voluto) manca pure la funzione
OR;)
Claudio F

 ha scritto nel messaggio
news:dbvLb.79148$_P.30...@news4.tin.it...

Ciao a tutti,
non sto rispondendo solo a Claudio F ma a tutti quelli che mi hanno
risposto.
Effettivamente ieri ho scritto un messaggio un pò sbrigativo.
Qeuello che volevo dire è che ogni processore ho delle caratteristiche ben
precise ma sopratutto ogni processore è ben diverso dall'altro ...
altrimenti non staremo qui a discuterne.
Comunque, personalmente, ritengo che la scelta sia determinata da una grande
quantità di fattori.
Primo tra tutti è quello di stabilire l'ambito in cui si parla se è
hobbistico (studio, personale, ecc) o lavorativo scelta che comporta delle
differenze notevoli quali ad esempio il costo su larga scala, i tempi con
cui si programmano 10.000 pezzi, il costo dell'attrezzatura necessaria (HW e
SW), ecc.
Che io sappia, ad esempio, in nambito industriale vengono usati molto gli ST
perchè hanno maggiori stabilità ed immunità ai disturbi. Ma questo non
significa necessariamente che siano i migliori.
Esistono una marea di ST, una marea di PIC, una marea di 51, ecc in
altrettante versioni ciascuna.
Tra i parametri che determinano la scelta ci sono:
- reperibilità
- costo del micro
- costo del kit di sviluppo
- velocità
- complessità/semplicità
- potenza
- materiale disponibile
- ...
- ...
Riassumendo, quello che volevo dire, è che un elenco di istruzioni di salto
(da solo) non determina la caratteristica di un micro.
Colgo l'occasione per rispondere a Simone Bern.
Non ho inserito tutto l'elenco dei comandi di salto e le relative
indicazioni perchè non l'ho ritenuto necessario ai fini del discorso ma se
proprio ti serve puoi trovare il manuale sul sito della ST. Se preferisci ti
faccio avere direttamente l'indirizzo o ti mando per posta il PDF.
Ciao a tutti
FACE ONE

faccio avere direttamente l'indirizzo o ti mando per posta il PDF.
era un commento ironico, faceone. Volevo dire che elencare le numerose
istruzioni di salto, per giunta senza spiegare gli acronimi, non
rappresenta un gran contributo...


 ha scritto nel messaggio
news:192Z106Z52Z2Y1...@usenet.libero.it...


Cavolo! Non un problema da poco!!!
Mi daresti qualche info in piů sulla configurazione a stella?
Per evitare del tutto il problema, si potrebbe alimentare il pic a batteria e farlo dialogare con il mondo esterno tramite rf o
optoisolatori?
Grazie!
Ciao!

 il mondo esterno tramite rf o optoisolatori?
Beh, si, naturalmente la separazione galvanica (alias isolamento totale)
dovrebbe (ormai non posso non usare il condizionale;) mettere al sicuro da
quasi tutto.... per lo meno dai disturbi "condotti" come sembrano essere
questi.
Claudio F

Nuova Elettronica pubblica un corso a puntate abbastanza comodo per chi
inizia..
Il kit per programmare e fare il debug non e' costosissimo e si puo montare
facilmente( lo ha fatto un mio amico e si e' anche divertito)
Oppure trovi informazioni su
STMCU.COM
 oppure su
SOFTEC-ITALIA.IT
Secondo me ne vale la pena.. poi magari invece a te non piace..
Ambasciator non porta pena (digitale)...
