RS232 decoderen

fred101

Golden Member

Ik heb de communicatie tussen twee apparaten afgetapt. (secutest en print/store unit)

Het is 9600 baud, 8bit, 1 stop bit, 1 start bit.

Nu is het probleem dat wanneer ik op store druk om de metingen in de psi op te slaan, er op het scherm een foutmelding komt dat er geen data is.
Nu wil ik weten of er geen data is, of dat er een communicatie probleem is welke bv de data corrumpeert. De PSI is goed (werkt op andere secutests wel)

Als ik een pc ipv de PSI unit aansluit dmv cutecom (linux terminal programma) dan kan ik communiceren. (? geeft alle mogelijke commando's) Alle communicatie die terug komt is gewoon leesbaar dus ik denk dat het ASCII is.

De afgevangen data is van begin tot eind keurig het juiste formaat. Ik hoopte dat de LA (zero+) de TX en RX naar ascii kan decoderen maar ik weet niet hoe. Er is geen rs232 decoder (of ik zoek verkeerd)
Als ik handmatig een paar bytes omzet krijg ik niks zinnigs.

voorbeeld: 0110.1101 = 109 = m Klopt dat of moet ik eerst wat omdraaien ?

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs

0x6d = 0110.1101 = 109 = 'm' lijkt mij in de eerste instantie WEL ascii. Wat doet jou er toe besluiten dat dit "niets zinnigs" is?

Mijn logic analyser kan "async serial" decoderen. Dat is zo'n el cheapo ding uit china van minder dan een tientje.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Hubie

Special Member

parity bit ? odd or even.

[Bericht gewijzigd door Hubie op zondag 4 februari 2018 19:53:58 (35%)

buckfast_beekeeper

Golden Member

1001.0010 = 0x92 = 146 = AE. Dus minder waarschijnlijk.

Een Zero+ kan in LAP-C RS232 decoderen.

Voorbeeld screenshot van een opgeslagen sample. Met de rechter muis kan je kiezen tussen hex, decimaal, ascii,..

Van Lambiek wordt goede geuze gemaakt.
PE9SMS

Special Member

Meestal gewoon geen parity bit Hubie.

This signature is intentionally left blank.
Arco

Special Member

Waarom moet het via die zero plus? Het werkt toch al via het terminal programma?

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
fred101

Golden Member

Edit, dat gaat hard, ik begon na hubies tekst te typen.

Arco: De secutest moet met de psi praten, niet met de pc. Dat deed ik als test om te kijken of de secutest doof of stom is. Ik heb hier ook nog 3 defecte secutests staan (maar goed genoeg om morgen even deze test te herhalen, dan kan ik kijken of dat er heel anders uitziet.

Hubie, geen parity, het formaat staat in het manual.

BB, bedankt, ga ik morgen proberen

Eerste stuk communicatie na op store drukken: j}5{YO

Het eerste stukje antwoord: (221) m 5 { (243) = (243) 3 s (243) 3 s (19) 2 (243) # (29) Y Y (137) (251) (25) Y (25) Y (145) Y
De (nummers) zijn ascii codes die ik niet kan typen

Aangezien ik middels ascii kan communiceren denk ik dat de communicatie tussen de apparaten dat ook doet en dan verwacht ik herkenbare tekst (bv een van de commandos en leesbare data) niet een flink aantal codes boven de 127.

Ik zit hier tevens wat mee te spelen om te leren. Zo ben ik tussendoor ook een corrupte eprom van een oude HP LA aan het decoderen (8080 assembler) , veranderen en weer branden. Kortom wat creatief hacken voor beginners

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
Arco

Special Member

Het zal wel aan mij liggen ;) , maar op met terminal programma kun je toch ook monitoren wat er verstuurd wordt?
(programma als hterm laat dat decimaal, hex, en in ascii zien en kan ook loggen)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
guidob

Overleden

Wat bedoel je met een PC? Een echte seriële poort met ~+/-12V of een USB ding met TTL levels? RS232 is +/- 3-25V.

Als het een echte RS232 poort is met bijbehorende levels, dan zal de LA wellicht niet lekker werken met TTL in. Dan zal er een level shifter tussen moeten (MAX232 oid).

fred101

Golden Member

Het zal wel aan mij liggen ;) , maar op met terminal programma kun je toch ook monitoren wat er verstuurd wordt?

Geen idee hoe ik dat moet doen. Daar moet ik dan in ieder geval een speciale Y kabel voor maken. Ik durf anders niet de laptop zomaar aan de PSI te hangen.

Guido, het ligt iets ingewikkelder. De laptop heeft wel een echte RS232 poort. De secutest niet helemaal.
Oa de voeding voor de PSI loopt over de DB9. De connectie met de laptop ging via een (aangepaste) RS232 isolator. De TX en RX datastroom uit de secutest is 0 en 5V.

Dat met de laptop was eigenlijk gewoon een experiment bij gebrek aan de PSI unit. Die waren vergeten er bij te doen. Als het ledje aanging was het goed volgens de eigenaar. Ik wist niet eens of dat via de laptop kon. Eerst met de scoop gemeten ivm de nivo's en toen de opstelling met laptop en cutecom geprobreerd. Geen idee wat ik moest doen dus typte ik een vraagteken. Toen kwam het ding terug met een hele commandoset.

Hij bleek toch niet goed dus nu heb ik de set compleet. Er zit maar weinig electronica tussen de poort en de processor. De boel is gescheiden via opto's. Wat er tussen processor/SRAM en de opto zit weet ik nog niet. Dit is de eerste keer dat ik daar een fout heb.
De boel zit ook nog onder de display. Ik heb een hele berg hulpstukken gemaakt om aan zo'n ding te meten. Ik ben nu wat aan het maken om (veilig) onder de display te kunnen meten.
Ik heb de afgelopen 4 jaar zo'n 30 secutests gerepareerd (voorzichtig geschat)

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
Arco

Special Member

Geen idee hoe ik dat moet doen.

De Rx van de seriele poort aan het te monitoren signaal hangen?

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
guidob

Overleden

Dus je PC werkt goed met de secutest (? wordt begrepen en je krijg response. wellicht kan je nog een ander commando proberen uit de lijst). De secutest communicatie werkt dan lijkt me zo.

En je PCI werkt niet met die secutest, maar wel met andere. Die werkt dan ook. Maar de combinatie van die secutest en PCI werkt dan niet.

Dan zal er wel geen data zijn.

Hangt van de processor af of er nog iets tussen processor en opto zit. Bij een moderne processor (of beter controller) zit de UART ingebouwd. Bij een oude (alleen maar) processor niet. Zou je van het type moeten kunnen afleiden. En als het ingebouwd is, dan kan je Rx en Tx terugvinden in de datasheet. Zou je het moeten kunnen uitpiepen.

Welke ICs zitten er in?

mel

Golden Member

En als je de secutest aan de pc hangt? Wat gebeurt er dan?

u=ir betekent niet :U bent ingenieur..
fred101

Golden Member

Buckfast:
Ik kan geen rs232 in lap-c vinden. De rechter muisknop decodering wel maar ik kan niet vinden hoe hij dan weet dat hij start/8xdata/stop kan groeperen. Ik denk dat mijn Tek 1241 dit wel kan. Dat kan ik ook wel eens proberen.

Guido:
Ik heb alle commando's geprobeerd en meestal kreeg ik response. Maar nergens staat wat ze doen/betekenen. G&M kennende hebben ze waarschijnlijk liever niet dat de gebruiker dit weet.

idd de secutest moet het probleem zijn.

Er kan geen data zijn maar ik zou dan verwachten dat de meting fout loopt. Hij geeft de data die hij opslaat op het scherm weer. Daarom hoop ik dat er nog wat tussen zit. Ik moet dat nog doorpiepen (gaat niet zo makkelijk omdat het 4 layer board is) Gelukkig zijn het maar weinig lijnen.

De ICs:
controller:P80C552E
SRAM: M5M51008DVP70hi (1 stuk en een losse 3V backup batterij)
Flash: EN29F010-45jip (8x128k 1 Mbit, 2 stuks)
Verder een aantal 74HC serie ICs:
373, 4053, 541, 27, 02, 138, 86, 08, 14

Mel: ik snap niet wat je bedoeld.
De werking:
Doe een meting (dat werkt), druk daarna op de store knop van de PSI, de display van de secutest zegt dan dat er geen data is. Als je dan op de secutest de "terug" knop induwt geeft de display de data weer, dus die is er blijkbaar nog wel.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
buckfast_beekeeper

Golden Member

Fred, weer te lang geleden. Ik zal straks de LA eens aansluiten en wat screenshots van de handelingen maken.

Even uit het hoofd. Ik zit momenteel niet aan mijn home laptop. :-( Er is ergens een optie waar je protocol kan kiezen. Onder andere SPI staat daar tussen. Ik geloof dat je daar iets tussen staat van UART en dan kan je baudrate en dergelijk invullen of op automatisch laten staan.

Straks dus meer.

edit: wat op internet gezocht. Al wat gevonden. http://www.zeroplus.com.tw/logic-analyzer_en/software.php

Kijk onder Tools > Busproperty http://www.zeroplus.com.tw/logic-analyzer_en/software_other_latch.php Protocol analyzer aanvinken en wat naar beneden scrollen.

http://www.zeroplus.com.tw/logic-analyzer_en/products.php?pdn=7&produc…

Van Lambiek wordt goede geuze gemaakt.
fred101

Golden Member

Even voor de zekerheid, bedoel je dat ik SPI moet kiezen als protocol voor rs232 ? Want ik heb het niet over SPI maar over PSI, dat is de naam van het apparaat (printer storage interface)

Edit: Buckfast, ik zat te slapen, ik had de laatste link gemist (uart met rs232 erbij) ga ik proberen.

De protocol analyser weet ik te vinden (die enorme hoeveelheid decoders is eigenlijk de enige reden waarom ik deze LA heb gekocht)

Edit 2: ze blijken een youtube kanaal met heel veel tutorial videos te hebben. (het meeste blijkt taiwanees te zijn :-( )

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
PE9SMS

Special Member

Hij noemt SPI om het juiste menu aan te duiden. Zeroplus noemt de serial decoder "UART" zo te zien in Buckfast' laatste link.

Dat de apparaten in leesbare ASCII kùnnen communiceren wil niet persé zeggen dat ze dat onderling ook doen. Als het niet Human readable hoeft te zijn is ASCII niet zo efficient. Stel je wilt het getal 200 oversturen. In leesbare ASCII zijn dat 3 bytes. Maar als het niet leesbaar hoeft te zijn kan dat ook in 1 byte (200 past in 8 bit). Neem dit mee als je de onderlinge communicatie meeleest is mijn tip.

This signature is intentionally left blank.
buckfast_beekeeper

Golden Member

Fred, doorblader een keer de manual bij de link. Staan veel bruikbare tips in.

Van Lambiek wordt goede geuze gemaakt.
fred101

Golden Member

Het is gelukt. UART gekozen en ingesteld en dan werkt het perfect.
De data is leesbaar. De PSI vraagt om data en bij de defecte komt er daarna gelijk de melding van de secutest: "geen data voorhanden"

Nu eens kijken wat er tussen interface en processor zit.

Ik denk niet dat efficiëntie hier een rol speelt. De hele transfer duurt hooguit een seconde.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs
guidob

Overleden

Op 5 februari 2018 10:00:54 schreef fred101:
controller:P80C552E
SRAM: M5M51008DVP70hi (1 stuk en een losse 3V backup batterij)
Flash: EN29F010-45jip (8x128k 1 Mbit, 2 stuks)

Die controller heeft de UART ingebouwd. Denk niet dat er veel tussen de controller en opto's zit. UART pinnen kan je in de datasheet vinden.

Verder heeft het ding geen ROM. Flash zal programma bevatten.
Ding heeft wel RAM. RAM met battery backup zou wel eens voor de data kunnen zijn. Houden die dingen de data vast als de power eraf is?

Leuke vraag is nog waar de cal data wordt opgeslagen. Flash of SRAM...
Zou eens kijken wanneer de RAM wordt aangesproken. Zou een defecte RAM kunnen zijn...

fred101

Golden Member

Geen idee waar de caldata in zit maar ik hoop wel dat het blijft zitten waar het nu zit want anders is het over en uit. ;-) Zover ik weet (van een dealer) kan alleen G&M daarbij (als je ze zover kunt krijgen).

De backup batterij is niet te vervangen met het apparaat aan, dus ik denk dat die cal data in flash zit.
En het SRAM dan waarschijnlijk voor gemeten resultaten. En dan zou een dood SRAM wel een optie zijn maar dan verwacht ik eerder verkrachte data ipv geen data en fouten bij metingen.

Welke lijnen moet ik monitoren om te weten of het RAM wordt aangesproken ?

Is er een manier om de inhoud van het SRAM te bekijken ?

Weet iemand nog goede info, bv op youtube, over fout-zoeken in digitale schakelingen ? Het meeste gaat over debuggen van software.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs

Hier eens rondneuzen, ik ben er destijds mee gestopt wegens andere werkgever.

https://github.com/fablabnbg/gossen_m701x

[Bericht gewijzigd door Peter112 op maandag 5 februari 2018 21:07:21 (23%)

EricP

mét CE

Als ik je hele verhaal kort mag samen vatten...

Je hebt 2 dozen, een 'meet doos' en een 'storage doos'. De storage doos werkt op andere meetdozen goed. De meetdoos lijkt een meting te doen maar roept 'geen data' als de storage doos daarom vraagt.

Mijn natte vinger zegt: maak je verder niet zo druk om die communicatie. Dat werkt doorgaans wel of niet. Het enige waarin het 'soms' werkt is als de mannen iets mafs met timing hebben gedaan, of wanneer je een verschil in interface versie hebt (heeft deze 'meetdoos' het ooit gedaan met DEZE storage doos?). Verder duidt wat je schrijft op ellende in je 'meet doos'.

Kan vergeetachtig RAM ervoor zorgen dat je meetresultaten stuk gaan? Ik denk het wel. Het resultaat van de laatste meting zal wel in de RAM van de controller zitten.
Het wordt ook (net als vorige metingen) in de battery-backed SRAM gefrut - zo zou ik in elk geval verwachten. Als daar ellende in zit, dan snap ik wel dat er 'niks' terug komt.

Gezien wat die controller allemaal nog doet, lijkt ellende op de bus me niet waarschijnlijk. Dat ding van jou lijkt ROMless te zijn. Ik vermoed dat de complete firmware (mogelijk inclusief calibratie waarden) in de FLASH zit. Die hangt aan dezelfde bus, derhalve vermoed ik dat daar het meeste wel loopt. Je zou echter ellende in de decoding van de CHIP SELECTS kunnen hebben.

Het is niet ongebruikelijk dat de hoogste bits van de address bus aan een zoveel-bits binaire comperator hangen. Die compared met wat er (al dan niet met jumpers) is ingesteld met wat er als address op de bus staat, en als dat matched, dan wordt van het betreffende chippie de CS active. Zo kun je dus chippies in een address map 'ergens' neer hangen.
Als die SRAM of die comperator ellende hebben (of die comperator heeft verkeerde inputs omdat er een DIPswitch of een jumper slecht contact maken!), dan zou het zomaar wel eens kunnen gebeuren dat er niks gebeurt.

Jij hebt vast wel de apparatuur om eens te kijken of er leven zit in beide CS lijnen van die SRAM. Daar MOET iets gebeuren, zowel bij een READ als een WRITE op die RAM. Als dat 'stil' is, dan weet je dat je in die hoek moet zoeken.
Als daar wel leven in zit, dan zou er ellende in die SRAM kunnen zitten.

Ik ken deze SRAM niet, maar ik heb het wel al eens meegemaakt dat de boel 'stuk' gaat als de backup batterij 'dood' is. Dit chippie heeft geen aparte batterij aansluiting, uit je post maak ik op dat die batterij er wel is. Ik heb al een paar keer gezien dat de batterij lomp parallel hangt aan de chip en dat dat geheel met een weerstandje aan de voeding hangt. Als je de oplaadbare variant van de 2032 hebt (yep, de bestaat, en ik heb het type nummer niet bij de hand :) ), dan kan dat prima. Tot die batterij een keer echt leeg is, lekt of in sluiting gaat.
Ofwel: (het zal wel een open deur zijn als ik Fred zo inschat...) heeft die SRAM wel 'power' en is die 'netjes' (laat je niet in de luren leggen door de protectie dioden Fred... het moet gewoon een mooie, stabiele voeding zijn, in elk geval zo stabiel als de rest van de IC voedingen.

[oude doos]Ik heb me een keer enige tijd de tandjes gezocht naar een ASIC die op de meest onmogelijke momenten spontane resets deed. Naast heel veel andere zut, zit daar en 8051 core in - en die struikelde soms. Uiteindelijk bleek de oorzaak te zijn dat deze sukkel botweg de voeding van dit chippie op de prototype PCB vergeten was - 1 draadbrug. Het ding draaide op wat protectie dioden en I/O lijnen. Zolang er genoeg inputs 'hoog' waren ging het goed. Werden het er nou net te weinig en / of deed je er ff wat mee wat wat meer stroom vrat, dan ging het onderuit. Zo op het zicht redelijk onvoorspelbaar natuurlijk.
Gelukkig heeft niemand ooit de moeite genomen om het aantal hierop verstookte uren bij elkaar te tellen en daar eens een prijskaartje aan te hangen. Ik kan je wel vertellen dat het ruim meer was dan een dag (en ook dan een week...)[/oude doos]

guidob

Overleden

Inderdaad tijd voor je LA.

Lezen als S1 laag is, S2 hoog en OE laag.
Schrijven bij S1 laag, S2 hoog en W laag.

SRAM bekijken wordt lastig. Wellicht kan het via een commando via RS232. Maar moet je net weten (wat schrijven/lezen op een geheugen locatie).

Ander optie is om de processor te vervangen door een eigen processor en dan de RAM zo via de bus uit te lezen. Maar dan moet je de adressering achterhalen.

Op youtube zou ik zoeken naar mensen die oude computers repareren (8 bitters).

EricP

mét CE

Processor vervangen gaat je niks opleveren als ik de datasheet zo bekijk. Het ding is ROMless. De firmware zit (dus?) in flash. Maar zoals gezegd: voeding controleren, kijken of er leven is op de CS lijnen als je access zou verwachten. Dat kun je wellicht nog met een 'logic probe'. Wil (moet) je dieper, dan kom je al snel bij een LA uit...

Wellicht ten overvloede voor Fred, dus vergeef me als ik je kennis te laag inschat:
Lijnen als de write enzo zijn wat minder relevant zonder context. Als chippie niet 'selected' is, dan doet-ie er niks mee. En als er leven op de bus is, dan zou het zomaar kunnen dat het betreffende signaal voor een ander chippie is. Uiteraard kun je zien of er een write (of een read) plaats vindt. Maar dan moet je eea. dus in context gaan zien - en dan kom je bij de LA uit.