Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 12:56 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 14 of 16    
Author Message
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4047
Posted: 01:07pm 02 Apr 2023
Copy link to clipboard 
Print this post

  matherp said  CPU frequency 48-251MHz - 44100Hz
CPU frequency 252-377MHz - 88200Hz
CPU frequency 378MHz -132300Hz


Does that mean different filters for different CPU speeds ?

Please stop moving the goalposts, or at least only move them when *I* request it           - obviously I'm not (completely) serious.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9139
Posted: 01:22pm 02 Apr 2023
Copy link to clipboard 
Print this post

  Quote  Does that mean different filters for different CPU speeds ?


No, it means a low pass filter that works at default speed will be even better at the higher speeds
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4047
Posted: 02:23pm 02 Apr 2023
Copy link to clipboard 
Print this post

  matherp said  
  Quote  Does that mean different filters for different CPU speeds ?


No, it means a low pass filter that works at default speed will be even better at the higher speeds


Thanks, that's good.

I think I may have misunderstood your post by looking at the pictures rather than reading the text. Does this just support the 12-bit external DAC in that IC family?

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9139
Posted: 02:38pm 02 Apr 2023
Copy link to clipboard 
Print this post

  Quote  Does this just support the 12-bit external DAC in that IC family?


You can use the 4822, 4812, or 4802 (12, 10, or 8 bits)
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4047
Posted: 02:40pm 02 Apr 2023
Copy link to clipboard 
Print this post

  matherp said  
  Quote  Does this just support the 12-bit external DAC in that IC family?


You can use the 4822, 4812, or 4802 (12, 10, or 8 bits)


Thank you, I guess I'm not as stupid as I look, the price point of the latter may be Ok for the Tomboy.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Sasquatch

Guru

Joined: 08/05/2020
Location: United States
Posts: 362
Posted: 02:47pm 02 Apr 2023
Copy link to clipboard 
Print this post

This new DAC option is really interesting.  I note from the MCP4822 data sheet that the LDAC pin can be tied low.  This will cause the DACs to update as soon as the CS pin goes high.  For audio applications, precise synchronization of the channels is probably not important.  If the LDAC pin could be made optional it would save an I/O pin in most applications.

  Quote  3.5 Latch DAC Input (LDAC)
LDAC (latch DAC synchronization input) pin is used to
transfer the input latch registers to their corresponding
DAC registers (output latches, V OUT ). When this pin is
low, both VOUTA and VOUTB are updated at the same
time with their input register contents. This pin can be
tied to low (V SS) if the V OUT update is desired at the
rising edge of the CS pin. This pin can be driven by an
external control device such as an MCU I/O pin

-Carl
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6814
Posted: 03:01pm 02 Apr 2023
Copy link to clipboard 
Print this post

The 4802 is a lot cheaper - and Bitsbox stock it. Good for experimenting with.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9139
Posted: 03:29pm 02 Apr 2023
Copy link to clipboard 
Print this post

  Quote   If the LDAC pin could be made optional it would save an I/O pin in most applications.


It can't otherwise you can't update the second channel until the first has settled and we can't wait around in an interrupt for c5uS @ 132300 interrupts per second. I tried that first.

Tomorrow I will add the capability of adding any user defined waveform to the output.

Create a pattern as 4096 16-bit short integers in the range 0-4095 (100-3900 recommended) in a 1024 element integer array using the memory pack command
Execute PLAY LOAD array%()
Generate the sound with PLAY SOUND chan, L/R/B, U, frequency [,vol]
Edited 2023-04-03 01:39 by matherp
 
Pluto
Guru

Joined: 09/06/2017
Location: Finland
Posts: 359
Posted: 04:04pm 02 Apr 2023
Copy link to clipboard 
Print this post

I have a few MCP4922. It needs an external Vref. Do you think that will work?
The only difference in the Write command is bit 14:
-MCP4922 VREF Input Buffer Control bit, 1= Buffered, 0 = Unbuffered.
-MCP4822 bit 14 is "Don’t Care".

If the firmware sets bit 14 to 1 it will not influence the original MCP4822, but will enable 4922 to use the Vref buffer.

Would Vref buffer on or off have any practical influence?

/Pluto
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9139
Posted: 05:19pm 02 Apr 2023
Copy link to clipboard 
Print this post

Bit 14 is set to 1
 
Pluto
Guru

Joined: 09/06/2017
Location: Finland
Posts: 359
Posted: 05:45pm 02 Apr 2023
Copy link to clipboard 
Print this post


/pluto
 
vegipete

Guru

Joined: 29/01/2013
Location: Canada
Posts: 1110
Posted: 06:54pm 02 Apr 2023
Copy link to clipboard 
Print this post

I notice the RBOX command draws slightly funny if the box is partially off the screen. The straight line section of the box that should be invisible off the edge of the screen is drawn on the edge of the screen. The rounded part is not drawn.
For example, rbox -15,-15,60,60
(PicoMite b32, LCD screen. The CMM2 doesn't do this.)
Visit Vegipete's *Mite Library for cool programs.
 
Hans

Senior Member

Joined: 18/10/2022
Location: Canada
Posts: 116
Posted: 08:02pm 02 Apr 2023
Copy link to clipboard 
Print this post

@matherp

Will the I2C keyboard programming work with any I2C keyboard or is it specific to the one you presented in this thread?

Thanks,

Hans …
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9139
Posted: 09:37pm 02 Apr 2023
Copy link to clipboard 
Print this post

  Quote  Will the I2C keyboard programming work with any I2C keyboard or is it specific to the one you presented in this thread?


Specific, but if you know of another then I could consider adding it if the I/F is similar
 
JanVolk
Senior Member

Joined: 28/01/2023
Location: Netherlands
Posts: 145
Posted: 10:08pm 02 Apr 2023
Copy link to clipboard 
Print this post

Have a look at M5Stack keyboard?

I don't know anything about it yet, but this might be a nice starter I2C keyboard?

https://www.tinytronics.nl/shop/nl

There they have 3 models for a nice hobby price?
M5Stack CardKB HAT           6.50 Euro
M5Stack CardKB V1.1 Unit 11.00 Euro
M5Stack CardKB Unit          6.50 Euro

Jan
 
Turbo46

Guru

Joined: 24/12/2017
Location: Australia
Posts: 1611
Posted: 12:09am 03 Apr 2023
Copy link to clipboard 
Print this post

  Quote  b33/b3 also changes the frequency used for PWM and SPI output for audio as follows

CPU frequency 48-251MHz - 44100Hz
CPU frequency 252-377MHz - 88200Hz
CPU frequency 378MHz -132300Hz

I wonder how that will suit Volhout's filter using the inductor? It is tuned fairly closely to 44.1kHz and, looking at the response curve:

It may not have the same effectiveness at the higher frequencies?

But I believe that that particular curve was simulated without any effective series resistance (ESR) in the inductor. In the real world, they do have ESR which will lessen the depth and widen the breadth of the notch so...

Bill
Keep safe. Live long and prosper.
 
Hans

Senior Member

Joined: 18/10/2022
Location: Canada
Posts: 116
Posted: 12:23am 03 Apr 2023
Copy link to clipboard 
Print this post

  matherp said  
  Quote  Will the I2C keyboard programming work with any I2C keyboard or is it specific to the one you presented in this thread?


Specific, but if you know of another then I could consider adding it if the I/F is similar


I wanted to build one specifically to my needs. Thanks, I may take you up on the offer Peter.

Hans …
 
mozzie
Regular Member

Joined: 15/06/2020
Location: Australia
Posts: 68
Posted: 04:09am 03 Apr 2023
Copy link to clipboard 
Print this post

G'day Peter,
Thankyou again, another item ticked off the wish list before being asked for    as you suggest, the addition of the DAC functionality for most audio applications will greatly simplify the analog circuitry involved.

For my own applications and others where almost direct drive of a speaker is required, can I ask if the following is possible in the Pico hardware, and whether you would consider it for a future build?

This is more suitable for sound effect generators, annunciators, Galvanometer drive (HDD head motors) in moving lights / lasers, TomBoy (tm) products (possibly), but I think the guys doing Sine inverters may be able to use it also.

Output is MONO (or use existing command set to "B" for both)
For -2047 0 2047 output modulation values (example only)
Both outputs LOW with 0 modulation (no carrier)
Output 0 goes positive with 0-100% PWM from 1 to 2047 modulation
Output 1 goes positive with 0-100% PWM from -1 to -2047 modulation

Provides zero current standby and the PWM frequency is not as important, even allows 1 transistor audio output like many cheap toys etc.  
This basically turns the PicoMite into a class "D" audio driver.

Once again, just an idea for the wish list. Combined with a PicomiteWEB we could have a Wifi controlled laser lightshow and sound effects generator  

Regards,
Lyle.
Edited 2023-04-03 14:18 by mozzie
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6102
Posted: 07:43am 03 Apr 2023
Copy link to clipboard 
Print this post

Library command.

Can we have LIBRARY LIST ALL ?
I am adding Library functions to MMEdit's file manager and it will save me looking for all the PRESS ANY KEY... lines.

A means of DELETEing the library but reserving it as an empty library would make file handling easier. I can always create a one line comment program and LIBRARY SAVE it which works but it would delete any current main program in the process.

Jim
VK7JH
MMedit   MMBasic Help
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9139
Posted: 07:46am 03 Apr 2023
Copy link to clipboard 
Print this post

V5.07.07b34 / WEB V5.07.07b4

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

This will be the last beta - release candidate(s) next

Support for user loadable sound profiles
Use PLAY LOAD SOUND array%() to load a sound
array%() must be a 1024 element array loaded with 4096 16-bit sound levels between 0 and 4095
Use PLAY SOUND chan, L/R/B, U, freq to output the loaded sound
Array%() is easily created from a normakl 4096 element array using
MEMORY PACK inarray%(),array%(), 4096, 16

e.g.

Dim a%(4095)
Dim b%(1023)
For i=0 To 1023
 c%=calc%(i)
 a%(i)=2000+c%
 a%(2047-i)=2000+c%
 a%(2048+i)=2000-c%
 a%(4095-i)=2000-c%
Next
plot
Memory pack a%(),b%(),4096,16
Play load sound b%()
Play sound 1,l,U,400
Play sound 1,r,s,400
Do
Loop
'
Sub plot
 For i=1 To MM.HRes-1
   Line i-1,MM.VRes-a%((i-1)*4096/MM.HRes)/(3900/MM.VRes), i,MM.VRes-a%(i*4096/MM.HRes)/(3900/MM.VRes)
 Next
End Sub
'
Function calc%(i)
 x%=128
 If i<x% Then
   calc%=i*1900/(1024*Sin(Rad(x%/1024*90)))
   If i=x%-1 Then o%=calc%
 Else
   calc%=Sin(Rad(i/1024*90))*(1900-o%)+o%
 EndIf
End Function


Sorry about the bad picture


Edited 2023-04-03 17:49 by matherp
 
     Page 14 of 16    
Print this page
© JAQ Software 2024