The Branch That Got Its UART Back
The PIC16F1906 answers the one complaint about the 1902/1903 branch: it restores the EUSART while keeping the LCD driver. In a 28-pin package it carries 8,192 words of flash (0x0000-0x1FFF), 512 bytes of SRAM, eleven channels of ten-bit ADC, four commons and nineteen segments driving up to 72 LCD elements, and the now-familiar enhanced mid-range core with its 32 MHz internal oscillator. Products built on it are typically metering panels that both show values locally and report them upstream over a serial link.
Memory And Lock Layout
– Program array 0x0000-0x1FFF, with the top 128 words (0x1F80-0x1FFF) as 100K-cycle High-Endurance Flash. – CONFIG1 at 0x8007 with the single CP bit, CONFIG2 at 0x8008, ID at 0x8006. – No EEPROM on the branch; persistent data lives in the HEF window.
A locked array reads 0x000; erased cells read 0xFFFF; above 0x1FFF the bus returns 0x000 for unmapped space. The HEF window is inside the array address range and comes back with the sweep, but it deserves separate annotation because parameter updates concentrate there over the life of the product.
What The Image Shows
Recovered 1906 code combines two recognizable halves. The display half is inherited from the 1902/1903 line almost unchanged: a segment buffer, a frame-scan loop paced by a timer, bias control for the LCD charge pump. The serial half is new: an EUSART init sequence against the internal clock, a transmit ring buffer sized to fit the 512-byte SRAM, and often an auto-baud routine on the receive side. The ten-bit ADC results occupy two registers per sample, so averaging loops are wider than on the eight-bit 72x family – one of the quickest fingerprints separating the two branches during review.
The Sweep And Verification
Two-wire ICSP as production used. Identify via the ID word, read both configuration words, sweep 0x0000-0x1FFF, then verify that every word decodes as a legal enhanced mid-range instruction and that the HEF tail contains plausible parameter values rather than uniform filler. Boundary discipline matters: a reader set for the 4K PIC16F1903 will truncate the image; one set for the 40/44-pin PIC16F1907 will report phantom regions above 0x1FFF.
Nothing is erased during recovery and the part stays serviceable. On-board work through the surviving production header is the normal route; socket work is equally routine when the header is gone.
Deliverables
The package: HEX file at word addresses, annotated disassembly with the LCD scan block, the EUSART buffering and the HEF parameter window labeled separately, a configuration-word report for byte-identical re-flashing, and a checksum tied to the physical die. Where an application updated HEF parameters in the field, the recovered values are documented as a table so the control behavior can be reviewed before any clone is flashed.
Eight Thousand Words With A Serial Port
The PIC16F1906 is the 28-pin member of the 190x line: 8,192 words of flash, 512 bytes of SRAM, 25 I/O pins, eleven ADC channels, two ECCP and two CCP, one EUSART and two MSSP. Unlike the 1902 and 1903, this part carries a serial port, which places it in products that talk to something – a host, a modem, another controller.
A Talker In The Family
Where the smaller 190x parts are stand-alone controllers, the 1906 is a node, and its image shows a receive state machine with a command dispatcher behind it. That dispatcher is the protocol specification when no host-side source survives, and it is the block the report expands into a table of command codes, argument layouts and replies.
– Flash: 0x0000-0x1FFF (8K words), 0x3FFF erased, 0x0000 protected. – HEF: 128 bytes at the top of the array, no data EEPROM. – Configuration: 0x8007-0x8008, device ID 0x8006.
Output
HEX at word addresses, the HEF block separately, annotated disassembly with the command dispatcher expanded, configuration report, checksum tied to the die.
To submit a locked 1906, write to the services desk or use the contact form with the part marking and the board’s function. Same-week turnaround is standard for the LCD branch.