Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : New Firmware Release for the PicoMite Family - V5.08.00
Page 5 of 5 | |||||
Author | Message | ||||
TheMonkeys Regular Member Joined: 15/12/2022 Location: AustraliaPosts: 59 |
After prodding around, I tried (in my Arbitrary Exec/Eval web page) OPTION HEARTBEAT OFF Which used to cause an error after 3-ish hours runtime. The Heartbeat turned off and the above-mentioned error ceased at the same time. Which leads me to wonder... How about OPTION HEARTBEAT DEFAULT which would have the LED do whatever the chip does normally? Thanks to you both for creating such a robust wee web server. Cheers, Chris. |
||||
MarkF Regular Member Joined: 01/08/2023 Location: AustraliaPosts: 47 |
Thank you Peter and Geoff for the new firmware and manual. A question regarding Sprites. The sprite commands are missing from "User Manual MMBasic Ver 5.08.00 Revision 4". The only reference of "sprite" is on page 96. Have sprites been replaced with framebuffer? |
||||
phil99 Guru Joined: 11/02/2018 Location: AustraliaPosts: 2135 |
My understanding is that the standard PicoMite never had true Sprites, the Sprite command just being an alternative name for Blit and has now been removed. See the Blit Command in the manual. |
||||
MarkF Regular Member Joined: 01/08/2023 Location: AustraliaPosts: 47 |
Thanks Phil. I will check out BLIT. Yes, sorry I am referring to Sprites on the PicoMite VGA hardware. I see my confusion. There are two manuals: PicoMite User Manual MMBasic Ver 5.08.00 Revision 4 PicoMiteVGA User Manual MMBasic Ver 5.08.00 Revision 4 The VGA manual contains the Sprite commands. Edited 2024-02-25 12:36 by MarkF |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4233 |
It is unfortunate that the Blit/sprite change happened in 5.09.00 beta. It would have been a good thing to have that change in the 5.08.00 release. Volhout PicomiteVGA PETSCII ROBOTS |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4233 |
Hi Peter, Geoff, In the V5.09.00 beta a bug was found with the LINE command. This bug also exists in 5.08.00 See details here: LINE bug in 5.09.00 and 5.08.00 Regards, Volhout PicomiteVGA PETSCII ROBOTS |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9115 |
Found and fixed - will be in the next 5.09.00 beta |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4233 |
Hi Peter, Hate to disturb you, but there is another bug in PicoMiteVGA (not in the standard PicoMite) with SPI. See below program. The SPI is set up for 8 bit transfers. The first set of xxx=SPI(yyy) work (easiest is to see that there are 3x8 clocks on a scope). Then there is a loop where 4 ADC channels (24 bit) are read, then finally a section where 24 bit (CRC data) is read. If I run this code in PicoMite (normal pico) it works fine. It uses GP2,3,4,5) that are also free to use on the PicoMiteVGA (your reference board 1.7). But when I run it on the PicoMiteVGA, it sends the first 3 xxx=SPI(yyy) commands, and then stops. When I comment out the PRINT commands, all SPI commands are send. So some way, the PRINT is blocking furter SPI commands. Since PRINT statements to VGA consume time, I checked is there other clocks where simply delayed, but that is not the case. I have no idea what happens. This is on 5.08.00. 'SPI interface with ADS131M04 option default integer setpin gp4,gp3,gp2,SPI 'spi bus pins setpin gp5,dout 'cs pin pin(gp5)=1 'cs = high (not selected) 'SPI open 1000000,1,8 '1MHz,falling edge=capture,8bits SPI open 100000,1,8 '100kHz,falling edge=capture,8bits const comnd=&hA0 const dummy=0 dim dat(2) do pin(gp5)=0 'cs low pause 0.1 dat(2)=SPI(comnd) dat(1)=SPI(dummy) dat(0)=SPI(dummy) print hex$(dat(2)),hex$(dat(1)),hex$(dat(0)) pause 0.1 for i=1 to 4 'get data of 4 ADC's dat(2)=SPI(dummy) dat(1)=SPI(dummy) dat(0)=SPI(dummy) print "channel ";i;" = ";hex$(65536*dat(2)+256*dat(1)+dat(0)) pause 0.1 next i 'READ crc (NOT USED) dat(2)=SPI(dummy) dat(1)=SPI(dummy) dat(0)=SPI(dummy) print "CRC = ";hex$(16536*dat(2)+256*dat(1)+dat(0)) pause 0.1 pin(gp5)=1 'cs high pause 1000 loop Volhout P.S. it would be nice to have answer() = SPI(command()) Edited 2024-02-27 19:41 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9115 |
Can't replicate - working perfectly for me |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 4233 |
EDIT: post removed, needs mor investigation form my side. I was looking at a problem with the ADC. When the VGA picomite prints data, and needs to scroll the screen, that consumes 15ms in time. The ADC looses sync (have to investigate why) when there is more than 3ms between reads of ADC channels. Pobably becuase it has new ADC data, and the SPI is busy, so it can't store the data anywhere. The ADC is in "free run" mode. I now read the channels immediate, and print later. That works. Engineering is fun !!! Volhout Edited 2024-02-27 22:30 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9115 |
I'm not making it up V5.09.00b3 as copied from your post will all print statements |
||||
Page 5 of 5 |
Print this page |