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 KingdomPosts: 4047 |
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 KingdomPosts: 9139 |
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 KingdomPosts: 4047 |
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 KingdomPosts: 9139 |
You can use the 4822, 4812, or 4802 (12, 10, or 8 bits) |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 4047 |
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 StatesPosts: 362 |
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. 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 KingdomPosts: 6814 |
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 KingdomPosts: 9139 |
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: FinlandPosts: 359 |
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 KingdomPosts: 9139 |
Bit 14 is set to 1 |
||||
Pluto Guru Joined: 09/06/2017 Location: FinlandPosts: 359 |
/pluto |
||||
vegipete Guru Joined: 29/01/2013 Location: CanadaPosts: 1110 |
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: CanadaPosts: 116 |
@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 KingdomPosts: 9139 |
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: NetherlandsPosts: 145 |
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: AustraliaPosts: 1611 |
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: CanadaPosts: 116 |
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: AustraliaPosts: 68 |
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: AustraliaPosts: 6102 |
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 KingdomPosts: 9139 |
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 |