Mention -B in the error message

One of possible problems of failed initialization is too hight frequency
of ISP clock. Mention using -B option as a possible solution.

Closes #1133
This commit is contained in:
Łukasz Stelmach 2022-10-20 17:34:21 +02:00
parent 9977f1ed12
commit c890ff90eb
2 changed files with 10 additions and 8 deletions

View File

@ -3046,14 +3046,15 @@ See also: @url{http://www.libusb.org/ticket/6}
@item @item
Problem: after flashing a firmware that reduces the target's clock Problem: after flashing a firmware that reduces the target's clock
speed (e.g. through the @code{CLKPR} register), further ISP connection speed (e.g. through the @code{CLKPR} register), further ISP connection
attempts fail. attempts fail. Or a programmer cannot initialize communication with
a brand new chip.
Solution: Even though ISP starts with pulling @var{/RESET} low, the Solution: Even though ISP starts with pulling @var{/RESET} low, the
target continues to run at the internal clock speed as defined by the target continues to run at the internal clock speed either as defined by
firmware running before. Therefore, the ISP clock speed must be the firmware running before or as set by the factory. Therefore, the
reduced appropriately (to less than 1/4 of the internal clock speed) ISP clock speed must be reduced appropriately (to less than 1/4 of the
using the -B option before the ISP initialization sequence will internal clock speed) using the -B option before the ISP initialization
succeed. sequence will succeed.
As that slows down the entire subsequent ISP session, it might make As that slows down the entire subsequent ISP session, it might make
sense to just issue a @emph{chip erase} using the slow ISP clock sense to just issue a @emph{chip erase} using the slow ISP clock

View File

@ -1190,9 +1190,10 @@ int main(int argc, char * argv [])
init_ok = (rc = pgm->initialize(pgm, p)) >= 0; init_ok = (rc = pgm->initialize(pgm, p)) >= 0;
if (!init_ok) { if (!init_ok) {
pmsg_error("initialization failed, rc=%d\n", rc); pmsg_error("initialization failed, rc=%d\n", rc);
imsg_error("- double check the connections and try again\n");
imsg_error("- use -B to set lower ISP clock frequency, e.g. -B 200kHz\n");
if (!ovsigck) { if (!ovsigck) {
imsg_error("double check connections and try again or use -F to override\n"); imsg_error("- use -F to override this check\n\n");
imsg_error("this check\n\n");
exitrc = 1; exitrc = 1;
goto main_exit; goto main_exit;
} }