Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 21:52 29 Nov 2024 Privacy Policy
Jump to

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 : Picomite(VGA) V5.07.07 betas - bug fixes + focus on PIO

     Page 7 of 16    
Author Message
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4260
Posted: 07:03pm 31 Jan 2023
Copy link to clipboard 
Print this post

  matherp said  
  Quote  Is there a possibility to use a 64bit variable for the maximum number of samples


No the silicon only allows 32-bits. You can use &HFFFFFFFF.
The report from the RXC pointer is just read from the register so is presumably what the silicon does  - inc then stop


Not really...

[300] PIO DMA RX 1,0,&hFFFFFFFF,packed%(),ReadyInt,32,samples% 'start DMA ring bf
Error : -1 is invalid (valid is 0 to 2147483647)

PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9146
Posted: 10:45am 01 Feb 2023
Copy link to clipboard 
Print this post

V5.07.07b11 - specially for Volhout  

https://geoffg.net/Downloads/picomite/PicoMite_Beta.zip

New capabilities for PEEK function
peek(bp n%) ' returns the byte at address n% and increments n% to point to the next byte
peek(sp n%) ' returns the short at address n% and increments n% to point to the next short
peek(wp n%) ' returns the word at address n% and increments n% to point to the next word

These make it very efficient for basic code to step through a packed array

e.g.

dim s$="123456"
a%=peek(varaddr s$)+1 'point to the start of the string data
for i%=1 to 6
print peek(bp a%)
next i%



PIO DMA TX and PIO DMA RX now allow up to &HFFFFFFFF transfers
Edited 2023-02-01 20:49 by matherp
 
JanVolk
Senior Member

Joined: 28/01/2023
Location: Netherlands
Posts: 145
Posted: 11:26pm 02 Feb 2023
Copy link to clipboard 
Print this post

Gentlemen and Matherp

I am new to this forum and have encountered something strange after version V5.07.07b5.
I am using self-compiled code partly from this forum for an i2c scanner which worked well until V5.07.07b5 and after V5.07.07b7 it stops working and stops at I2C Read i,0,1,temp. Error : Cannot find Temp. And system crashes and ** Fatal Error **

What am I doing wrong or has something changed in the firmware?

' I2C scanner detect aangesloten modules
Print " ****************** I2C SCANNER ********************"
Print " Input/Output  PCF8575     Adres: Dec: 32   Hex:0x20"
Print " Input/Output  MCP23017    Adres: Dec: 32   Hex:0x20"
Print " LCD 20x4 5V0  HD44780     Adres: Dec: 32   Hex:0x20"
Print " Licht  Lux    BH1750      Adres: Dec: 35   Hex:0x23"
Print " Temp/%RV      DHT20       Adres: Dec: 56   Hex:0x38"
Print " LCD 16x2 5V0  KS0066      Adres: Dec: 56   Hex:0x38"
Print " Oled  128x64  SSD1306     Adres: Dec: 60   Hex:0x3C"
Print " ADC/DAC 8Bit  PCF8591     Adres: Dec: 72   Hex:0x48"
Print " ADC 4x 16Bit  ADS1115     Adres: Dec: 72   Hex:0x48"
Print " EEPROM 32K    AT24C32     Adres: Dec: 87   Hex:0x57"
Print " Klok RTC 3V3  DS3231      Adres: Dec:104   Hex:0x68"
Print " Klok RTC 5V0  DS1307      Adres: Dec:104   Hex:0x68"
Print " Temp/%RV/Druk BMP280      Adres: Dec:118   Hex:0x76"
Print " Opm: Indien module 5V dan pullups extern aan 3V3!"
Print "      Of een level shifter voor SDA en SCL gebruiken."
Print
Print "                 Dec     Hex      Hex"
For i = 0 To 127              ' Te testen adressen decimaal.
 I2C Read i, 0, 1, temp       ' I2C READ addr, option, rcvlen, rcvbuf.
 If MM.I2C = 0 Then           ' MM.I2C 0=Adres gevonden 1=Geen Adres.
 Print " Gevonden adres  "; Str$(i,3)," &h"; Hex$(i,2); "     0x"; Hex$(i,2)
 EndIf
Next i
Print
Print " HEX  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F"
For y = 0 To 7
  Print " "; Hex$(y, 1); "0: ";
  For x = 0 To 15
    addr = y * 16 + x                      ' Bereken adres.
    I2C Write addr, 0, 1, &H00             ' Schrijf nul naar dat adres
    If MM.I2C = 0 Then                     ' Controleer op fouten.
    If addr = 0 Then Print "-- ";          ' Addr is 00 dan "-- "
    If addr > 0 Then Print Hex$(addr, 2);" "; ' Een gevonden! 2=cijfers
    Else
      Print "-- ";                         ' Niets hier..
    EndIf
  Next x
  Print
Next y
End

> option list
PicoMite MMBasic Version 5.07.07b5
OPTION SYSTEM SPI GP18,GP19,GP16
OPTION SYSTEM I2C GP4,GP5
OPTION COLOURCODE ON
OPTION DISPLAY 42, 90
OPTION LCDPANEL SSD1306I2C, LANDSCAPE
OPTION SDCARD GP22
OPTION RTC AUTO ENABLE

Sorry for Dutch.
I translate most of the time because my English is not very good and "Translate" is my best friend and the actual code is English.
For example, I translated the PicoMite Basic manual into Dutch for myself with many examples and additions. (>360 pages so far) and also the PIO course by Volhout (172 pages)

Jan Volk
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6103
Posted: 01:22am 03 Feb 2023
Copy link to clipboard 
Print this post

Welcome to the forum.
Your English is much better than my Dutch!

You need to define the temp variable before using it.
dim temp

After that, your code runs on the latest beta firmware.

Jim
VK7JH
MMedit   MMBasic Help
 
Pluto
Guru

Joined: 09/06/2017
Location: Finland
Posts: 359
Posted: 09:39am 03 Feb 2023
Copy link to clipboard 
Print this post

This happens after running Volhout's Logic Analyzer.  
>files
Error : Not enough memory
> option list

The same as Volhout also pointed out in an earlier post. Was this something that you also wanted to address in the latest update?

I just updated the firmware to the latest version (Option list says b12; download says b11).
  matherp said  V5.07.07b11 - specially for Volhout

https://geoffg.net/Downloads/picomite/PicoMite_Beta.zip




PicoMiteVGA MMBasic Version 5.07.07b12
OPTION FLASH SIZE 4194304
OPTION COLOURCODE ON
OPTION KEYBOARD IT
OPTION CPUSPEED (KHz) 378000
OPTION DEFAULT MODE 2
OPTION DISPLAY 60, 106
OPTION DEFAULT FONT 7, 1
>  

/Pluto
 
JanVolk
Senior Member

Joined: 28/01/2023
Location: Netherlands
Posts: 145
Posted: 03:11pm 03 Feb 2023
Copy link to clipboard 
Print this post

Jim,

I tried with Dim temp and the first time it worked, but by re-running several times I get an error and reset the program and even ** panic **
Edit no longer works. Can only be fixed by re-flashing program, but problem in firmware is still present.
Previously temp was probably automatically declared?

JanVolk
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3818
Posted: 03:37pm 03 Feb 2023
Copy link to clipboard 
Print this post

What happens if you go back to an old MMBasic?

Does it then work?

John
 
JanVolk
Senior Member

Joined: 28/01/2023
Location: Netherlands
Posts: 145
Posted: 04:02pm 03 Feb 2023
Copy link to clipboard 
Print this post

John,

See my first post. With PicoMite MMBasic version V5.07.07b5 everything worked fine. Then the problems started.
Raspberry Pi Pico is my first microcontroller with MMBasic and have been using it for a year now.


JanVolk
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9146
Posted: 04:14pm 03 Feb 2023
Copy link to clipboard 
Print this post

Will fix in next beta
 
JanVolk
Senior Member

Joined: 28/01/2023
Location: Netherlands
Posts: 145
Posted: 09:10pm 03 Feb 2023
Copy link to clipboard 
Print this post

Matherp,

Thank you in advance.
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9146
Posted: 10:42am 06 Feb 2023
Copy link to clipboard 
Print this post

PicoMite(VGA)V5.07.07b14

https://geoffg.net/Downloads/picomite/PicoMite_Beta.zip

Fixes bug introduced in I2C
Fixes instability introduced in B10

Significant change in the way memory is organised - please report any unusual issues
 
BishopXXL
Newbie

Joined: 13/01/2019
Location: Germany
Posts: 18
Posted: 02:47pm 06 Feb 2023
Copy link to clipboard 
Print this post

  matherp said  PicoMite(VGA)V5.07.07b14


Significant change in the way memory is organised - please report any unusual issues



Hi Peter,
I think I've found a difference between the B14 and the B10. I haven't tried
all GP IOs yet, but in the V14 the current is too small to drive an LED (GP09).
In B10 everything goes wonderfully.
Is the current normally set to 4mA?
I use such a LowCurrent LED (1-2mA)!

Or is the error again between Monitor and chair.

Cheers Thomas

P.S. It is : PicoMiteV5.07.07b14 - 06.02.2023 10:34
Edited 2023-02-07 00:57 by BishopXXL
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9146
Posted: 03:17pm 06 Feb 2023
Copy link to clipboard 
Print this post

Thomas, there has been no change in this area so don't know why there would be a difference. Even if the drive strength was only set to 4mA that should be plenty for your LED. I'll test with my LEDs later today.
 
ville56
Regular Member

Joined: 08/06/2022
Location: Austria
Posts: 96
Posted: 08:15pm 06 Feb 2023
Copy link to clipboard 
Print this post

Interestingly, b14 throws an error on

 SetPin gp1, gp0, com1   'define PCR-comm pins
 Open "com1:9600,256,ser_int2,1" As pcr_chan


[305] Open "com1:9600,256,ser_int2,1" As pcr_chan
Error : Pins not set for COM1


Has something changed in respect to setpin statement? It works that way in b8 but i have no versions in between to check any further.

Regards,
Gerald
                                                                 
73 de OE1HGA, Gerald
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4260
Posted: 09:29pm 06 Feb 2023
Copy link to clipboard 
Print this post

Hi Peter,

Tested picomite VGA 50707b14.

I had several unexplained problems with the latest version. Sometimes I could not edit after stopping the program with ctrl C, sometimes a "out of memory" erro message.
Anyway, with b14 this all stopped. Thanks for fixing this. I have not seenany of these artefacts since. I blaimed myself for being so anoying brining up several issues that where actually my own fault that I did not mention these (felt ashame).

But now we are at it, there is one thing you could give you opinion on.

When I run the logic analyzer code at 126MHz CPU the PS2 keyboard is misreading keys sometimes (i.e. you press a cursor key, and the key value is that of nummber key "4". I know the CPU is busy running MMBasic, graphics, some PIO, DMA etc... So it is possible the system is too busy. But the USB (serial terminal) does not make these false key readings.

When I run CPU at 252MHz this does not happen.

I am currently trying to make the LA work with 126MHz since I hear that some people have problems running new pico's at 200MHz or higher.

Is the keyboard issue caused by the PS2 interrupt priority changed ?

Regards,

Volhout
PicomiteVGA PETSCII ROBOTS
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2141
Posted: 09:29pm 06 Feb 2023
Copy link to clipboard 
Print this post

Attempted to replicate but no error.

PicoMiteVGA MMBasic Version 5.07.07b14

> pcr_chan=1
> SetPin gp1, gp0, com1
> Open "com1:9600,256" As pcr_chan
>
 
JanVolk
Senior Member

Joined: 28/01/2023
Location: Netherlands
Posts: 145
Posted: 10:59pm 06 Feb 2023
Copy link to clipboard 
Print this post

Hi Peter,

I tested I2C with V5.07.07b14 with the i2c_scanner.bas and it works fine now and also works with the i2c_lcd_lib.bas (This is a lib for 16x2 and 20x4 lcd screens).
I have tested I2C with V5.07.07a3 with the i2c_scanner.bas and now works fine and also works with the i2c_lcd_lib.bas.

Jan
 
ville56
Regular Member

Joined: 08/06/2022
Location: Austria
Posts: 96
Posted: 11:21pm 06 Feb 2023
Copy link to clipboard 
Print this post

@Phil99:

that is really strange ... retested the setpin issue. Cleared flash with clear_flash.uf2, reloaded b14 and did not set any options just to be sure, but got the same error. Is there anything else I can "reset/clear/erase" which may cause the issue?

Regards,
Gerald
                                                                 
73 de OE1HGA, Gerald
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2141
Posted: 11:38pm 06 Feb 2023
Copy link to clipboard 
Print this post

Flashed another Pico with non-VGA b14 and the error appears.

update firmware
PicoMite MMBasic Version 5.07.07b14
Copyright 2011-2023 Geoff Graham
Copyright 2016-2023 Peter Mather

> pcr_chan = 1
> SetPin gp1, gp0, com1
> Open "com1:9600,256" As pcr_chan
Error : Pins not set for COM1
>
> option list
PicoMite MMBasic Version 5.07.07b14
OPTION FLASH SIZE 16777216
OPTION CPUSPEED (KHz) 378000
OPTION DISPLAY 60, 132
>

Edit
But this works...

> SetPin gp1,off
> SetPin gp0,off
> SetPin gp0, gp1, com1 'swap pins
> Open "com1:9600,256" As pcr_chan
>
Edited 2023-02-07 09:59 by phil99
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9146
Posted: 08:56am 07 Feb 2023
Copy link to clipboard 
Print this post

Please check if this fixes the issue and then I'll issue a new release - I think the problem was a non-initialised area of memory following the changes I made to the memory handling. Would only happen before a program was run.


PicoMite.zip
 
     Page 7 of 16    
Print this page
© JAQ Software 2024