Just added the 18FxxQ71 series. This is ONLY supported in v1.xx.xx not earlier versions. This will be included in the updates to GCStudio in the next few days.
These Q71's have every possible peripheral ...except for .... Real Time Clock. New features include:
VPORT – Virtual Port
The Virtual Port module allows for interconnection of multiple peripherals internal to a device without the need for an external I/O pin. A device may contain multiple Virtual Ports, each Virtual Port consisting of eight virtual pins that are represented by eight bits similar to regular device ports.
This module can be used as a high-level input selection multiplexer for the entire device, which can connect
the output of digital peripherals into the inputs of other peripherals internally without using any external I/O pins.
Using the Virtual Port to connect peripherals in this manner allows the user to connect multiple core independent peripherals on the device to form hardware-based state machines. In addition to the input selection multiplexers, this module also offers a flip-flop for each virtual pin to latch the output
value. The flip-flop may be bypassed to connect the output of one peripheral directly to the input of another. Figure
The Virtual Port module offers many different features such as:
• 8 virtual pins for each Virtual Port
• Software read/write through PORTW and LATW registers
• Extensive clock selection and input source selection
• Individual flip-flop for each bit to latch output value
• Common clock source for all bits of a Virtual Port
• Individual input control for each bit of Virtual Port
• Individual output available to other modules via PPS input
• Interrupt-on-Change, DMA and ADC triggers for each virtual pin
There is one Virtual Port available on this device – PORTW.
APM - Analog Peripheral Manager
The Analog Peripheral Manager (APM) allows analog modules to be core independently switched on and off
periodically using timers. This feature can be used to manage analog peripherals that are available on the device such as the Analog-to-Digital Converter (ADC), Comparator (CMP), Digital-to-Analog Converter (DAC), Operational Amplifier (OPA) and the Fixed Voltage Reference (FVR) modules, among others. This peripheral is ideal for low power applications that use analog sensors that only need to be periodically measured, as opposed to sensors that must be continuously monitored. The Analog Peripheral Manager allows users to set custom time intervals in which configured analog modules will activate to perform a specified function periodically before deactivating and returning to a low-power state after the programmed time has elapsed. The Analog Peripheral Manager allows users to optimize the total power consumption in applications by activating analog peripherals without waking up the CPU.
Universal Timers
Two timers that can be daisy-chained to make a 32bit timer.
A most interesting new PIC
Enjoy
Thank you,
Evan
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
As I progress through the demos ... the demos show up issues with the toolchain.
At tool chain build 1218 the PPSTool for the Q71 is not working as expected and I am adding the PPS commands by hand. This will be fixed in a later tool chain build.
Last edit: Anobium 2023-02-27
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
We, Bill Roth and I, are working on two more demos for SAF memory and SPI Operations. Once these are completed these will be posted to GitHub.
The minimum build for 18FxxQ71 support is tool chain build 1219. Build 1219 contains dependent/critical changes to the compiler and specific libraries of the 18FxxQ71 chip family.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
These demos test the compiler and the tool chain. They are intended to show what we tested and that the demos worked. These demos cover the main components of the compiler with this specific chip. It covers all the basics - this way we know the compiler works and that any issues have been resolved.
Basic I/O - inputs and output
RAM Memory addressing
Port.bit addressing
Maths
ADC
Timing
Timers 8 and 16 bit
CCP/PWM
Interrupts
I2C - hardware - discovery
EEProm
Tables
Self write to progmem
Basic PWM
I2C - GLCD
Fixed Mode PWM
16bit PWM
SPI - GLCD
Millis()
Serial
Self write to SAF
CLC
As an insight. Adding the Q71 has taken Bill Roth and I about 80 man hours. We are documenting the process for those that follow us. :-)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Just added the 18FxxQ71 series. This is ONLY supported in v1.xx.xx not earlier versions. This will be included in the updates to GCStudio in the next few days.
These Q71's have every possible peripheral ...except for .... Real Time Clock. New features include:
VPORT – Virtual Port
The Virtual Port module allows for interconnection of multiple peripherals internal to a device without the need for an external I/O pin. A device may contain multiple Virtual Ports, each Virtual Port consisting of eight virtual pins that are represented by eight bits similar to regular device ports.
This module can be used as a high-level input selection multiplexer for the entire device, which can connect
the output of digital peripherals into the inputs of other peripherals internally without using any external I/O pins.
Using the Virtual Port to connect peripherals in this manner allows the user to connect multiple core independent peripherals on the device to form hardware-based state machines. In addition to the input selection multiplexers, this module also offers a flip-flop for each virtual pin to latch the output
value. The flip-flop may be bypassed to connect the output of one peripheral directly to the input of another. Figure
The Virtual Port module offers many different features such as:
• 8 virtual pins for each Virtual Port
• Software read/write through PORTW and LATW registers
• Extensive clock selection and input source selection
• Individual flip-flop for each bit to latch output value
• Common clock source for all bits of a Virtual Port
• Individual input control for each bit of Virtual Port
• Individual output available to other modules via PPS input
• Interrupt-on-Change, DMA and ADC triggers for each virtual pin
There is one Virtual Port available on this device – PORTW.
APM - Analog Peripheral Manager
The Analog Peripheral Manager (APM) allows analog modules to be core independently switched on and off
periodically using timers. This feature can be used to manage analog peripherals that are available on the device such as the Analog-to-Digital Converter (ADC), Comparator (CMP), Digital-to-Analog Converter (DAC), Operational Amplifier (OPA) and the Fixed Voltage Reference (FVR) modules, among others. This peripheral is ideal for low power applications that use analog sensors that only need to be periodically measured, as opposed to sensors that must be continuously monitored. The Analog Peripheral Manager allows users to set custom time intervals in which configured analog modules will activate to perform a specified function periodically before deactivating and returning to a low-power state after the programmed time has elapsed. The Analog Peripheral Manager allows users to optimize the total power consumption in applications by activating analog peripherals without waking up the CPU.
Universal Timers
Two timers that can be daisy-chained to make a 32bit timer.
A most interesting new PIC
Enjoy
Thank you,
Evan
PIC18FxxQ71 Programming
PICKItPlus, PK4 and SNAP and more Microchip programs support this chip family.
PICKItPlus - you will require a 2.63.237 database.
PK4 and SNAP the latest configuration is required.
Demos
See GitHub - https://github.com/GreatCowBASIC/Demonstration_Sources/tree/main/Vendor_Boards/Great_Cow_Basic_Demo_Board/18f26q71_chiprange_demonstrations
010_hello_world.gcb
020_blink.gcb
030_blink_another_way.gcb
040_rotate_the_leds.gcb
040_rotate_the_leds_using_ASM.gcb
050_show_a2d_value_on_leds.gcb
060_variable_rotate_the_leds.gcb
070_debounce_the_switch.gcb
080_using_the_reset_switch_as_an_input.gcb
090_reversible_leds_with_variable_delay.gcb
100_reversible_leds_with_variable_delay_to_serial_terminal.gcb
110_rotate_the_leds_using_16bit_timer0_.gcb
120_use_pwm_via_ccp_and_adc_to_control_led_brightness.gcb
130_rotate_the_leds_using_8bit_timer0.gcb
140_rotate_the_leds_using_the_timer_overflow_event.gcb
As I progress through the demos ... the demos show up issues with the toolchain.
At tool chain build 1218 the PPSTool for the Q71 is not working as expected and I am adding the PPS commands by hand. This will be fixed in a later tool chain build.
Last edit: Anobium 2023-02-27
More 18FxxQ71 demos.
150_show_i2c_devices_to_serial_terminal.gcb
160_showing_eeprom_data_to_serial_terminal.gcb
165_showing_tableeeprom_data_to_serial_terminal.gcb
170_using_external_interrupt_to_raise_an_event.gcb
180_ensuring_program_matches_chip_specfiied_to_serial_terminal.gcb
190_using_an_interrupt_to_manage_the_pwm_signal_to_control_an_leds_brightness.gcb
200_i2c_glcd_using_ssd1306_128_32.gcb
210_i2c_glcd_using_ssd1306_128_64.gcb
220_i2c_glcd_sprites_using_ssd1306.gcb
230_i2c_glcd_voltmeter_using_ssd1306.gcb
240_pwm_fixed_modes.gcb
250_pwm16bit_variable_modes.gcb
260_spi_glcd_using_SSS1331.gcb
270_millis.gcb
280_showing_saf_data_to_serial_terminal.gcb
290_showing_progmem_data_to_serial_terminal.gcb
300_using_CLC.gcb
We, Bill Roth and I, are working on two more demos for SAF memory and SPI Operations. Once these are completed these will be posted to GitHub.
The minimum build for 18FxxQ71 support is tool chain build 1219. Build 1219 contains dependent/critical changes to the compiler and specific libraries of the 18FxxQ71 chip family.
Added SPI demo.
See GitHub - https://github.com/GreatCowBASIC/Demonstration_Sources/tree/main/Vendor_Boards/Great_Cow_Basic_Demo_Board/18f26q71_chiprange_demonstrations
010_hello_world.gcb
020_blink.gcb
030_blink_another_way.gcb
040_rotate_the_leds.gcb
040_rotate_the_leds_using_ASM.gcb
050_show_a2d_value_on_leds.gcb
060_variable_rotate_the_leds.gcb
070_debounce_the_switch.gcb
080_using_the_reset_switch_as_an_input.gcb
090_reversible_leds_with_variable_delay.gcb
100_reversible_leds_with_variable_delay_to_serial_terminal.gcb
110_rotate_the_leds_using_16bit_timer0_.gcb
120_use_pwm_via_ccp_and_adc_to_control_led_brightness.gcb
130_rotate_the_leds_using_8bit_timer0.gcb
140_rotate_the_leds_using_the_timer_overflow_event.gcb
150_show_i2c_devices_to_serial_terminal.gcb
160_showing_eeprom_data_to_serial_terminal.gcb
165_showing_tableeeprom_data_to_serial_terminal.gcb
170_using_external_interrupt_to_raise_an_event.gcb
180_ensuring_program_matches_chip_specfiied_to_serial_terminal.gcb
190_using_an_interrupt_to_manage_the_pwm_signal_to_control_an_leds_brightness.gcb
200_i2c_glcd_using_ssd1306_128_32.gcb
210_i2c_glcd_using_ssd1306_128_64.gcb
220_i2c_glcd_sprites_using_ssd1306.gcb
230_i2c_glcd_voltmeter_using_ssd1306.gcb
240_pwm_fixed_modes.gcb
250_pwm16bit_variable_modes.gcb
260_spi_glcd_using_ILI9341.gcb
270_millis.gcb
280_showing_saf_data_to_serial_terminal.gcb
290_showing_progmem_data_to_serial_terminal.gcb
300_using_CLC.gcb
These demos test the compiler and the tool chain. They are intended to show what we tested and that the demos worked. These demos cover the main components of the compiler with this specific chip. It covers all the basics - this way we know the compiler works and that any issues have been resolved.
As an insight. Adding the Q71 has taken Bill Roth and I about 80 man hours. We are documenting the process for those that follow us. :-)
Formal release of compiler and tool chain for PIC18FxxQ71 is build 1219.