Thanks for the suggestion, but no joy. I changed to a different port number and no joy there, either. There's transfer activity indicated on the board and the failure message pops up after the 100% mark.
Are you sure you're commenting on one problem with both device not found and transferring to end of file?
I know I'm likely stating the obvious, but are you switching to PGM before turning the board on?
Yep, the switch was set to PGM. All previous updates have gone without a hitch. I'm currently on v9b and I went through the update procedure using the v9b px and image and got the same behavior and error message, so this is something new.
Thanks for the suggestion, but no joy. I changed to a different port number and no joy there, either. There's transfer activity indicated on the board and the failure message pops up after the 100% mark.
Are you sure you're commenting on one problem with both device not found and transferring to end of file?
Yes, the load looks like it's progressing, both on the board and the PX progress bar. The COM port error pops after the load progress hits 100%.
I had a similar problem... try quitting out of PNUT while you are using PX. In my case it wasn't PNUT, but another utility... that while not using COM4 but was running at the time and may not have released COM4 correctly.
Thanks for the suggestion, but no joy. I changed to a different port number and no joy there, either. There's transfer activity indicated on the board and the failure message pops up after the 100% mark.
In the short term, I have a BE-Micro A2, but it's been quite a while since I used it, and I've never loaded a P2 image on it. Is it as simple as using PX to load the zip's *A2*.jic file?
No you need to use the Altera software to load that in, unfortunately. There is a stand alone programmer from Altera - you don't need the whole giant package
Thanks, that jogged my memory. I'll grab the stand-alone programmer.
I tried updating to P2v10a (Prop 1-2-3 A9 board) and PX complained with a "PX loader not found on COM3" message.
Doh!
Looks like it was a not-very-old USB cable. P2v10a looks to be loaded and working. Since it looked like bits were flowing, the stinkin' cable was not very high on my trouble-shooting list
Thanks for that instruction summary Ray, I was wondering about the current state!
Serial bootloader
BTW, does anyone have a clue about what I need to do for the serial bootloader? I'm sure the info is somewhere but whether the stuff I find is the most current or not is the issue. I want to put together a small PIC + EEPROM to load up an SPI Flash and SD bootloader for testing. Once I can get the SD bootloader to work then that should give everyone something to chew on. I know I could probably just load this bootloader up serially and I might do that initially but the PIC idea is to make my system stand-alone as I want to deploy it in an actual project for some real field tests! I have a few other CV-A9s around here fortunately so I won't be stuck for test units.
I think I'm going to keep using the ".spin" extension (if I can) so I can keep using the Prop Tool for code editing. Looks like the new PNut is ".spin2" only, but I think I can just change filter to "*.*" and use .spin files...
Serial bootloader
BTW, does anyone have a clue about what I need to do for the serial bootloader? I'm sure the info is somewhere but whether the stuff I find is the most current or not is the issue.
I think Chip has to be close to getting SPI boot ROM in beta form ?
I want to put together a small PIC + EEPROM to load up an SPI Flash and SD bootloader for testing. Once I can get the SD bootloader to work then that should give everyone something to chew on. I know I could probably just load this bootloader up serially and I might do that initially but the PIC idea is to make my system stand-alone as I want to deploy it in an actual project for some real field tests!
Or, you could use a Silabs part, as I think you can program those via a Prop ?
Check with Chip on the Boot timelines, as if you can tolerate serial for a while, a prelim BOOT is likely not far off.
You sound like a good test case for BOOT testing
Or, you could code a SPI boot and get Chip to do a build with that in ROM ?
I think I'm going to keep using the ".spin" extension (if I can) so I can keep using the Prop Tool for code editing. Looks like the new PNut is ".spin2" only, but I think I can just change filter to "*.*" and use .spin files...
Or use the VSCode extension, which will give you syntax coloring (for now).
VSCode looks pretty good. I'm just used to Prop Tool, been using it for years.
If I weren't so entrenched, I'd definitely use your extension and VSCode.
I'm editing my Spin files in Context under WINXP in VirtualBox at present due to this Wine bug glitching the reset line but I have execute keys (using F11) in Context that allow me to callup PNut with the file name but does PNut have any command line parameters available to get it to F11 then exit?
I'm editing my Spin files in Context under WINXP in VirtualBox at present due to this Wine bug glitching the reset line but I have execute keys (using F11) in Context that allow me to callup PNut with the file name but does PNut have any command line parameters available to get it to F11 then exit?
I'm editing my Spin files in Context under WINXP in VirtualBox at present due to this Wine bug glitching the reset line but I have execute keys (using F11) in Context that allow me to callup PNut with the file name but does PNut have any command line parameters available to get it to F11 then exit?
I can add that.
That would be so George Jetson, all I would have to do is press one button all the time. Yay!
Taking some time off to wire up one of the CV-A9 boards to a Vector Electronics double-side matrix board using pin headers to mount it upside down. Then I can attach all the other parts I want to test including the Serial Flash and IoT5500 and RS485 and many other parts, perhaps even a module for the VGA DACs. Main thing is I want to double-check the basic Serial Flash bootload process then use that to check the SD bootloader.
@Chip: did you get the command line F11 done for PNut? My George Jetson finger is getting mangled and could do with a rest
I looked into back-ordering the BeMIcroCVA9 since it does no good to just keep checking in the hope that somebody does order it. I've been given a lead time of 17-18 weeks which brings us to the end of October. This is a very nice board and I will be doing a controller motherboard for this including a footprint for whenever the P2 chip becomes available. So please indicate your interest as I can order more now and even though it's a bit of a wait it will come around soon enough and certainly a lot sooner than P2 itself. Besides, the motherboard I am doing for it will be worth it too! This thing is already rockin'!
I looked into back-ordering the BeMIcroCVA9 since it does no good to just keep checking in the hope that somebody does order it. I've been given a lead time of 17-18 weeks which brings us to the end of October. This is a very nice board and I will be doing a controller motherboard for this including a footprint for whenever the P2 chip becomes available. So please indicate your interest as I can order more now and even though it's a bit of a wait it will come around soon enough and certainly a lot sooner than P2 itself. Besides, the motherboard I am doing for it will be worth it too! This thing is already rockin'!
I would like two more CV-A9s and a motherboard or two if they are gonna be made available as well.
I looked into back-ordering the BeMIcroCVA9 since it does no good to just keep checking in the hope that somebody does order it. I've been given a lead time of 17-18 weeks which brings us to the end of October. This is a very nice board and I will be doing a controller motherboard for this including a footprint for whenever the P2 chip becomes available. So please indicate your interest as I can order more now and even though it's a bit of a wait it will come around soon enough and certainly a lot sooner than P2 itself. Besides, the motherboard I am doing for it will be worth it too! This thing is already rockin'!
I would like two more CV-A9s and a motherboard or two if they are gonna be made available as well.
Chip,
Here are a couple of instruction opcode swaps that may make the decoding more efficient, and the compilers simpler, and instruction set look more regular.
These just make the first set of instruction opcodes 0xxxxxx identically formatted.
You might not want to change anything. If you are interested, there are a few changes in the 1xxxxxx that may make sense too.
BTW I posted the whole instruction set summary a few posts back.
I have been looking at the smart pins for async.
WRPIN sets the mode, WXPIN sets the baud/length.
WYPIN writes the data byte/word/long, RDPIN reads the data byte/word/long.
This seems wrong to me. I would think WRPIN & RDPIN should write/read the data, while WXPIN & WYPIN should set the mode & baud/length.
Have I got this the correct way around???
I have been looking at the smart pins for async.
WRPIN sets the mode, WXPIN sets the baud/length.
WYPIN writes the data byte/word/long, RDPIN reads the data byte/word/long.
This seems wrong to me. I would think WRPIN & RDPIN should write/read the data, while WXPIN & WYPIN should set the mode & baud/length.
Have I got this the correct way around???
BTW
WRPIN used to be PINSETM
and RDPIN used to be PINGETZ
Yeah, it's a side effect of the old register labelling. Chip appears to have kept the X and Y references while ditching the M and Z references. A small name shuffle presumably will fix it.
I have struck a problem getting smart serial to work.
Send works fine, but receive doesn't seem to be receiving anything. I am using PST connected to the propplug.
Can anyone see my bug?
BTW I have discovered that if you don't transmit a character, then the instruction
.send testb inb, #tx_pin wc 'wait for buffer empty on tx pin
doesn't return buffer empty. Can anyone verify please?
'' 115200 baud 8-bit serial demo'' RR20160624 000a modify Chip's 10Mbaud program'' 000cCON
tx_pin = 62
rx_pin = 63DAT
orgh 0org0
begin wrpin pm_tx, #tx_pin 'set asynchronous tx mode in smart pin txwxpin bitper, #tx_pin 'set tx bit period
setb dirb, #tx_pin 'enable smart pin txwrpin pm_rx, #rx_pin 'set asynchronous rx mode in smart pin rxwxpin bitper, #rx_pin 'set rx bit period
setb dirb, #rx_pin 'enable smart pin rxjmp #.go
.send testbinb, #tx_pin wc'wait for buffer empty on tx pinif_ncjmp #.recv ' ping-pong tx/rxakpin #tx_pin 'acknowledge tx pinwaitx delay ' 1s delay before sending!!!
.go wypin txdata, #tx_pin 'send next byte to tx pin'' incmod txdata, #$7E 'increment byte, constrain to $FF for faster wypin'' cmp txdata, #0 wz'' if_z mov txdata, #" " ' $20..$7E
.recv testbinb, #rx_pin wc'wait for smart pin rx to signal rx data receivedif_ncjmp #.send ' ping-pong tx/rxakpin #rx_pin 'acknowledge rx pinrdpin rxdata, #rx_pin 'get data from rx pinmov txdata, #rxdata ' do something with rxdatajmp #.send 'loop
pm_tx long%0000_0000_000_0000000000000_01_11110_0'async tx mode, output enabled for smart output
pm_rx long%0000_0000_000_0000000000000_01_11111_0'async rx mode, output enabled for smart input'bitper long 8<<16 + 7 'number of clocks per bit period, 3..65536, 8-bit words 10Mbaud
bitper long695<<16 + 7' 115200 baud, 8 bits
txdata long"^"
rxdata long0
delay long80_000_000
Comments
Looks like it was a not-very-old USB cable. P2v10a looks to be loaded and working. Since it looked like bits were flowing, the stinkin' cable was not very high on my trouble-shooting list
Thanks all, for the suggestions!
Propeller P16X64A Instructions v10a 17Jun2016 ------------------------------------------------------------------------------------------------------------------------- Cond Opcode CZ I Dest Source Instr00 01 10 11 Operand(s) Flags ------------------------------------------------------------------------------------------------------------------------- CCCC 00000ff CZ I DDDDDDDDD SSSSSSSSS ROR ROL SHR SHL D,S/# CZ CZ CZ CZ CCCC 00001ff CZ I DDDDDDDDD SSSSSSSSS RCR RCL SAR SAL D,S/# CZ CZ CZ CZ CCCC 00010ff CZ I DDDDDDDDD SSSSSSSSS ADD ADDX ADDS ADDSX D,S/# CZ CZ CZ CZ CCCC 00011ff CZ I DDDDDDDDD SSSSSSSSS SUB SUBX SUBS SUBSX D,S/# CZ CZ CZ CZ CCCC 00100ff CZ I DDDDDDDDD SSSSSSSSS CMP CMPX CMPS CMPSX D,S/# CZ CZ CZ CZ CCCC 00101ff CZ I DDDDDDDDD SSSSSSSSS CMPR CMPM SUBR CMPSUB D,S/# CZ CZ CZ CZ CCCC 00110ff CZ I DDDDDDDDD SSSSSSSSS MIN MAX MINS MAXS D,S/# CZ CZ CZ CZ CCCC 00111ff CZ I DDDDDDDDD SSSSSSSSS SUMC SUMNC SUMZ SUMNZ D,S/# CZ CZ CZ CZ CCCC 01000ff CZ I DDDDDDDDD SSSSSSSSS ISOB NOTB CLRB SETB D,S/# CZ CZ CZ CZ CCCC 01001ff CZ I DDDDDDDDD SSSSSSSSS SETBC SETBNC SETBZ SETBNZ D,S/# CZ CZ CZ CZ CCCC 01010ff CZ I DDDDDDDDD SSSSSSSSS ANDN AND OR XOR D,S/# CZ CZ CZ CZ CCCC 01011ff CZ I DDDDDDDDD SSSSSSSSS MUXC MUXNC MUXZ MUXNZ D,S/# CZ CZ CZ CZ CCCC 01100ff CZ I DDDDDDDDD SSSSSSSSS MOV NOT ABS NEG D,S/# CZ CZ CZ CZ CCCC 01101ff CZ I DDDDDDDDD SSSSSSSSS NEGC NEGNC NEGZ NEGNZ D,S/# CZ CZ CZ CZ CCCC 0111000 ff I DDDDDDDDD SSSSSSSSS ALTI ALTR ALTD ALTS D,S/# -- -- -- -- CCCC 0111001 CZ I DDDDDDDDD SSSSSSSSS DECOD D,S/# CZ CCCC 011101f CZ I DDDDDDDDD SSSSSSSSS TOPONE BOTONE D,S/# CZ CZ CCCC 011110f CZ I DDDDDDDDD SSSSSSSSS INCMOD DECMOD D,S/# CZ CZ CCCC 011111f fZ I DDDDDDDDD SSSSSSSSS MUL MULS SCLU SCL D,S/# -Z -Z -Z -Z CCCC 1000ffn nn I DDDDDDDDD SSSSSSSSS SETNIB GETNIB ROLNIB D,S/#,#n -- -- -- CCCC 100011f nn I DDDDDDDDD SSSSSSSSS SETBYTE GETBYTE D,S/#,#n -- -- CCCC 1001000 nn I DDDDDDDDD SSSSSSSSS ROLBYTE D,S/#,#n -- CCCC 1001001 fn I DDDDDDDDD SSSSSSSSS SETWORD GETWORD D,S/#,#n -- -- CCCC 1001010 fn I DDDDDDDDD SSSSSSSSS ROLWORD D,S/#,#n -- CCCC 1001010 1f I DDDDDDDDD SSSSSSSSS SETBYTS MOVBYTS D,S/# -- -- CCCC 1001011 ff I DDDDDDDDD SSSSSSSSS SPLITB MERGEB SPLITW MERGEW D,S/# -- -- -- -- CCCC 1001100 ff I DDDDDDDDD SSSSSSSSS SEUSSF SEUSSR RGBSQZ RGBEXP D,S/# -- -- -- -- CCCC 1001101 ff I DDDDDDDDD SSSSSSSSS REV SETI SETD SETS D,S/# -- -- -- -- CCCC 1001110 ff I DDDDDDDDD SSSSSSSSS DJZ DJNZ DJS DJNS D,S/#rel9 -- -- -- -- CCCC 1001111 ff I DDDDDDDDD SSSSSSSSS TJZ TJNZ TJS TJNS D,S/#rel9 -- -- -- -- CCCC 10100ff CZ I DDDDDDDDD SSSSSSSSS TESTN TEST ANYB TESTB D,S/# CZ CZ CZ CZ CCCC 1010100 ff I DDDDDDDDD SSSSSSSSS ADDCT1 ADDCT2 ADDCT3 WMLONG D,S/#;D,S/#;D,S/#;D,S/#/PTRx -- -- -- -- CCCC 1010101 CZ I DDDDDDDDD SSSSSSSSS CALLD D,S/#rel9 CZ CCCC 101011f CZ I DDDDDDDDD SSSSSSSSS RDPIN RDLUT D,S/# CZ CZ CCCC 10110ff CZ I DDDDDDDDD SSSSSSSSS RDBYTE RDWORD RDLONG D,S/#/PTRx CZ CZ CZ CCCC 1011011 ff I DDDDDDDDD SSSSSSSSS ADDPIX MULPIX BLNPIX MIXPIX D,S/# -- -- -- -- CCCC 1011100 xx I DDDDDDDDD SSSSSSSSS <empty> -- CCCC 1011101 fL I DDDDDDDDD SSSSSSSSS JP JNP D/#,S/#rel9 -- -- CCCC 1011110 fL I DDDDDDDDD SSSSSSSSS SETPAE SETPAN D/#,S/# -- -- CCCC 1011111 fL I DDDDDDDDD SSSSSSSSS SETPBE SETPBN D/#,S/# -- -- CCCC 1100000 fL I DDDDDDDDD SSSSSSSSS WRPIN WXPIN D/#,S/# -- -- CCCC 1100001 fL I DDDDDDDDD SSSSSSSSS WYPIN WRLUT D/#,S/# -- -- CCCC 1100010 fL I DDDDDDDDD SSSSSSSSS WRBYTE WRWORD D/#,S/#/PTRx -- -- CCCC 1100011 fL I DDDDDDDDD SSSSSSSSS WRLONG RDFAST D/#,S/#/PTRx;D/#,S/# -- -- CCCC 1100100 fL I DDDDDDDDD SSSSSSSSS WRFAST FBLOCK D/#,S/# -- -- CCCC 1100101 fL I DDDDDDDDD SSSSSSSSS XINIT XZERO D/#,S/# -- -- CCCC 1100110 fL I DDDDDDDDD SSSSSSSSS XCONT REP D/#,S/# -- -- CCCC 1100111 CL I DDDDDDDDD SSSSSSSSS COGINIT D/#,S/# C- CCCC 1101000 fL I DDDDDDDDD SSSSSSSSS QMUL QDIV D/#,S/# -- -- CCCC 1101001 fL I DDDDDDDDD SSSSSSSSS QFRAC QSQRT D/#,S/# -- -- CCCC 1101010 fL I DDDDDDDDD SSSSSSSSS QROTATE QVECTOR D/#,S/# -- -- CCCC 1101011 CZ L DDDDDDDDD 0000000ff CLKSET COGID <empty> COGSTOP D/# CZ CZ CZ -- CCCC 1101011 CZ 0 DDDDDDDDD 0000001ff LOCKNEW LOCKRET LOCKCLR LOCKSET D;D/#;D/#;D/# CZ -- C- C- CCCC 1101011 CZ L DDDDDDDDD 0000010ff <empty> <empty> <empty> <empty> D/# CZ CZ CZ CZ CCCC 1101011 CZ L DDDDDDDDD 0000011ff <empty> <empty> QLOG QEXP D/# CZ CZ -- -- CCCC 1101011 CZ 0 DDDDDDDDD 0000100ff RFBYTE RFWORD RFLONG WFBYTE D;D;D;D/# CZ CZ CZ -- CCCC 1101011 00 L DDDDDDDDD 0000101ff WFWORD WFLONG SETQ SETQ2 D/# -- -- -- -- CCCC 1101011 CZ 0 DDDDDDDDD 0000110ff GETQX GETQY GETCT GETRND D;D;D;{D} CZ CZ -- CZ CCCC 1101011 00 L DDDDDDDDD 0000111ff SETDACS SETXFRQ GETXCOS GETXSIN D/#;D/#;D;D -- -- -- -- CCCC 1101011 00 L DDDDDDDDD 0001000ff SETEDG SETRDL SETWRL SETHLK D/# -- -- -- -- CCCC 1101011 C0 0 0000000ff 000100100 POLLINT POLLCT1 POLLCT2 POLLCT3 C- C- C- C- CCCC 1101011 C0 0 0000001ff 000100100 POLLEDG POLLPAT POLLRDL POLLWRL C- C- C- C- CCCC 1101011 C0 0 0000010ff 000100100 POLLXMT POLLXFI POLLXRO POLLXRL C- C- C- C- CCCC 1101011 C0 0 0000011ff 000100100 POLLFBW POLLHLK POLLATN POLLQMT C- C- C- C- CCCC 1101011 C0 0 0000100ff 000100100 WAITINT WAITCT1 WAITCT2 WAITCT3 C- C- C- C- CCCC 1101011 C0 0 0000101ff 000100100 WAITEDG WAITPAT WAITRDL WAITWRL C- C- C- C- CCCC 1101011 C0 0 0000110ff 000100100 WAITXMT WAITXFI WAITXRO WAITXRL C- C- C- C- CCCC 1101011 C0 0 0000111ff 000100100 WAITFBW WAITHLK WAITATN <empty> C- C- C- CZ CCCC 1101011 00 0 0001000ff 000100100 ALLOWI STALLI <empty> <empty> -- -- CZ CZ CCCC 1101011 00 L DDDDDDDDD 000100101 SETINT1 D/# -- CCCC 1101011 00 L DDDDDDDDD 000100110 SETINT2 D/# -- CCCC 1101011 00 L DDDDDDDDD 000100111 SETINT3 D/# -- CCCC 1101011 00 L DDDDDDDDD 0001010ff WAITX SETCZ PUSH POP D/#;D/#;D/#;D -- CZ -- CZ CCCC 1101011 CZ 0 DDDDDDDDD 0001011ff JMP CALL CALLA CALLB D CZ CZ CZ CZ CCCC 1101011 00 L DDDDDDDDD 0001100ff JMPREL RET RETA RETB D/#; ; ; ; -- CZ CZ CZ CCCC 1101011 00 0 DDDDDDDDD 0001101ff GETPTR GETINT SETBRK SETLUT D;D;D/#;D/# -- -- -- -- CCCC 1101011 00 L DDDDDDDDD 0001110ff SETCY SETCI SETCQ SETCFRQ D/# -- -- -- -- CCCC 1101011 00 L DDDDDDDDD 0001111ff SETCMOD SETPIX SETPIV COGATN D/# -- -- -- -- CCCC 11011ff Rn n nnnnnnnnn nnnnnnnnn JMP CALL CALLA CALLB #abs/#rel -- -- -- -- CCCC 1110fww Rn n nnnnnnnnn nnnnnnnnn CALLD LOC reg,#abs/#rel -- -- CCCC 1111fnn nn n nnnnnnnnn nnnnnnnnn AUGS AUGD #23bits -- -- -------------------------------------------------------------------------------------------------------------------------
Serial bootloader
BTW, does anyone have a clue about what I need to do for the serial bootloader? I'm sure the info is somewhere but whether the stuff I find is the most current or not is the issue. I want to put together a small PIC + EEPROM to load up an SPI Flash and SD bootloader for testing. Once I can get the SD bootloader to work then that should give everyone something to chew on. I know I could probably just load this bootloader up serially and I might do that initially but the PIC idea is to make my system stand-alone as I want to deploy it in an actual project for some real field tests! I have a few other CV-A9s around here fortunately so I won't be stuck for test units.
I think Chip has to be close to getting SPI boot ROM in beta form ?
Or, you could use a Silabs part, as I think you can program those via a Prop ?
Check with Chip on the Boot timelines, as if you can tolerate serial for a while, a prelim BOOT is likely not far off.
You sound like a good test case for BOOT testing
Or, you could code a SPI boot and get Chip to do a build with that in ROM ?
Or use the VSCode extension, which will give you syntax coloring (for now).
If I weren't so entrenched, I'd definitely use your extension and VSCode.
I can add that.
That would be so George Jetson, all I would have to do is press one button all the time. Yay!
Have you had a chance to examine why PNut might be tripping the DTR line so much under Wine? See http://forums.parallax.com/discussion/comment/1380448/#Comment_1380448
@Chip: did you get the command line F11 done for PNut? My George Jetson finger is getting mangled and could do with a rest
I would like two more CV-A9s and a motherboard or two if they are gonna be made available as well.
Okay, I might move this to another thread though.
Here are a couple of instruction opcode swaps that may make the decoding more efficient, and the compilers simpler, and instruction set look more regular.
These just make the first set of instruction opcodes 0xxxxxx identically formatted.
You might not want to change anything. If you are interested, there are a few changes in the 1xxxxxx that may make sense too.
BTW I posted the whole instruction set summary a few posts back.
------------------------------------------------------------------------------------------------------------------------- Cond Opcode CZ I Dest Source Instr00 01 10 11 Operand(s) Flags ------------------------------------------------------------------------------------------------------------------------- CCCC 0111000 ff I DDDDDDDDD SSSSSSSSS ALTI ALTR ALTD ALTS D,S/# -- -- -- -- CCCC 0111001 CZ I DDDDDDDDD SSSSSSSSS DECOD D,S/# CZ CCCC 011101f CZ I DDDDDDDDD SSSSSSSSS TOPONE BOTONE D,S/# CZ CZ CCCC 011110f CZ I DDDDDDDDD SSSSSSSSS INCMOD DECMOD D,S/# CZ CZ CCCC 011111f fZ I DDDDDDDDD SSSSSSSSS MUL MULS SCLU SCL D,S/# -Z -Z -Z -Z replace with CCCC 01110ff CZ I DDDDDDDDD SSSSSSSSS TOPONE BOTONE INCMOD DECMOD D,S/# CZ CZ CZ CZ CCCC 01111ff CZ I DDDDDDDDD SSSSSSSSS TESTN TEST ANYB TESTB D,S/# CZ CZ CZ CZ ------------------------------------------------------------------------------------------------------------------------- CCCC 10100ff CZ I DDDDDDDDD SSSSSSSSS TESTN TEST ANYB TESTB D,S/# CZ CZ CZ CZ replace with CCCC 1010000 ff I DDDDDDDDD SSSSSSSSS ALTI ALTR ALTD ALTS D,S/# -- -- -- -- CCCC 1010001 CZ I DDDDDDDDD SSSSSSSSS DECOD D,S/# CZ CCCC 101001f fZ I DDDDDDDDD SSSSSSSSS MUL MULS SCLU SCL D,S/# -Z -Z -Z -Z -------------------------------------------------------------------------------------------------------------------------
WRPIN sets the mode, WXPIN sets the baud/length.
WYPIN writes the data byte/word/long, RDPIN reads the data byte/word/long.
This seems wrong to me. I would think WRPIN & RDPIN should write/read the data, while WXPIN & WYPIN should set the mode & baud/length.
Have I got this the correct way around???
WRPIN used to be PINSETM
and RDPIN used to be PINGETZ
Send works fine, but receive doesn't seem to be receiving anything. I am using PST connected to the propplug.
Can anyone see my bug?
BTW I have discovered that if you don't transmit a character, then the instruction
.send testb inb, #tx_pin wc 'wait for buffer empty on tx pin
doesn't return buffer empty. Can anyone verify please?
'' 115200 baud 8-bit serial demo '' RR20160624 000a modify Chip's 10Mbaud program '' 000c CON tx_pin = 62 rx_pin = 63 DAT orgh 0 org 0 begin wrpin pm_tx, #tx_pin 'set asynchronous tx mode in smart pin tx wxpin bitper, #tx_pin 'set tx bit period setb dirb, #tx_pin 'enable smart pin tx wrpin pm_rx, #rx_pin 'set asynchronous rx mode in smart pin rx wxpin bitper, #rx_pin 'set rx bit period setb dirb, #rx_pin 'enable smart pin rx jmp #.go .send testb inb, #tx_pin wc 'wait for buffer empty on tx pin if_nc jmp #.recv ' ping-pong tx/rx akpin #tx_pin 'acknowledge tx pin waitx delay ' 1s delay before sending!!! .go wypin txdata, #tx_pin 'send next byte to tx pin '' incmod txdata, #$7E 'increment byte, constrain to $FF for faster wypin '' cmp txdata, #0 wz '' if_z mov txdata, #" " ' $20..$7E .recv testb inb, #rx_pin wc 'wait for smart pin rx to signal rx data received if_nc jmp #.send ' ping-pong tx/rx akpin #rx_pin 'acknowledge rx pin rdpin rxdata, #rx_pin 'get data from rx pin mov txdata, #rxdata ' do something with rxdata jmp #.send 'loop pm_tx long %0000_0000_000_0000000000000_01_11110_0 'async tx mode, output enabled for smart output pm_rx long %0000_0000_000_0000000000000_01_11111_0 'async rx mode, output enabled for smart input 'bitper long 8<<16 + 7 'number of clocks per bit period, 3..65536, 8-bit words 10Mbaud bitper long 695<<16 + 7 ' 115200 baud, 8 bits txdata long "^" rxdata long 0 delay long 80_000_000
Remove the '#' in the line
mov txdata, #rxdata ' do something with rxdata